Module Ast.Ty
type t=|Prop|App of Sidekick_base_term.ID.t * t list|Arrow of t * t
val prop : tval const : Sidekick_base_term.ID.t -> tval app : Sidekick_base_term.ID.t -> t list -> tval arrow : t -> t -> tval arrow_l : t list -> t -> tval rat : tval int : t
val unfold : t -> t list * tunfold tywill get the list of arguments, and the return type of any function. An atomic type is just a function with no arguments
Datatypes
type data={data_id : Sidekick_base_term.ID.t;data_cstors : t Sidekick_base_term.ID.Map.t;}Mutually recursive datatypes