Ast.InferSourceContains some structures used for type inference
We do not reuse typ because we have to include a new TAny variant. Indeed, error terms can have any type and this has to be captured by the type sytem.
and typ = | TLit of typ_lit| TArrow of unionfind_typ * unionfind_typ| TTuple of unionfind_typ list * StructName.t option| TEnum of unionfind_typ list * EnumName.t| TArray of unionfind_typ| TAny of Any.t