AST.map2
constraint
< fail_attribute : 'h -> attribute -> attribute -> attribute
; fail_command : 'h -> command -> command -> command
; fail_kind : 'h -> kind -> kind -> kind
; fail_word_component :
'h ->
word_component ->
word_component ->
word_component
; visit_And : 'h -> command' -> command' -> command' -> command' -> command
; visit_AssignDefaultValues : 'h -> word -> word -> attribute
; visit_Async : 'h -> command -> command -> command
; visit_Case :
'h ->
word ->
word ->
case_item' list ->
case_item' list ->
command
; visit_For :
'h ->
name ->
name ->
word list option ->
word list option ->
command' ->
command' ->
command
; visit_Function : 'h -> name -> name -> command' -> command' -> command
; visit_HereDocument :
'h ->
command' ->
command' ->
descr ->
descr ->
word Morbig.CST.located ->
word Morbig.CST.located ->
command
; visit_If :
'h ->
command' ->
command' ->
command' ->
command' ->
command' option ->
command' option ->
command
; visit_IndicateErrorifNullorUnset : 'h -> word -> word -> attribute
; visit_Input : 'h -> kind
; visit_InputDuplicate : 'h -> kind
; visit_InputOutput : 'h -> kind
; visit_NoAttribute : 'h -> attribute
; visit_Not : 'h -> command' -> command' -> command
; visit_Or : 'h -> command' -> command' -> command' -> command' -> command
; visit_Output : 'h -> kind
; visit_OutputAppend : 'h -> kind
; visit_OutputClobber : 'h -> kind
; visit_OutputDuplicate : 'h -> kind
; visit_ParameterLength : 'h -> word -> word -> attribute
; visit_Pipe :
'h ->
command' ->
command' ->
command' ->
command' ->
command
; visit_Redirection :
'h ->
command' ->
command' ->
descr ->
descr ->
kind ->
kind ->
word ->
word ->
command
; visit_RemoveLargestPrefixPattern : 'h -> word -> word -> attribute
; visit_RemoveLargestSuffixPattern : 'h -> word -> word -> attribute
; visit_RemoveSmallestPrefixPattern : 'h -> word -> word -> attribute
; visit_RemoveSmallestSuffixPattern : 'h -> word -> word -> attribute
; visit_Seq : 'h -> command' -> command' -> command' -> command' -> command
; visit_Simple :
'h ->
assignment Morbig.CST.located list ->
assignment Morbig.CST.located list ->
word Morbig.CST.located list ->
word Morbig.CST.located list ->
command
; visit_Subshell : 'h -> command' -> command' -> command
; visit_Until :
'h ->
command' ->
command' ->
command' ->
command' ->
command
; visit_UseAlternativeValue : 'h -> word -> word -> attribute
; visit_UseDefaultValues : 'h -> word -> word -> attribute
; visit_WBracketExpression :
'h ->
Morbig.CST.bracket_expression ->
Morbig.CST.bracket_expression ->
word_component
; visit_WDoubleQuoted : 'h -> word -> word -> word_component
; visit_WGlobAll : 'h -> word_component
; visit_WGlobAny : 'h -> word_component
; visit_WLiteral : 'h -> string -> string -> word_component
; visit_WSubshell : 'h -> program -> program -> word_component
; visit_WTildePrefix : 'h -> string -> string -> word_component
; visit_WVariable :
'h ->
name ->
name ->
attribute ->
attribute ->
word_component
; visit_While :
'h ->
command' ->
command' ->
command' ->
command' ->
command
; visit_assignment : 'h -> assignment -> assignment -> name * word
; visit_assignment' :
'h ->
assignment Morbig.CST.located ->
assignment Morbig.CST.located ->
assignment Morbig.CST.located
; visit_attribute : 'h -> attribute -> attribute -> attribute
; visit_case_item :
'h ->
case_item ->
case_item ->
pattern Morbig.CST.located * command' option
; visit_case_item' : 'h -> case_item' -> case_item' -> case_item'
; visit_character_range : 'i -> char list -> char list -> char list
; visit_command : 'h -> command -> command -> command
; visit_command' : 'h -> command' -> command' -> command'
; visit_descr : 'h -> descr -> descr -> descr
; visit_kind : 'h -> kind -> kind -> kind
; visit_lexing_position :
'env. 'env ->
Morbig.CST.lexing_position ->
Morbig.CST.lexing_position ->
Morbig.CST.lexing_position
; visit_located :
'env 'a_0 'a_1 'a_2. ('env -> 'a_0 -> 'a_1 -> 'a_2) ->
'env ->
'a_0 Morbig.CST.located ->
'a_1 Morbig.CST.located ->
'a_2 Morbig.CST.located
; visit_name : 'h -> name -> name -> name
; visit_pattern : 'h -> pattern -> pattern -> pattern
; visit_pattern' :
'h ->
pattern Morbig.CST.located ->
pattern Morbig.CST.located ->
pattern Morbig.CST.located
; visit_position :
'env. 'env ->
Morbig.CST.position ->
Morbig.CST.position ->
Morbig.CST.position
; visit_program : 'h -> program -> program -> program
; visit_word : 'h -> word -> word -> word
; visit_word' :
'h ->
word Morbig.CST.located ->
word Morbig.CST.located ->
word Morbig.CST.located
; visit_word_component :
'h ->
word_component ->
word_component ->
word_component.. > =
< fail_attribute : 'h -> attribute -> attribute -> attribute
; fail_command : 'h -> command -> command -> command
; fail_kind : 'h -> kind -> kind -> kind
; fail_word_component :
'h ->
word_component ->
word_component ->
word_component
; visit_And : 'h -> command' -> command' -> command' -> command' -> command
; visit_AssignDefaultValues : 'h -> word -> word -> attribute
; visit_Async : 'h -> command -> command -> command
; visit_Case :
'h ->
word ->
word ->
case_item' list ->
case_item' list ->
command
; visit_For :
'h ->
name ->
name ->
word list option ->
word list option ->
command' ->
command' ->
command
; visit_Function : 'h -> name -> name -> command' -> command' -> command
; visit_HereDocument :
'h ->
command' ->
command' ->
descr ->
descr ->
word Morbig.CST.located ->
word Morbig.CST.located ->
command
; visit_If :
'h ->
command' ->
command' ->
command' ->
command' ->
command' option ->
command' option ->
command
; visit_IndicateErrorifNullorUnset : 'h -> word -> word -> attribute
; visit_Input : 'h -> kind
; visit_InputDuplicate : 'h -> kind
; visit_InputOutput : 'h -> kind
; visit_NoAttribute : 'h -> attribute
; visit_Not : 'h -> command' -> command' -> command
; visit_Or : 'h -> command' -> command' -> command' -> command' -> command
; visit_Output : 'h -> kind
; visit_OutputAppend : 'h -> kind
; visit_OutputClobber : 'h -> kind
; visit_OutputDuplicate : 'h -> kind
; visit_ParameterLength : 'h -> word -> word -> attribute
; visit_Pipe :
'h ->
command' ->
command' ->
command' ->
command' ->
command
; visit_Redirection :
'h ->
command' ->
command' ->
descr ->
descr ->
kind ->
kind ->
word ->
word ->
command
; visit_RemoveLargestPrefixPattern : 'h -> word -> word -> attribute
; visit_RemoveLargestSuffixPattern : 'h -> word -> word -> attribute
; visit_RemoveSmallestPrefixPattern : 'h -> word -> word -> attribute
; visit_RemoveSmallestSuffixPattern : 'h -> word -> word -> attribute
; visit_Seq : 'h -> command' -> command' -> command' -> command' -> command
; visit_Simple :
'h ->
assignment Morbig.CST.located list ->
assignment Morbig.CST.located list ->
word Morbig.CST.located list ->
word Morbig.CST.located list ->
command
; visit_Subshell : 'h -> command' -> command' -> command
; visit_Until :
'h ->
command' ->
command' ->
command' ->
command' ->
command
; visit_UseAlternativeValue : 'h -> word -> word -> attribute
; visit_UseDefaultValues : 'h -> word -> word -> attribute
; visit_WBracketExpression :
'h ->
Morbig.CST.bracket_expression ->
Morbig.CST.bracket_expression ->
word_component
; visit_WDoubleQuoted : 'h -> word -> word -> word_component
; visit_WGlobAll : 'h -> word_component
; visit_WGlobAny : 'h -> word_component
; visit_WLiteral : 'h -> string -> string -> word_component
; visit_WSubshell : 'h -> program -> program -> word_component
; visit_WTildePrefix : 'h -> string -> string -> word_component
; visit_WVariable :
'h ->
name ->
name ->
attribute ->
attribute ->
word_component
; visit_While :
'h ->
command' ->
command' ->
command' ->
command' ->
command
; visit_assignment : 'h -> assignment -> assignment -> name * word
; visit_assignment' :
'h ->
assignment Morbig.CST.located ->
assignment Morbig.CST.located ->
assignment Morbig.CST.located
; visit_attribute : 'h -> attribute -> attribute -> attribute
; visit_case_item :
'h ->
case_item ->
case_item ->
pattern Morbig.CST.located * command' option
; visit_case_item' : 'h -> case_item' -> case_item' -> case_item'
; visit_character_range : 'i -> char list -> char list -> char list
; visit_command : 'h -> command -> command -> command
; visit_command' : 'h -> command' -> command' -> command'
; visit_descr : 'h -> descr -> descr -> descr
; visit_kind : 'h -> kind -> kind -> kind
; visit_lexing_position :
'env. 'env ->
Morbig.CST.lexing_position ->
Morbig.CST.lexing_position ->
Morbig.CST.lexing_position
; visit_located :
'env 'a_0 'a_1 'a_2. ('env -> 'a_0 -> 'a_1 -> 'a_2) ->
'env ->
'a_0 Morbig.CST.located ->
'a_1 Morbig.CST.located ->
'a_2 Morbig.CST.located
; visit_name : 'h -> name -> name -> name
; visit_pattern : 'h -> pattern -> pattern -> pattern
; visit_pattern' :
'h ->
pattern Morbig.CST.located ->
pattern Morbig.CST.located ->
pattern Morbig.CST.located
; visit_position :
'env. 'env ->
Morbig.CST.position ->
Morbig.CST.position ->
Morbig.CST.position
; visit_program : 'h -> program -> program -> program
; visit_word : 'h -> word -> word -> word
; visit_word' :
'h ->
word Morbig.CST.located ->
word Morbig.CST.located ->
word Morbig.CST.located
; visit_word_component :
'h ->
word_component ->
word_component ->
word_component.. >
inherit Morsmall__.Location.located_map2
method visit_NoAttribute : 'j -> 'h -> attribute
method visit_WTildePrefix : 'j -> 'h -> string -> string -> word_component
method visit_WLiteral : 'j -> 'h -> string -> string -> word_component
method visit_WDoubleQuoted : 'j -> 'h -> word -> word -> word_component
method visit_WVariable : 'j ->
'h ->
name ->
name ->
attribute ->
attribute ->
word_component
method visit_WSubshell : 'j -> 'h -> program -> program -> word_component
method visit_WGlobAll : 'j -> 'h -> word_component
method visit_WGlobAny : 'j -> 'h -> word_component
method visit_WBracketExpression : 'j ->
'h ->
Morbig.CST.bracket_expression ->
Morbig.CST.bracket_expression ->
word_component
method fail_word_component : 'j ->
'h ->
word_component ->
word_component ->
word_component
method visit_word_component : 'j ->
'h ->
word_component ->
word_component ->
word_component
method visit_assignment : 'j -> 'h -> assignment -> assignment -> name * word
method visit_assignment' : 'j ->
'h ->
assignment Morbig.CST.located ->
assignment Morbig.CST.located ->
assignment Morbig.CST.located
method visit_Simple : 'j ->
'h ->
assignment Morbig.CST.located list ->
assignment Morbig.CST.located list ->
word Morbig.CST.located list ->
word Morbig.CST.located list ->
command
method visit_Case : 'j ->
'h ->
word ->
word ->
case_item' list ->
case_item' list ->
command
method visit_case_item' : 'j -> 'h -> case_item' -> case_item' -> case_item'
method visit_Output : 'j -> 'h -> kind
method visit_OutputDuplicate : 'j -> 'h -> kind
method visit_OutputAppend : 'j -> 'h -> kind
method visit_OutputClobber : 'j -> 'h -> kind
method visit_Input : 'j -> 'h -> kind
method visit_InputDuplicate : 'j -> 'h -> kind
method visit_InputOutput : 'j -> 'h -> kind