sig
  type t = Nat | Arrow of T.Type.t * T.Type.t | Tvar of int
  val print : Pervasives.out_channel -> T.Type.t -> unit
  val to_string : T.Type.t -> string
end