Module Private.Raw_grammar
include module type of sig ... end
type label= stringtype generic_group_id= stringtype group_id= Sexplib0__.Lazy_group_id.ttype var_name= stringtype type_name= string
module Atom = Sexplib0__Raw_grammar.Atomtype 't type_= 't Sexplib0__Raw_grammar.type_=|Any|Apply of 't type_ * 't type_ list|Atom of Atom.t|Explicit_bind of var_name list * 't type_|Explicit_var of int|Grammar of 't|Implicit_var of int|List of 't sequence_type|Option of 't type_|Record of 't record_type|Recursive of type_name|Union of 't type_ list|Variant of 't variant_typeand 't sequence_type= 't component listand 't component= 't Sexplib0__Raw_grammar.component=|One of 't type_|Optional of 't type_|Many of 't type_|Fields of 't record_typeand 't variant_type= 't Sexplib0__Raw_grammar.variant_type={ignore_capitalization : bool;alts : (label * 't sequence_type) list;}and 't record_type= 't Sexplib0__Raw_grammar.record_type={allow_extra_fields : bool;fields : (label * 't field) list;}and 't field= 't Sexplib0__Raw_grammar.field={optional : bool;args : 't sequence_type;}type t= Sexplib0__Raw_grammar.t=|Ref of type_name * group|Inline of t type_and group= Sexplib0__Raw_grammar.group={gid : group_id;generic_group : generic_group;origin : string;apply_implicit : t list;}and generic_group= Sexplib0__Raw_grammar.generic_group={implicit_vars : var_name list;ggid : generic_group_id;types : (type_name * t type_) list;}
module Builtin : sig ... end