Sidekick_base.Data_tytype select = Types_.select = {select_id : ID.t; |
select_cstor : Types_.cstor; |
select_ty : Types_.ty lazy_t; |
select_i : int; |
}type cstor = Types_.cstor = {cstor_id : ID.t; |
cstor_is_a : ID.t; |
mutable cstor_arity : int; |
cstor_args : select list lazy_t; |
cstor_ty_as_data : Types_.data; |
cstor_ty : Types_.ty lazy_t; |
}type t = Types_.data = {data_id : ID.t; |
data_cstors : cstor Sidekick_base__.ID.Map.t lazy_t; |
data_as_ty : Types_.ty lazy_t; |
}include Sidekick_sigs.EQ_HASH_PRINT with type t := tinclude Sidekick_sigs.EQ with type t := tinclude Sidekick_sigs.HASH with type t := tval hash : t -> intinclude Sidekick_sigs.PRINT with type t := tval pp : t Sidekick_sigs.printermodule Select : sig ... endmodule Cstor : sig ... endval data : Types_.Term.store -> t -> Types_.Term.tval cstor : Types_.Term.store -> cstor -> Types_.Term.tval select : Types_.Term.store -> select -> Types_.Term.tval is_a : Types_.Term.store -> cstor -> Types_.Term.tval as_data : Types_.ty -> Types_.data optionval as_select : Types_.term -> select optionval as_cstor : Types_.term -> cstor optionval as_is_a : Types_.term -> cstor option