vxml_pipeline/nodemaps_2_transform

Tree walkers that lift a single-node mapping function into a complete DesugarerTransform.

Ordinary nodemaps are post-order: children are transformed before their parent. Functions ending in _without_walking apply only to the supplied root. Functions ending in _outside leave V-nodes named by the outside list, and their entire subtrees, unchanged. Those tag names are validated when the transform is constructed.

Nodemap family names use this term order:

EarlyReturn | ""
Fancy | ""
OneToOne | OneToMany | OneToOption
EnterExitStateful | Stateful | ""
WithChildStates | ""
NoError | ""
WithWarnings | ""
Nodemap

OneToOne, OneToMany, and OneToOption describe the number of output nodes. Fancy supplies ancestor and sibling context. Stateful threads an accumulator through the walk. EnterExitStateful provides separate hooks before and after child traversal; its exit hook receives both the state at entry and the latest descendant state. WithChildStates additionally supplies the state returned by each child. EarlyReturn can suppress descent into the current subtree. NoError and WithWarnings describe the callback’s result capabilities.

Stateful visitors form a separate family: they gather state without returning replacement VXML.

Types

Fallible contextual enter/exit callbacks that may warn or skip subtrees.

pub type EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap(a) {
  EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap(
    on_enter: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(
      #(
        vxml.VXML,
        a,
        List(core.DesugaringWarning),
        core.TrafficLight,
      ),
      core.DesugaringError,
    ),
    on_exit: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
      a,
    ) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_text: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
  )
}

Constructors

An infallible contextual one-to-one callback that may skip subtrees.

pub type EarlyReturnFancyOneToOneNoErrorNodemap =
  fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> #(vxml.VXML, core.TrafficLight)

Contextual enter/exit callbacks that may remove nodes, warn, fail, or skip subtrees.

pub type EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap(a) {
  EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap(
    on_enter: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(
      #(
        option.Option(vxml.VXML),
        a,
        List(core.DesugaringWarning),
        core.TrafficLight,
      ),
      core.DesugaringError,
    ),
    on_exit: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
      a,
    ) -> Result(
      #(option.Option(vxml.VXML), a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_text: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(
      #(option.Option(vxml.VXML), a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
  )
}

Constructors

An infallible one-to-many callback that may skip the current subtree.

pub type EarlyReturnOneToManyNoErrorNodemap =
  fn(vxml.VXML) -> #(List(vxml.VXML), core.TrafficLight)

Fallible enter/exit callbacks that may skip the current subtree.

pub type EarlyReturnOneToOneEnterExitStatefulNodemap(a) {
  EarlyReturnOneToOneEnterExitStatefulNodemap(
    on_enter: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a, core.TrafficLight),
      core.DesugaringError,
    ),
    on_exit: fn(vxml.VXML, a, a) -> Result(
      #(vxml.VXML, a),
      core.DesugaringError,
    ),
    on_text: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a),
      core.DesugaringError,
    ),
  )
}

Constructors

Fallible warning-producing enter/exit callbacks that may skip subtrees.

pub type EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap(a) {
  EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap(
    on_enter: fn(vxml.VXML, a) -> Result(
      #(
        vxml.VXML,
        a,
        List(core.DesugaringWarning),
        core.TrafficLight,
      ),
      core.DesugaringError,
    ),
    on_exit: fn(vxml.VXML, a, a) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_text: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
  )
}

Constructors

An infallible one-to-one callback that may skip the current subtree.

pub type EarlyReturnOneToOneNoErrorNodemap =
  fn(vxml.VXML) -> #(vxml.VXML, core.TrafficLight)

A fallible one-to-one callback that may skip the current subtree.

pub type EarlyReturnOneToOneNodemap =
  fn(vxml.VXML) -> Result(
    #(vxml.VXML, core.TrafficLight),
    core.DesugaringError,
  )

Infallible enter/exit callbacks that may remove nodes and inspect every child’s resulting state.

pub type EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap(a) {
  EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap(
    on_enter: fn(vxml.VXML, a) -> #(
      option.Option(vxml.VXML),
      a,
      core.TrafficLight,
    ),
    on_exit: fn(vxml.VXML, a, List(a)) -> #(
      option.Option(vxml.VXML),
      a,
    ),
    on_text: fn(vxml.VXML, a) -> #(option.Option(vxml.VXML), a),
  )
}

Constructors

A fallible state-gathering visitor that may skip the current subtree.

pub type EarlyReturnStatefulVisitor(a) =
  fn(vxml.VXML, a) -> Result(
    #(a, core.TrafficLight),
    core.DesugaringError,
  )

An infallible one-to-many callback with tree-position context.

pub type FancyOneToManyNoErrorNodemap =
  fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> List(vxml.VXML)

A fallible one-to-many callback with tree-position context.

pub type FancyOneToManyNodemap =
  fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> Result(List(vxml.VXML), core.DesugaringError)

Fallible enter/exit callbacks with tree-position context.

pub type FancyOneToOneEnterExitStatefulNodemap(a) {
  FancyOneToOneEnterExitStatefulNodemap(
    on_enter: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(#(vxml.VXML, a), core.DesugaringError),
    on_exit: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
      a,
    ) -> Result(#(vxml.VXML, a), core.DesugaringError),
    on_text: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(#(vxml.VXML, a), core.DesugaringError),
  )
}

Constructors

Fallible contextual enter/exit callbacks that may emit warnings.

pub type FancyOneToOneEnterExitStatefulWithWarningsNodemap(a) {
  FancyOneToOneEnterExitStatefulWithWarningsNodemap(
    on_enter: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_exit: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
      a,
    ) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_text: fn(
      vxml.VXML,
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      List(vxml.VXML),
      a,
    ) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
  )
}

Constructors

An infallible one-to-one callback with tree-position context.

pub type FancyOneToOneNoErrorNodemap =
  fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> vxml.VXML

A fallible one-to-one callback with tree-position context.

pub type FancyOneToOneNodemap =
  fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> Result(vxml.VXML, core.DesugaringError)

A fallible root inspection or side calculation that returns no VXML.

pub type NodeToNil =
  fn(vxml.VXML) -> Result(Nil, core.DesugaringError)

A fallible transformation of one VXML node into one node.

pub type NodeToNode =
  fn(vxml.VXML) -> Result(vxml.VXML, core.DesugaringError)

A fallible one-node transformation that may emit warnings.

pub type NodeToNodeWithWarnings =
  fn(vxml.VXML) -> Result(
    #(vxml.VXML, List(core.DesugaringWarning)),
    core.DesugaringError,
  )

Fallible stateful enter/exit callbacks that return zero or more nodes.

pub type OneToManyEnterExitStatefulNodemap(a) {
  OneToManyEnterExitStatefulNodemap(
    on_enter: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a),
      core.DesugaringError,
    ),
    on_exit: fn(vxml.VXML, a, a) -> Result(
      #(List(vxml.VXML), a),
      core.DesugaringError,
    ),
    on_text: fn(vxml.VXML, a) -> Result(
      #(List(vxml.VXML), a),
      core.DesugaringError,
    ),
  )
}

Constructors

Fallible stateful one-to-many enter/exit callbacks that may emit warnings.

pub type OneToManyEnterExitStatefulWithWarningsNodemap(a) {
  OneToManyEnterExitStatefulWithWarningsNodemap(
    on_enter: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_exit: fn(vxml.VXML, a, a) -> Result(
      #(List(vxml.VXML), a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
    on_text: fn(vxml.VXML, a) -> Result(
      #(List(vxml.VXML), a, List(core.DesugaringWarning)),
      core.DesugaringError,
    ),
  )
}

Constructors

An infallible callback that replaces one node with zero or more nodes.

pub type OneToManyNoErrorNodemap =
  fn(vxml.VXML) -> List(vxml.VXML)

An infallible one-to-many callback that may emit warnings.

pub type OneToManyNoErrorWithWarningsNodemap =
  fn(vxml.VXML) -> #(
    List(vxml.VXML),
    List(core.DesugaringWarning),
  )

A fallible callback that replaces one node with zero or more nodes.

pub type OneToManyNodemap =
  fn(vxml.VXML) -> Result(List(vxml.VXML), core.DesugaringError)

Infallible stateful callbacks for entering elements, exiting elements, and visiting text nodes.

pub type OneToOneEnterExitStatefulNoErrorNodemap(a) {
  OneToOneEnterExitStatefulNoErrorNodemap(
    on_enter: fn(vxml.VXML, a) -> #(vxml.VXML, a),
    on_exit: fn(vxml.VXML, a, a) -> #(vxml.VXML, a),
    on_text: fn(vxml.VXML, a) -> #(vxml.VXML, a),
  )
}

Constructors

Fallible stateful callbacks for entering elements, exiting elements, and visiting text nodes.

pub type OneToOneEnterExitStatefulNodemap(a) {
  OneToOneEnterExitStatefulNodemap(
    on_enter: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a),
      core.DesugaringError,
    ),
    on_exit: fn(vxml.VXML, a, a) -> Result(
      #(vxml.VXML, a),
      core.DesugaringError,
    ),
    on_text: fn(vxml.VXML, a) -> Result(
      #(vxml.VXML, a),
      core.DesugaringError,
    ),
  )
}

Constructors

An infallible callback that replaces one node with one node.

pub type OneToOneNoErrorNodemap =
  fn(vxml.VXML) -> vxml.VXML

An infallible one-to-one callback that may emit warnings.

pub type OneToOneNoErrorWithWarningsNodemap =
  fn(vxml.VXML) -> #(vxml.VXML, List(core.DesugaringWarning))

A fallible callback that replaces one node with one node.

pub type OneToOneNodemap =
  fn(vxml.VXML) -> Result(vxml.VXML, core.DesugaringError)

A fallible one-to-one callback that threads state through the walk.

pub type OneToOneStatefulNodemap(a) =
  fn(vxml.VXML, a) -> Result(
    #(vxml.VXML, a),
    core.DesugaringError,
  )

An infallible state-gathering visitor.

pub type StatefulNoErrorVisitor(a) =
  fn(vxml.VXML, a) -> a

Values

pub fn add_no_warnings(vxml: vxml.VXML) -> #(vxml.VXML, List(a))

Pairs a transformed VXML root with an empty warning list.

pub fn early_return_fancy_one_to_one_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
  nodemap: EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap(
    a,
  ),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_fancy_one_to_one_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> #(vxml.VXML, core.TrafficLight),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_fancy_one_to_option_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
  nodemap: EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap(
    a,
  ),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_many_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> #(List(vxml.VXML), core.TrafficLight),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_many_no_error_nodemap_2_desugarer_transform_outside(
  nodemap: fn(vxml.VXML) -> #(List(vxml.VXML), core.TrafficLight),
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_one_enter_exit_stateful_nodemap_2_desugarer_transform(
  nodemap: EarlyReturnOneToOneEnterExitStatefulNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_one_enter_exit_stateful_nodemap_walk(
  original_state: a,
  node: vxml.VXML,
  nodemap: EarlyReturnOneToOneEnterExitStatefulNodemap(a),
) -> Result(#(vxml.VXML, a), core.DesugaringError)
pub fn early_return_one_to_one_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
  nodemap: EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap(
    a,
  ),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_one_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> #(vxml.VXML, core.TrafficLight),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_one_no_error_nodemap_2_desugarer_transform_outside(
  nodemap: fn(vxml.VXML) -> #(vxml.VXML, core.TrafficLight),
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_one_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> Result(
    #(vxml.VXML, core.TrafficLight),
    core.DesugaringError,
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_one_to_one_nodemap_walk(
  node: vxml.VXML,
  nodemap: fn(vxml.VXML) -> Result(
    #(vxml.VXML, core.TrafficLight),
    core.DesugaringError,
  ),
) -> Result(vxml.VXML, core.DesugaringError)
pub fn early_return_one_to_option_enter_exit_stateful_with_child_states_no_error_nodemap_2_desugarer_transform(
  nodemap: EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap(
    a,
  ),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn early_return_stateful_visit(
  vxml: vxml.VXML,
  state: state,
  visitor: fn(vxml.VXML, state) -> Result(
    #(state, core.TrafficLight),
    core.DesugaringError,
  ),
) -> Result(state, core.DesugaringError)
pub fn enter_exit_identity(
  vxml: vxml.VXML,
  state: state,
) -> Result(#(vxml.VXML, state), core.DesugaringError)

An enter/exit hook that leaves both VXML and state unchanged.

pub fn enter_exit_keep_latest_state(
  vxml: vxml.VXML,
  original_state: state,
  latest_state: state,
) -> Result(#(vxml.VXML, state), core.DesugaringError)

An exit hook that keeps the VXML and the latest descendant state.

pub fn fancy_one_to_many_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> List(vxml.VXML),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn fancy_one_to_many_nodemap_2_desugarer_transform(
  nodemap: fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> Result(List(vxml.VXML), core.DesugaringError),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn fancy_one_to_one_enter_exit_stateful_nodemap_2_desugarer_transform(
  nodemap: FancyOneToOneEnterExitStatefulNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn fancy_one_to_one_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
  nodemap: FancyOneToOneEnterExitStatefulWithWarningsNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn fancy_one_to_one_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> vxml.VXML,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn fancy_one_to_one_nodemap_2_desugarer_transform(
  nodemap: fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> Result(vxml.VXML, core.DesugaringError),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn fancy_one_to_one_nodemap_2_desugarer_transform_outside(
  nodemap: fn(
    vxml.VXML,
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
    List(vxml.VXML),
  ) -> Result(vxml.VXML, core.DesugaringError),
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn identity_transform(
  vxml: vxml.VXML,
) -> Result(#(vxml.VXML, List(a)), b)

A desugarer transform that returns its input unchanged without warnings.

pub fn node_to_nil_2_desugarer_transform_without_walking(
  node_to_nil: fn(vxml.VXML) -> Result(Nil, core.DesugaringError),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(a)),
  core.DesugaringError,
)

Runs a root-only NodeToNil callback and returns the original VXML when it succeeds.

pub fn node_to_node_2_desugarer_transform_without_walking(
  node_to_node: fn(vxml.VXML) -> Result(
    vxml.VXML,
    core.DesugaringError,
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(a)),
  core.DesugaringError,
)

Converts a root-only one-node transformation into a desugarer transform.

pub fn node_to_node_with_warnings_2_desugarer_transform_without_walking(
  node_to_node: fn(vxml.VXML) -> Result(
    #(vxml.VXML, List(core.DesugaringWarning)),
    core.DesugaringError,
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)

Converts a warning-producing root-only transformation into a desugarer transform.

pub fn one_to_many_enter_exit_stateful_nodemap_2_desugarer_transform(
  nodemap: OneToManyEnterExitStatefulNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_many_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
  nodemap: OneToManyEnterExitStatefulWithWarningsNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_many_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> List(vxml.VXML),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_many_no_error_nodemap_2_desugarer_transform_outside(
  nodemap: fn(vxml.VXML) -> List(vxml.VXML),
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_many_no_error_nodemap_walk(
  node: vxml.VXML,
  nodemap: fn(vxml.VXML) -> List(vxml.VXML),
) -> List(vxml.VXML)
pub fn one_to_many_no_error_with_warnings_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> #(
    List(vxml.VXML),
    List(core.DesugaringWarning),
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_many_no_error_with_warnings_nodemap_walk(
  node: vxml.VXML,
  nodemap: fn(vxml.VXML) -> #(
    List(vxml.VXML),
    List(core.DesugaringWarning),
  ),
) -> #(List(vxml.VXML), List(core.DesugaringWarning))
pub fn one_to_many_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> Result(
    List(vxml.VXML),
    core.DesugaringError,
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_many_nodemap_2_desugarer_transform_outside(
  nodemap: fn(vxml.VXML) -> Result(
    List(vxml.VXML),
    core.DesugaringError,
  ),
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_enter_exit_stateful_no_error_nodemap_2_desugarer_transform(
  nodemap: OneToOneEnterExitStatefulNoErrorNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_enter_exit_stateful_no_error_nodemap_2_desugarer_transform_outside(
  nodemap: OneToOneEnterExitStatefulNoErrorNodemap(a),
  initial_state: a,
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_enter_exit_stateful_nodemap_2_desugarer_transform(
  nodemap: OneToOneEnterExitStatefulNodemap(a),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> vxml.VXML,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_2_desugarer_transform_outside(
  nodemap: fn(vxml.VXML) -> vxml.VXML,
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_2_desugarer_transform_outside_self_first(
  nodemap: fn(vxml.VXML) -> vxml.VXML,
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_walk(
  node: vxml.VXML,
  nodemap: fn(vxml.VXML) -> vxml.VXML,
) -> vxml.VXML
pub fn one_to_one_no_error_with_warnings_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> #(
    vxml.VXML,
    List(core.DesugaringWarning),
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_no_error_with_warnings_nodemap_walk(
  node: vxml.VXML,
  nodemap: fn(vxml.VXML) -> #(
    vxml.VXML,
    List(core.DesugaringWarning),
  ),
) -> #(vxml.VXML, List(core.DesugaringWarning))
pub fn one_to_one_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML) -> Result(
    vxml.VXML,
    core.DesugaringError,
  ),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_nodemap_2_desugarer_transform_outside(
  nodemap: fn(vxml.VXML) -> Result(
    vxml.VXML,
    core.DesugaringError,
  ),
  outside: List(String),
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn one_to_one_stateful_nodemap_2_desugarer_transform(
  nodemap: fn(vxml.VXML, a) -> Result(
    #(vxml.VXML, a),
    core.DesugaringError,
  ),
  initial_state: a,
) -> fn(vxml.VXML) -> Result(
  #(vxml.VXML, List(core.DesugaringWarning)),
  core.DesugaringError,
)
pub fn stateful_no_error_visit(
  vxml: vxml.VXML,
  state: state,
  visitor: fn(vxml.VXML, state) -> state,
) -> state
Search Document