`free_varaibles` functions are incorrect
With the following skel program:
type t
type c = | C t
val f (c:c) : t =
match c with
| C x -> x
end
A call to free_variables_term
on the body of f
(the term: \c:c -> match ... end
) gives singleton x
, but x
is bound by the pattern C x
.