package obeam

  1. Overview
  2. Docs
module Sf = Simple_term_format
module Z = Aux.Z
type line_t = Base.int
val sexp_of_line_t : line_t -> Ppx_sexp_conv_lib.Sexp.t
type t =
  1. | AbstractCode of form_t
and form_t =
  1. | ModDecl of form_t Base.list
  2. | AttrExport of line_t * (Base.string * Base.int) Base.list
  3. | AttrExportType of line_t * (Base.string * Base.int) Base.list
  4. | AttrImport of line_t * (Base.string * Base.int) Base.list
  5. | AttrMod of line_t * Base.string
  6. | AttrFile of line_t * Base.string * line_t
  7. | DeclFun of line_t * Base.string * Base.int * clause_t Base.list
  8. | SpecFun of line_t * Base.string Base.option * Base.string * Base.int * type_t Base.list
  9. | DeclRecord of line_t * (line_t * Base.string * expr_t Base.option * type_t Base.option) Base.list
  10. | DeclType of line_t * Base.string * (line_t * Base.string) Base.list * type_t
  11. | DeclOpaqueType of line_t * Base.string * (line_t * Base.string) Base.list * type_t
  12. | AttrWild of line_t * Base.string * Sf.t
  13. | FormEof
and literal_t =
  1. | LitAtom of line_t * Base.string
  2. | LitInteger of line_t * Base.int
  3. | LitBigInt of line_t * Z.t
  4. | LitString of line_t * Base.string
and pattern_t =
  1. | PatMap of line_t * pattern_assoc_t Base.list
  2. | PatUniversal of line_t
  3. | PatVar of line_t * Base.string
  4. | PatLit of literal_t
and pattern_assoc_t =
  1. | PatAssocExact of line_t * pattern_t * pattern_t
and expr_t =
  1. | ExprBody of expr_t Base.list
  2. | ExprCase of line_t * expr_t * clause_t Base.list
  3. | ExprLocalCall of line_t * expr_t * expr_t Base.list
  4. | ExprRemoteCall of line_t * line_t * expr_t * expr_t * expr_t Base.list
  5. | ExprMapCreation of line_t * expr_assoc_t Base.list
  6. | ExprMapUpdate of line_t * expr_t * expr_assoc_t Base.list
  7. | ExprBinOp of line_t * Base.string * expr_t * expr_t
  8. | ExprVar of line_t * Base.string
  9. | ExprLit of literal_t
and expr_assoc_t =
  1. | ExprAssoc of line_t * expr_t * expr_t
  2. | ExprAssocExact of line_t * expr_t * expr_t
and clause_t =
  1. | ClsCase of line_t * pattern_t * guard_sequence_t Base.option * expr_t
  2. | ClsFun of line_t * pattern_t Base.list * guard_sequence_t Base.option * expr_t
and guard_sequence_t =
  1. | GuardSeq of guard_t Base.list
and guard_t =
  1. | Guard of guard_test_t Base.list
and guard_test_t =
  1. | GuardTestCall of line_t * literal_t * guard_test_t Base.list
  2. | GuardTestMapCreation of line_t * guard_test_assoc_t Base.list
  3. | GuardTestMapUpdate of line_t * guard_test_t * guard_test_assoc_t Base.list
  4. | GuardTestBinOp of line_t * Base.string * guard_test_t * guard_test_t
  5. | GuardTestVar of line_t * Base.string
  6. | GuardTestLit of literal_t
and guard_test_assoc_t =
  1. | GuardTestAssoc of line_t * guard_test_t * guard_test_t
  2. | GuardTestAssocExact of line_t * guard_test_t * guard_test_t
and type_t =
  1. | TyAnn of line_t * type_t * type_t
  2. | TyPredef of line_t * Base.string * type_t Base.list
  3. | TyProduct of line_t * type_t Base.list
  4. | TyVar of line_t * Base.string
  5. | TyContFun of line_t * type_t * type_func_cont_t
  6. | TyFun of line_t * type_t * type_t
and type_func_cont_t =
  1. | TyCont of type_func_cont_t Base.list
  2. | TyContRel of line_t * type_func_cont_t * type_t * type_t
  3. | TyContIsSubType of line_t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val sexp_of_form_t : form_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_literal_t : literal_t -> Ppx_sexp_conv_lib.Sexp.t
val sexp_of_pattern_t : pattern_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_pattern_assoc_t : pattern_assoc_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_expr_t : expr_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_expr_assoc_t : expr_assoc_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_clause_t : clause_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_guard_sequence_t : guard_sequence_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_guard_t : guard_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_guard_test_t : guard_test_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_guard_test_assoc_t : guard_test_assoc_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_type_t : type_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
val sexp_of_type_func_cont_t : type_func_cont_t -> Base__.Ppx_sexp_conv_lib.Sexp.t
type err_t = Sf.t Err.t
val sexp_of_err_t : err_t -> Ppx_sexp_conv_lib.Sexp.t
val track : loc:Base.Source_code_position.t -> ('a, 'b Err.t) Base.Result.t -> ('a, 'b Err.t) Base.Result.t
val of_sf : Sf.t -> (t, err_t) Base.Result.t
val form_of_sf : Sf.t -> (form_t, err_t) Base.Result.t
val name_and_arity_of_sf : Sf.t -> (Base.string * Base.int, err_t) Base.Result.t
val record_field_of_sf : Sf.t -> (line_t * Base.string * expr_t Base.option * type_t Base.option, err_t) Base.Result.t
val tvar_of_sf : Sf.t -> (line_t * Base.string, err_t) Base.Result.t
val lit_of_sf : Sf.t -> (literal_t, err_t) Base.Result.t
val pat_of_sf : Sf.t -> (pattern_t, err_t) Base.Result.t
val pat_assoc_of_sf : Sf.t -> (pattern_assoc_t, err_t) Base.Result.t
val expr_of_sf : Sf.t -> (expr_t, err_t) Base.Result.t
val expr_assoc_of_sf : Sf.t -> (expr_assoc_t, err_t) Base.Result.t
val cls_of_sf : ?in_function:bool -> Sf.t -> (clause_t, err_t) Base.Result.t
val guard_sequence_of_sf : Sf.t -> (guard_sequence_t, err_t) Base.Result.t
val guard_of_sf : Sf.t -> (guard_t, err_t) Base.Result.t
val guard_test_of_sf : Sf.t -> (guard_test_t, err_t) Base.Result.t
val guard_test_assoc_of_sf : Sf.t -> (guard_test_assoc_t, err_t) Base.Result.t
val type_of_sf : Sf.t -> (type_t, err_t) Base.Result.t
val fun_type_of_sf : Sf.t -> (type_t, err_t) Base.Result.t
val type_fun_cont_of_sf : Sf.t -> (type_func_cont_t, err_t) Base.Result.t
val of_etf : Obeam__External_term_format.t -> (t, err_t) Base.Result.t
OCaml

Innovation. Community. Security.