let lineofsight (src : pos) (dst : pos) (f : pos -> bool) =
let rec loop xs = match xs with
| (x :: xs') ->
if f x
then loop xs'
else false
| [] -> true
in
loop (Geometry.line src dst)