Module Compiler.Types

type tyvar = string
type ty =
  1. | TInvalid
  2. | TUnit
  3. | TInt
  4. | TBool
  5. | TString
  6. | TArrow of ty * ty
  7. | TVar of tyvar
  8. | TList of ty
type tyenv = (string * ty) list
type tysubst = (tyvar * ty) list
val string_of_ty : ty -> tyvar
val string_of_tyenv : (string * ty) list -> string
val string_of_tysubst : (tyvar * ty) list -> string