Module Solidity_common

type pos = string * (int * int) * (int * int)
val dummy_pos : pos
exception GenericError of string
val error : ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a
type relative = [
  1. | `Relative
]
type absolute = [
  1. | `Absolute
]
module ExtMap : sig ... end
module ZMap : ExtMap.S with type key = Z.t
module ZSet : Stdlib.Set.S with type elt = Z.t
module IntMap : ExtMap.S with type key = int
module StringMap : ExtMap.S with type key = string
module StringSet : Stdlib.Set.S with type elt = string
module Ident : sig ... end
module LongIdent : sig ... end
module IdentAList : sig ... end
module IdentMap : ExtMap.S with type key = Ident.t
module IdentSet : Stdlib.Set.S with type elt = Ident.t
module AbsLongIdentSet : Stdlib.Set.S with type elt = absolute LongIdent.t
module RelLongIdentSet : Stdlib.Set.S with type elt = relative LongIdent.t
module ExtList : sig ... end
module ExtInt : sig ... end
module ExtZ : sig ... end
module ExtQ : sig ... end
type annot = ..
type annot +=
  1. | ANone
type 'a node = {
  1. contents : 'a;
  2. mutable annot : annot;
  3. pos : pos;
}
val annot : 'a -> annot -> pos -> 'a node
val strip : 'a node -> 'a
val get_annot : 'a node -> annot
val set_annot : 'a node -> annot -> unit
val replace_annot : 'a node -> annot -> unit
val make_absolute_path : string -> string -> string
val is_some : 'a option -> bool
val is_none : 'a option -> bool
type primitive_kind =
  1. | PrimFunction
  2. | PrimMemberFunction
  3. | PrimVariable
  4. | PrimMemberVariable
type primitive = {
  1. prim_name : string;
  2. prim_kind : primitive_kind;
}
val max_primitives : int
val max_prim_id : int Stdlib.ref
val prim_of_id : int -> primitive option
val prim_of_ident : Ident.t -> (int * primitive) option
val add_primitive : int -> primitive -> unit
val for_freeton : bool Stdlib.ref
val string_of_pos : pos -> string * string
val to_pos : (Stdlib.Lexing.position * Stdlib.Lexing.position) -> pos