Private.Raw_grammar
type !'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_type |
and !'t sequence_type = 't component list
and !'t component = 't Sexplib0__Raw_grammar.component =
| One of 't type_ |
| Optional of 't type_ |
| Many of 't type_ |
| Fields of 't record_type |
and !'t variant_type = 't Sexplib0__Raw_grammar.variant_type = {
ignore_capitalization : bool; |
alts : (label * 't sequence_type) list; |
}
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
val empty_sexp_grammar : t
val opaque_sexp_grammar : t
val fun_sexp_grammar : t
val tuple2_sexp_grammar : t