Module CST
module CST: sig
.. end
The type for concrete syntax trees of POSIX shell scripts. These
trees are produced by the Morbig parser.
This type definition refers directly to the grammar production
rules of the POSIX standard. We use the following convention to
name data constructors: given a rule A -> P1 ... PN
of the
grammar, the constructor for this rule starts with the name of the
non terminal A and continues with the names of producers Pi
appearing in the right-hand-side of the production rule. We do not
need types for operators and reserved words.
These concrete syntax trees are actually richer than the
production trees defined by the grammar. Indeed, they also embed
concrete syntax trees for WORDs while the grammar sees WORDs are
mere tokens. For instance, echo `cat bar`
is interpreted by the
grammar as a simple command with two WORDs echo
and `cat bar`
.
Morbig does not stop its work here: it also parses `cat bar` and
the resulting concrete syntax tree is attached to the WORD `cat
bar`
. See the type definition for word
below for more details.
The PPX syntax extension package "visitors", written by François
Pottier, is used to macro-generate many traversal functions over
this concrete syntax tree. Note that we expose the .ml file of
this module because the types generated by visitors
are too
complex to be displayed.
type
position = {
}
type
lexing_position = Lexing.position
= {
|
pos_fname : string ; |
|
pos_lnum : int ; |
|
pos_bol : int ; |
|
pos_cnum : int ; |
}
type 'a
located = {
}
val position_to_yojson : position -> Yojson.Safe.t
val position_of_yojson : Yojson.Safe.t -> position Ppx_deriving_yojson_runtime.error_or
val lexing_position_to_yojson : lexing_position -> Yojson.Safe.t
val lexing_position_of_yojson : Yojson.Safe.t -> lexing_position Ppx_deriving_yojson_runtime.error_or
val located_to_yojson : 'a. ('a -> Yojson.Safe.t) -> 'a located -> Yojson.Safe.t
val located_of_yojson : 'a.
(Yojson.Safe.t -> 'a Ppx_deriving_yojson_runtime.error_or) ->
Yojson.Safe.t -> 'a located Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
include struct ... end
include struct ... end
include struct ... end
include struct ... end
include struct ... end
include struct ... end
include struct ... end
type
program =
type
complete_commands =
type
complete_command =
type
clist =
type
and_or =
type
pipeline =
type
pipe_sequence =
type
command =
type
compound_command =
type
subshell =
type
compound_list =
type
term =
type
for_clause =
type
wordlist =
type
case_clause =
type
case_list_ns =
type
case_list =
type
case_item_ns =
type
case_item =
type
pattern =
type
if_clause =
type
else_part =
type
while_clause =
type
until_clause =
type
function_definition =
type
function_body =
type
fname =
type
brace_group =
type
do_group =
type
simple_command =
type
cmd_name =
type
cmd_word =
type
cmd_prefix =
type
cmd_suffix =
type
redirect_list =
type
io_redirect =
type
io_file =
type
filename =
type
io_here =
The two IoHere constructors have two arguments. The second argument is
the word holding the contents of the here document, which does not figure
in the grammar.
type
here_end =
type
newline_list =
| |
NewLineList_NewLine |
| |
NewLineList_NewLineList_NewLine of newline_list' |
type
linebreak =
type
separator_op =
| |
SeparatorOp_Uppersand |
| |
SeparatorOp_Semicolon |
type
separator =
type
sequential_sep =
type
word =
type
word_cst = word_component list
type
word_component =
type
character_range =
type
variable =
type
variable_attribute =
| |
NoAttribute |
| |
UseDefaultValues of word |
| |
AssignDefaultValues of word |
| |
IndicateErrorifNullorUnset of word |
| |
UseAlternativeValue of word |
| |
RemoveSmallestSuffixPattern of word |
| |
RemoveLargestSuffixPattern of word |
| |
RemoveSmallestPrefixPattern of word |
| |
RemoveLargestPrefixPattern of word |
type
subshell_kind =
| |
SubShellKindBackQuote |
| |
SubShellKindParentheses |
type
name =
type
assignment_word = name * word
type
io_number =
type
program' = program located
type
complete_commands' = complete_commands located
type
complete_command' = complete_command located
type
clist' = clist located
type
and_or' = and_or located
type
pipeline' = pipeline located
type
pipe_sequence' = pipe_sequence located
type
command' = command located
type
compound_command' = compound_command located
type
subshell' = subshell located
type
compound_list' = compound_list located
type
term' = term located
type
for_clause' = for_clause located
type
wordlist' = wordlist located
type
case_clause' = case_clause located
type
case_list_ns' = case_list_ns located
type
case_list' = case_list located
type
case_item_ns' = case_item_ns located
type
case_item' = case_item located
type
pattern' = pattern located
type
if_clause' = if_clause located
type
else_part' = else_part located
type
while_clause' = while_clause located
type
until_clause' = until_clause located
type
function_definition' = function_definition located
type
function_body' = function_body located
type
fname' = fname located
type
brace_group' = brace_group located
type
do_group' = do_group located
type
simple_command' = simple_command located
type
cmd_name' = cmd_name located
type
cmd_word' = cmd_word located
type
cmd_prefix' = cmd_prefix located
type
cmd_suffix' = cmd_suffix located
type
redirect_list' = redirect_list located
type
io_redirect' = io_redirect located
type
io_file' = io_file located
type
filename' = filename located
type
io_here' = io_here located
type
here_end' = here_end located
type
newline_list' = newline_list located
type
linebreak' = linebreak located
type
separator_op' = separator_op located
type
separator' = separator located
type
sequential_sep' = sequential_sep located
type
word' = word located
type
name' = name located
type
assignment_word' = assignment_word located
val program_to_yojson : program -> Yojson.Safe.t
val program_of_yojson : Yojson.Safe.t -> program Ppx_deriving_yojson_runtime.error_or
val complete_commands_to_yojson : complete_commands -> Yojson.Safe.t
val complete_commands_of_yojson : Yojson.Safe.t -> complete_commands Ppx_deriving_yojson_runtime.error_or
val complete_command_to_yojson : complete_command -> Yojson.Safe.t
val complete_command_of_yojson : Yojson.Safe.t -> complete_command Ppx_deriving_yojson_runtime.error_or
val clist_to_yojson : clist -> Yojson.Safe.t
val clist_of_yojson : Yojson.Safe.t -> clist Ppx_deriving_yojson_runtime.error_or
val and_or_to_yojson : and_or -> Yojson.Safe.t
val and_or_of_yojson : Yojson.Safe.t -> and_or Ppx_deriving_yojson_runtime.error_or
val pipeline_to_yojson : pipeline -> Yojson.Safe.t
val pipeline_of_yojson : Yojson.Safe.t -> pipeline Ppx_deriving_yojson_runtime.error_or
val pipe_sequence_to_yojson : pipe_sequence -> Yojson.Safe.t
val pipe_sequence_of_yojson : Yojson.Safe.t -> pipe_sequence Ppx_deriving_yojson_runtime.error_or
val command_to_yojson : command -> Yojson.Safe.t
val command_of_yojson : Yojson.Safe.t -> command Ppx_deriving_yojson_runtime.error_or
val compound_command_to_yojson : compound_command -> Yojson.Safe.t
val compound_command_of_yojson : Yojson.Safe.t -> compound_command Ppx_deriving_yojson_runtime.error_or
val subshell_to_yojson : subshell -> Yojson.Safe.t
val subshell_of_yojson : Yojson.Safe.t -> subshell Ppx_deriving_yojson_runtime.error_or
val compound_list_to_yojson : compound_list -> Yojson.Safe.t
val compound_list_of_yojson : Yojson.Safe.t -> compound_list Ppx_deriving_yojson_runtime.error_or
val term_to_yojson : term -> Yojson.Safe.t
val term_of_yojson : Yojson.Safe.t -> term Ppx_deriving_yojson_runtime.error_or
val for_clause_to_yojson : for_clause -> Yojson.Safe.t
val for_clause_of_yojson : Yojson.Safe.t -> for_clause Ppx_deriving_yojson_runtime.error_or
val wordlist_to_yojson : wordlist -> Yojson.Safe.t
val wordlist_of_yojson : Yojson.Safe.t -> wordlist Ppx_deriving_yojson_runtime.error_or
val case_clause_to_yojson : case_clause -> Yojson.Safe.t
val case_clause_of_yojson : Yojson.Safe.t -> case_clause Ppx_deriving_yojson_runtime.error_or
val case_list_ns_to_yojson : case_list_ns -> Yojson.Safe.t
val case_list_ns_of_yojson : Yojson.Safe.t -> case_list_ns Ppx_deriving_yojson_runtime.error_or
val case_list_to_yojson : case_list -> Yojson.Safe.t
val case_list_of_yojson : Yojson.Safe.t -> case_list Ppx_deriving_yojson_runtime.error_or
val case_item_ns_to_yojson : case_item_ns -> Yojson.Safe.t
val case_item_ns_of_yojson : Yojson.Safe.t -> case_item_ns Ppx_deriving_yojson_runtime.error_or
val case_item_to_yojson : case_item -> Yojson.Safe.t
val case_item_of_yojson : Yojson.Safe.t -> case_item Ppx_deriving_yojson_runtime.error_or
val pattern_to_yojson : pattern -> Yojson.Safe.t
val pattern_of_yojson : Yojson.Safe.t -> pattern Ppx_deriving_yojson_runtime.error_or
val if_clause_to_yojson : if_clause -> Yojson.Safe.t
val if_clause_of_yojson : Yojson.Safe.t -> if_clause Ppx_deriving_yojson_runtime.error_or
val else_part_to_yojson : else_part -> Yojson.Safe.t
val else_part_of_yojson : Yojson.Safe.t -> else_part Ppx_deriving_yojson_runtime.error_or
val while_clause_to_yojson : while_clause -> Yojson.Safe.t
val while_clause_of_yojson : Yojson.Safe.t -> while_clause Ppx_deriving_yojson_runtime.error_or
val until_clause_to_yojson : until_clause -> Yojson.Safe.t
val until_clause_of_yojson : Yojson.Safe.t -> until_clause Ppx_deriving_yojson_runtime.error_or
val function_definition_to_yojson : function_definition -> Yojson.Safe.t
val function_definition_of_yojson : Yojson.Safe.t -> function_definition Ppx_deriving_yojson_runtime.error_or
val function_body_to_yojson : function_body -> Yojson.Safe.t
val function_body_of_yojson : Yojson.Safe.t -> function_body Ppx_deriving_yojson_runtime.error_or
val fname_to_yojson : fname -> Yojson.Safe.t
val fname_of_yojson : Yojson.Safe.t -> fname Ppx_deriving_yojson_runtime.error_or
val brace_group_to_yojson : brace_group -> Yojson.Safe.t
val brace_group_of_yojson : Yojson.Safe.t -> brace_group Ppx_deriving_yojson_runtime.error_or
val do_group_to_yojson : do_group -> Yojson.Safe.t
val do_group_of_yojson : Yojson.Safe.t -> do_group Ppx_deriving_yojson_runtime.error_or
val simple_command_to_yojson : simple_command -> Yojson.Safe.t
val simple_command_of_yojson : Yojson.Safe.t -> simple_command Ppx_deriving_yojson_runtime.error_or
val cmd_name_to_yojson : cmd_name -> Yojson.Safe.t
val cmd_name_of_yojson : Yojson.Safe.t -> cmd_name Ppx_deriving_yojson_runtime.error_or
val cmd_word_to_yojson : cmd_word -> Yojson.Safe.t
val cmd_word_of_yojson : Yojson.Safe.t -> cmd_word Ppx_deriving_yojson_runtime.error_or
val cmd_prefix_to_yojson : cmd_prefix -> Yojson.Safe.t
val cmd_prefix_of_yojson : Yojson.Safe.t -> cmd_prefix Ppx_deriving_yojson_runtime.error_or
val cmd_suffix_to_yojson : cmd_suffix -> Yojson.Safe.t
val cmd_suffix_of_yojson : Yojson.Safe.t -> cmd_suffix Ppx_deriving_yojson_runtime.error_or
val redirect_list_to_yojson : redirect_list -> Yojson.Safe.t
val redirect_list_of_yojson : Yojson.Safe.t -> redirect_list Ppx_deriving_yojson_runtime.error_or
val io_redirect_to_yojson : io_redirect -> Yojson.Safe.t
val io_redirect_of_yojson : Yojson.Safe.t -> io_redirect Ppx_deriving_yojson_runtime.error_or
val io_file_to_yojson : io_file -> Yojson.Safe.t
val io_file_of_yojson : Yojson.Safe.t -> io_file Ppx_deriving_yojson_runtime.error_or
val filename_to_yojson : filename -> Yojson.Safe.t
val filename_of_yojson : Yojson.Safe.t -> filename Ppx_deriving_yojson_runtime.error_or
val io_here_to_yojson : io_here -> Yojson.Safe.t
val io_here_of_yojson : Yojson.Safe.t -> io_here Ppx_deriving_yojson_runtime.error_or
val here_end_to_yojson : here_end -> Yojson.Safe.t
val here_end_of_yojson : Yojson.Safe.t -> here_end Ppx_deriving_yojson_runtime.error_or
val newline_list_to_yojson : newline_list -> Yojson.Safe.t
val newline_list_of_yojson : Yojson.Safe.t -> newline_list Ppx_deriving_yojson_runtime.error_or
val linebreak_to_yojson : linebreak -> Yojson.Safe.t
val linebreak_of_yojson : Yojson.Safe.t -> linebreak Ppx_deriving_yojson_runtime.error_or
val separator_op_to_yojson : separator_op -> Yojson.Safe.t
val separator_op_of_yojson : Yojson.Safe.t -> separator_op Ppx_deriving_yojson_runtime.error_or
val separator_to_yojson : separator -> Yojson.Safe.t
val separator_of_yojson : Yojson.Safe.t -> separator Ppx_deriving_yojson_runtime.error_or
val sequential_sep_to_yojson : sequential_sep -> Yojson.Safe.t
val sequential_sep_of_yojson : Yojson.Safe.t -> sequential_sep Ppx_deriving_yojson_runtime.error_or
val word_to_yojson : word -> Yojson.Safe.t
val word_of_yojson : Yojson.Safe.t -> word Ppx_deriving_yojson_runtime.error_or
val word_cst_to_yojson : word_cst -> Yojson.Safe.t
val word_cst_of_yojson : Yojson.Safe.t -> word_cst Ppx_deriving_yojson_runtime.error_or
val word_component_to_yojson : word_component -> Yojson.Safe.t
val word_component_of_yojson : Yojson.Safe.t -> word_component Ppx_deriving_yojson_runtime.error_or
val character_range_to_yojson : character_range -> Yojson.Safe.t
val character_range_of_yojson : Yojson.Safe.t -> character_range Ppx_deriving_yojson_runtime.error_or
val variable_to_yojson : variable -> Yojson.Safe.t
val variable_of_yojson : Yojson.Safe.t -> variable Ppx_deriving_yojson_runtime.error_or
val variable_attribute_to_yojson : variable_attribute -> Yojson.Safe.t
val variable_attribute_of_yojson : Yojson.Safe.t -> variable_attribute Ppx_deriving_yojson_runtime.error_or
val subshell_kind_to_yojson : subshell_kind -> Yojson.Safe.t
val subshell_kind_of_yojson : Yojson.Safe.t -> subshell_kind Ppx_deriving_yojson_runtime.error_or
val name_to_yojson : name -> Yojson.Safe.t
val name_of_yojson : Yojson.Safe.t -> name Ppx_deriving_yojson_runtime.error_or
val assignment_word_to_yojson : assignment_word -> Yojson.Safe.t
val assignment_word_of_yojson : Yojson.Safe.t -> assignment_word Ppx_deriving_yojson_runtime.error_or
val io_number_to_yojson : io_number -> Yojson.Safe.t
val io_number_of_yojson : Yojson.Safe.t -> io_number Ppx_deriving_yojson_runtime.error_or
val program'_to_yojson : program' -> Yojson.Safe.t
val program'_of_yojson : Yojson.Safe.t -> program' Ppx_deriving_yojson_runtime.error_or
val complete_commands'_to_yojson : complete_commands' -> Yojson.Safe.t
val complete_commands'_of_yojson : Yojson.Safe.t -> complete_commands' Ppx_deriving_yojson_runtime.error_or
val complete_command'_to_yojson : complete_command' -> Yojson.Safe.t
val complete_command'_of_yojson : Yojson.Safe.t -> complete_command' Ppx_deriving_yojson_runtime.error_or
val clist'_to_yojson : clist' -> Yojson.Safe.t
val clist'_of_yojson : Yojson.Safe.t -> clist' Ppx_deriving_yojson_runtime.error_or
val and_or'_to_yojson : and_or' -> Yojson.Safe.t
val and_or'_of_yojson : Yojson.Safe.t -> and_or' Ppx_deriving_yojson_runtime.error_or
val pipeline'_to_yojson : pipeline' -> Yojson.Safe.t
val pipeline'_of_yojson : Yojson.Safe.t -> pipeline' Ppx_deriving_yojson_runtime.error_or
val pipe_sequence'_to_yojson : pipe_sequence' -> Yojson.Safe.t
val pipe_sequence'_of_yojson : Yojson.Safe.t -> pipe_sequence' Ppx_deriving_yojson_runtime.error_or
val command'_to_yojson : command' -> Yojson.Safe.t
val command'_of_yojson : Yojson.Safe.t -> command' Ppx_deriving_yojson_runtime.error_or
val compound_command'_to_yojson : compound_command' -> Yojson.Safe.t
val compound_command'_of_yojson : Yojson.Safe.t -> compound_command' Ppx_deriving_yojson_runtime.error_or
val subshell'_to_yojson : subshell' -> Yojson.Safe.t
val subshell'_of_yojson : Yojson.Safe.t -> subshell' Ppx_deriving_yojson_runtime.error_or
val compound_list'_to_yojson : compound_list' -> Yojson.Safe.t
val compound_list'_of_yojson : Yojson.Safe.t -> compound_list' Ppx_deriving_yojson_runtime.error_or
val term'_to_yojson : term' -> Yojson.Safe.t
val term'_of_yojson : Yojson.Safe.t -> term' Ppx_deriving_yojson_runtime.error_or
val for_clause'_to_yojson : for_clause' -> Yojson.Safe.t
val for_clause'_of_yojson : Yojson.Safe.t -> for_clause' Ppx_deriving_yojson_runtime.error_or
val wordlist'_to_yojson : wordlist' -> Yojson.Safe.t
val wordlist'_of_yojson : Yojson.Safe.t -> wordlist' Ppx_deriving_yojson_runtime.error_or
val case_clause'_to_yojson : case_clause' -> Yojson.Safe.t
val case_clause'_of_yojson : Yojson.Safe.t -> case_clause' Ppx_deriving_yojson_runtime.error_or
val case_list_ns'_to_yojson : case_list_ns' -> Yojson.Safe.t
val case_list_ns'_of_yojson : Yojson.Safe.t -> case_list_ns' Ppx_deriving_yojson_runtime.error_or
val case_list'_to_yojson : case_list' -> Yojson.Safe.t
val case_list'_of_yojson : Yojson.Safe.t -> case_list' Ppx_deriving_yojson_runtime.error_or
val case_item_ns'_to_yojson : case_item_ns' -> Yojson.Safe.t
val case_item_ns'_of_yojson : Yojson.Safe.t -> case_item_ns' Ppx_deriving_yojson_runtime.error_or
val case_item'_to_yojson : case_item' -> Yojson.Safe.t
val case_item'_of_yojson : Yojson.Safe.t -> case_item' Ppx_deriving_yojson_runtime.error_or
val pattern'_to_yojson : pattern' -> Yojson.Safe.t
val pattern'_of_yojson : Yojson.Safe.t -> pattern' Ppx_deriving_yojson_runtime.error_or
val if_clause'_to_yojson : if_clause' -> Yojson.Safe.t
val if_clause'_of_yojson : Yojson.Safe.t -> if_clause' Ppx_deriving_yojson_runtime.error_or
val else_part'_to_yojson : else_part' -> Yojson.Safe.t
val else_part'_of_yojson : Yojson.Safe.t -> else_part' Ppx_deriving_yojson_runtime.error_or
val while_clause'_to_yojson : while_clause' -> Yojson.Safe.t
val while_clause'_of_yojson : Yojson.Safe.t -> while_clause' Ppx_deriving_yojson_runtime.error_or
val until_clause'_to_yojson : until_clause' -> Yojson.Safe.t
val until_clause'_of_yojson : Yojson.Safe.t -> until_clause' Ppx_deriving_yojson_runtime.error_or
val function_definition'_to_yojson : function_definition' -> Yojson.Safe.t
val function_definition'_of_yojson : Yojson.Safe.t ->
function_definition' Ppx_deriving_yojson_runtime.error_or
val function_body'_to_yojson : function_body' -> Yojson.Safe.t
val function_body'_of_yojson : Yojson.Safe.t -> function_body' Ppx_deriving_yojson_runtime.error_or
val fname'_to_yojson : fname' -> Yojson.Safe.t
val fname'_of_yojson : Yojson.Safe.t -> fname' Ppx_deriving_yojson_runtime.error_or
val brace_group'_to_yojson : brace_group' -> Yojson.Safe.t
val brace_group'_of_yojson : Yojson.Safe.t -> brace_group' Ppx_deriving_yojson_runtime.error_or
val do_group'_to_yojson : do_group' -> Yojson.Safe.t
val do_group'_of_yojson : Yojson.Safe.t -> do_group' Ppx_deriving_yojson_runtime.error_or
val simple_command'_to_yojson : simple_command' -> Yojson.Safe.t
val simple_command'_of_yojson : Yojson.Safe.t -> simple_command' Ppx_deriving_yojson_runtime.error_or
val cmd_name'_to_yojson : cmd_name' -> Yojson.Safe.t
val cmd_name'_of_yojson : Yojson.Safe.t -> cmd_name' Ppx_deriving_yojson_runtime.error_or
val cmd_word'_to_yojson : cmd_word' -> Yojson.Safe.t
val cmd_word'_of_yojson : Yojson.Safe.t -> cmd_word' Ppx_deriving_yojson_runtime.error_or
val cmd_prefix'_to_yojson : cmd_prefix' -> Yojson.Safe.t
val cmd_prefix'_of_yojson : Yojson.Safe.t -> cmd_prefix' Ppx_deriving_yojson_runtime.error_or
val cmd_suffix'_to_yojson : cmd_suffix' -> Yojson.Safe.t
val cmd_suffix'_of_yojson : Yojson.Safe.t -> cmd_suffix' Ppx_deriving_yojson_runtime.error_or
val redirect_list'_to_yojson : redirect_list' -> Yojson.Safe.t
val redirect_list'_of_yojson : Yojson.Safe.t -> redirect_list' Ppx_deriving_yojson_runtime.error_or
val io_redirect'_to_yojson : io_redirect' -> Yojson.Safe.t
val io_redirect'_of_yojson : Yojson.Safe.t -> io_redirect' Ppx_deriving_yojson_runtime.error_or
val io_file'_to_yojson : io_file' -> Yojson.Safe.t
val io_file'_of_yojson : Yojson.Safe.t -> io_file' Ppx_deriving_yojson_runtime.error_or
val filename'_to_yojson : filename' -> Yojson.Safe.t
val filename'_of_yojson : Yojson.Safe.t -> filename' Ppx_deriving_yojson_runtime.error_or
val io_here'_to_yojson : io_here' -> Yojson.Safe.t
val io_here'_of_yojson : Yojson.Safe.t -> io_here' Ppx_deriving_yojson_runtime.error_or
val here_end'_to_yojson : here_end' -> Yojson.Safe.t
val here_end'_of_yojson : Yojson.Safe.t -> here_end' Ppx_deriving_yojson_runtime.error_or
val newline_list'_to_yojson : newline_list' -> Yojson.Safe.t
val newline_list'_of_yojson : Yojson.Safe.t -> newline_list' Ppx_deriving_yojson_runtime.error_or
val linebreak'_to_yojson : linebreak' -> Yojson.Safe.t
val linebreak'_of_yojson : Yojson.Safe.t -> linebreak' Ppx_deriving_yojson_runtime.error_or
val separator_op'_to_yojson : separator_op' -> Yojson.Safe.t
val separator_op'_of_yojson : Yojson.Safe.t -> separator_op' Ppx_deriving_yojson_runtime.error_or
val separator'_to_yojson : separator' -> Yojson.Safe.t
val separator'_of_yojson : Yojson.Safe.t -> separator' Ppx_deriving_yojson_runtime.error_or
val sequential_sep'_to_yojson : sequential_sep' -> Yojson.Safe.t
val sequential_sep'_of_yojson : Yojson.Safe.t -> sequential_sep' Ppx_deriving_yojson_runtime.error_or
val word'_to_yojson : word' -> Yojson.Safe.t
val word'_of_yojson : Yojson.Safe.t -> word' Ppx_deriving_yojson_runtime.error_or
val name'_to_yojson : name' -> Yojson.Safe.t
val name'_of_yojson : Yojson.Safe.t -> name' Ppx_deriving_yojson_runtime.error_or
val assignment_word'_to_yojson : assignment_word' -> Yojson.Safe.t
val assignment_word'_of_yojson : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> assignment_word' Ppx_deriving_yojson_runtime.error_or
include struct ... end
include struct ... end
include struct ... end
include struct ... end
include struct ... end
include struct ... end
include struct ... end