sig
  val infer : S.Ast.t -> T.Type.t
  val infer_scheme : Eq.scheme Env.t -> S.Ast.t -> Eq.scheme
end