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