Module Mavryk_protocol_environment_000_Ps9mPmXa.Micheline

type annot = string list
type (!'a, !'b) node = ('a, 'b) Mavryk_micheline.Micheline.node =
  1. | Int of 'a * Z.t
  2. | String of 'a * string
  3. | Bytes of 'a * MBytes.t
  4. | Prim of 'a * 'b * ('a, 'b) node list * annot
  5. | Seq of 'a * ('a, 'b) node list
type canonical_location = int
val root : 'p canonical -> (canonical_location, 'p) node
val canonical_location_encoding : canonical_location Data_encoding.encoding
val canonical_encoding : variant:string -> 'l Data_encoding.encoding -> 'l canonical Data_encoding.encoding
val canonical_encoding_v1 : variant:string -> 'l Data_encoding.encoding -> 'l canonical Data_encoding.encoding
val location : ('l, 'p) node -> 'l
val annotations : ('l, 'p) node -> string list
val strip_locations : ('a, 'p) node -> 'p canonical
val extract_locations : ('l, 'p) node -> 'p canonical * (canonical_location * 'l) list
val inject_locations : (canonical_location -> 'l) -> 'p canonical -> ('l, 'p) node