Module Ast.Structure

type structure_item =
  1. | Str_eval of Expression.t
    (*

    An evaluated expression, such as E.

    *)
  2. | Str_value of Expression.rec_flag * Expression.t Expression.value_binding List1.t
    (*

    A let-binding, such as:

    • let P1 = E1 and ... and Pn = En when rec is rec_flag.Nonrecursive.
    • let rec P1 = E1 and ... and Pn = En when rec is rec_flag.Recursive.
    *)
  3. | Str_adt of ident list * ident * (ident * TypeExpr.t option) List1.t
    (*

    A type declaration for an algebraic data type (ADT), such as type t1 = ... | ... | tn = ....

    *)
val equal_structure_item : structure_item -> structure_item -> bool
val pp_structure_item : Stdlib.Format.formatter -> structure_item -> unit
val show_structure_item : structure_item -> ident
val gen_structure_item : int -> structure_item QCheck.Gen.t