Module Ast.TypeExpr

type t =
  1. | Type_arrow of t * t
    (*

    Represents a function type: T1 -> T2.

    *)
  2. | Type_var of ident
    (*

    Represents a type variable: 'a.

    *)
  3. | Type_tuple of t List2.t
    (*

    Represents a tuple type: (T1, T2, ..., Tn).

    *)
  4. | Type_construct of ident * t list
    (*

    Represents a type constructor with arguments: C T1 ... Tn.

    *)
val equal : t -> t -> bool
val pp : Stdlib.Format.formatter -> t -> unit
val show : t -> ident
val gen_sized : int -> t QCheck.Gen.t
val gen : t QCheck.Gen.t
val arb_sized : int -> t QCheck.arbitrary
val arb : t QCheck.arbitrary