package archetype

  1. Overview
  2. Docs
type annot = string list
type ('l, 'p) node =
  1. | Int of 'l * Core.big_int
  2. | String of 'l * string
  3. | Bytes of 'l * Stdlib.Bytes.t
  4. | Prim of 'l * 'p * ('l, 'p) node list * annot
  5. | Seq of 'l * ('l, 'p) node list
type canonical_location = int
type 'p canonical =
  1. | Canonical of (canonical_location, 'p) node
val location : ('a, 'b) node -> 'c
val annotations : ('a, 'b) node -> annot
val root : 'a canonical -> (canonical_location, 'a) node
type ('l, 'p, 'la, 'pa) cont =
  1. | Seq_cont of 'la * ('l, 'p, 'la, 'pa) list_cont
  2. | Prim_cont of 'la * 'pa * annot * ('l, 'p, 'la, 'pa) list_cont
and ('l, 'p, 'la, 'pa) list_cont =
  1. | List_cont of ('l, 'p) node list * ('la, 'pa) node list * ('l, 'p, 'la, 'pa) cont
  2. | Return
val strip_locations : ('a, 'b) node -> 'b0 canonical
val extract_locations : 'l 'p. ('l, 'p) node -> 'p canonical * (canonical_location * 'l) list
val inject_locations : 'l 'p. (canonical_location -> 'l) -> 'p canonical -> ('l, 'p) node
val map : 'a 'b. ('a -> 'b) -> 'a canonical -> 'b canonical
val map_node : 'la 'lb 'pa 'pb. ('la -> 'lb) -> ('pa -> 'pb) -> ('la, 'pa) node -> ('lb, 'pb) node