package archetype

  1. Overview
  2. Docs
and container =
  1. | Aggregate
  2. | Partition
and type_r =
  1. | Tref of lident
  2. | Tasset of lident
  3. | Tcontainer of type_t * container
  4. | Ttuple of type_t list
  5. | Toption of type_t
  6. | Tlist of type_t
  7. | Tkeyof of type_t
and type_t = type_r Location.loced
and logical_operator =
  1. | And
  2. | Or
  3. | Imply
  4. | Equiv
and comparison_operator =
  1. | Equal
  2. | Nequal
  3. | Gt
  4. | Ge
  5. | Lt
  6. | Le
and arithmetic_operator =
  1. | Plus
  2. | Minus
  3. | Mult
  4. | DivRat
  5. | DivEuc
  6. | Modulo
and unary_operator =
  1. | Uplus
  2. | Uminus
  3. | Not
and assignment_operator =
  1. | ValueAssign
  2. | PlusAssign
  3. | MinusAssign
  4. | MultAssign
  5. | DivAssign
  6. | AndAssign
  7. | OrAssign
and quantifier =
  1. | Forall
  2. | Exists
and operator =
  1. | Logical of logical_operator
  2. | Cmp of comparison_operator
  3. | Arith of arithmetic_operator
  4. | Unary of unary_operator
val lident_to_yojson : lident -> Yojson.Safe.t
val container_to_yojson : container -> Yojson.Safe.t
val type_r_to_yojson : type_r -> Yojson.Safe.t
val type_t_to_yojson : type_t -> Yojson.Safe.t
val logical_operator_to_yojson : logical_operator -> Yojson.Safe.t
val comparison_operator_to_yojson : comparison_operator -> Yojson.Safe.t
val arithmetic_operator_to_yojson : arithmetic_operator -> Yojson.Safe.t
val unary_operator_to_yojson : unary_operator -> Yojson.Safe.t
val assignment_operator_to_yojson : assignment_operator -> Yojson.Safe.t
val quantifier_to_yojson : quantifier -> Yojson.Safe.t
val operator_to_yojson : operator -> Yojson.Safe.t
val show_lident : lident -> Ppx_deriving_runtime.string
val show_container : container -> Ppx_deriving_runtime.string
val show_type_r : type_r -> Ppx_deriving_runtime.string
val show_type_t : type_t -> Ppx_deriving_runtime.string
val show_logical_operator : logical_operator -> Ppx_deriving_runtime.string
val show_comparison_operator : comparison_operator -> Ppx_deriving_runtime.string
val show_arithmetic_operator : arithmetic_operator -> Ppx_deriving_runtime.string
val show_unary_operator : unary_operator -> Ppx_deriving_runtime.string
val show_assignment_operator : assignment_operator -> Ppx_deriving_runtime.string
val show_quantifier : quantifier -> Ppx_deriving_runtime.string
val show_operator : operator -> Ppx_deriving_runtime.string
type pattern_unloc =
  1. | Pwild
  2. | Pref of lident
and var_label =
  1. | VLBefore
  2. | VLIdent of lident
and var_vset =
  1. | VSAdded
  2. | VSUnmoved
  3. | VSRemoved
and expr_unloc =
  1. | Eterm of var_vset option * var_label option * lident
  2. | Eliteral of literal
  3. | Earray of expr list
  4. | Erecord of record_item list
  5. | Etuple of expr list
  6. | Edot of expr * lident
  7. | Esqapp of expr * expr
  8. | Emulticomp of expr * (comparison_operator Location.loced * expr) list
  9. | Eapp of function_ * expr list
  10. | Emethod of expr * lident * expr list
  11. | Etransfer of expr * expr * (lident * expr list) option
  12. | Erequire of expr
  13. | Efailif of expr
  14. | Efail of expr
  15. | Eassign of assignment_operator * expr * expr
  16. | Eif of expr * expr * expr option
  17. | Ebreak
  18. | Efor of lident option * lident * expr * expr
  19. | Eiter of lident option * lident * expr option * expr * expr
  20. | Eseq of expr * expr
  21. | Eletin of lident * type_t option * expr * expr * expr option
  22. | Evar of lident * type_t option * expr
  23. | Ematchwith of expr * branch list
  24. | Equantifier of quantifier * lident * quantifier_kind * expr
  25. | Eassert of lident
  26. | Elabel of lident
  27. | Ereturn of expr
  28. | Eoption of option_
  29. | Eunpack of type_t * expr
  30. | Eany
  31. | Enothing
  32. | Einvalid
and branch = pattern list * expr
and scope =
  1. | Added
  2. | After
  3. | Before
  4. | Fixed
  5. | Removed
  6. | Stable
and quantifier_kind =
  1. | Qcollection of expr
  2. | Qtype of type_t
and option_ =
  1. | OSome of expr
  2. | ONone
and function_ =
  1. | Fident of lident
  2. | Foperator of operator Location.loced
and literal =
  1. | Lnumber of Core.big_int
  2. | Ldecimal of string
  3. | Ltz of Core.big_int
  4. | Lmtz of Core.big_int
  5. | Lutz of Core.big_int
  6. | Laddress of string
  7. | Lstring of string
  8. | Lbool of bool
  9. | Lduration of string
  10. | Ldate of string
  11. | Lbytes of string
  12. | Lpercent of Core.big_int
and record_item = (assignment_operator * lident) option * expr
and lident_typ = lident * type_t * extension list option
and label_expr = (lident * expr) Location.loced
and label_exprs = label_expr list
and extension_unloc =
  1. | Eextension of lident * expr list
    (*

    extension

    *)
and exts = extension list option
and field_unloc =
  1. | Ffield of lident * type_t * expr option * exts
    (*

    field

    *)
and args = lident_typ list
and invariants = (lident * expr list) list
and specification_item_unloc =
  1. | Vpredicate of lident * args * expr
  2. | Vdefinition of lident * type_t * lident * expr
  3. | Vvariable of lident * type_t * expr option
  4. | Veffect of expr
  5. | Vassert of lident * expr * invariants * lident list
  6. | Vpostcondition of lident * expr * invariants * lident list * postkind option
and postkind =
  1. | PKPost
  2. | PKInv
and specification_item = specification_item_unloc Location.loced
and specification_unloc = specification_item list * exts
and security_arg_unloc =
  1. | Sident of lident
  2. | Sdot of lident * lident
  3. | Slist of security_arg list
  4. | Sapp of lident * security_arg list
  5. | Sbut of lident * security_arg
  6. | Sto of lident * security_arg
and security_item_unloc = lident * lident * security_arg list
and security_unloc = security_item list * exts
and s_function = {
  1. name : lident;
  2. args : args;
  3. ret_t : type_t option;
  4. spec : specification option;
  5. body : expr;
}
and entry_properties = {
  1. accept_transfer : bool;
  2. calledby : (expr * exts) option;
  3. require : (label_exprs * exts) option;
  4. failif : (label_exprs * exts) option;
  5. spec_fun : specification option;
  6. functions : s_function Location.loced list;
}
and transition = (lident * (expr * exts) option * (expr * exts) option) list
and variable_kind =
  1. | VKvariable
  2. | VKconstant
and enum_kind =
  1. | EKenum of lident
  2. | EKstate
and declaration_unloc =
  1. | Darchetype of lident * exts
  2. | Dvariable of variable_decl
  3. | Denum of enum_kind * enum_decl
  4. | Dasset of asset_decl
  5. | Dentry of entry_decl
  6. | Dtransition of transition_decl
  7. | Dcontract of contract_decl
  8. | Dextension of extension_decl
  9. | Dnamespace of namespace_decl
  10. | Dfunction of s_function
  11. | Dspecification of specification
  12. | Dsecurity of security
  13. | Dinvalid
and variable_decl = lident * type_t * expr option * value_option list option * variable_kind * label_exprs * exts
and enum_decl = (lident * enum_option list) list * exts
and asset_decl = lident * field list * field list * asset_option list * asset_post_option list * asset_operation option * exts
and entry_decl = lident * args * entry_properties * (expr * exts) option * exts
and transition_decl = lident * args * (lident * type_t) option * expr * entry_properties * transition * exts
and contract_decl = lident * signature list * exts
and extension_decl = lident * expr list
and namespace_decl = lident * declaration list
and value_option =
  1. | VOfrom of lident
  2. | VOto of lident
and asset_option =
  1. | AOidentifiedby of lident
  2. | AOsortedby of lident
and asset_post_option =
  1. | APOstates of lident
  2. | APOconstraints of label_exprs
  3. | APOinit of expr list
and enum_option =
  1. | EOinitial
  2. | EOspecification of label_exprs
and signature =
  1. | Ssignature of lident * (lident * type_t) list
and asset_operation_enum =
  1. | AOadd
  2. | AOremove
  3. | AOupdate
and asset_operation =
  1. | AssetOperation of asset_operation_enum list * expr option
and archetype_unloc =
  1. | Marchetype of declaration list
  2. | Mextension of lident * declaration list * declaration list
include sig ... end
class virtual +'a map : object ... end
include sig ... end
class virtual +'a iter : object ... end
include sig ... end
class virtual +'a reduce : object ... end
include sig ... end
class virtual +'a reduce2 : object ... end
val pattern_unloc_to_yojson : pattern_unloc -> Yojson.Safe.t
val pattern_to_yojson : pattern -> Yojson.Safe.t
val var_label_to_yojson : var_label -> Yojson.Safe.t
val var_vset_to_yojson : var_vset -> Yojson.Safe.t
val expr_unloc_to_yojson : expr_unloc -> Yojson.Safe.t
val branch_to_yojson : branch -> Yojson.Safe.t
val scope_to_yojson : scope -> Yojson.Safe.t
val quantifier_kind_to_yojson : quantifier_kind -> Yojson.Safe.t
val option__to_yojson : option_ -> Yojson.Safe.t
val function__to_yojson : function_ -> Yojson.Safe.t
val literal_to_yojson : literal -> Yojson.Safe.t
val record_item_to_yojson : record_item -> Yojson.Safe.t
val expr_to_yojson : expr -> Yojson.Safe.t
val lident_typ_to_yojson : lident_typ -> Yojson.Safe.t
val label_expr_to_yojson : label_expr -> Yojson.Safe.t
val label_exprs_to_yojson : label_exprs -> Yojson.Safe.t
val extension_unloc_to_yojson : extension_unloc -> Yojson.Safe.t
val extension_to_yojson : extension -> Yojson.Safe.t
val exts_to_yojson : exts -> Yojson.Safe.t
val field_unloc_to_yojson : field_unloc -> Yojson.Safe.t
val field_to_yojson : field -> Yojson.Safe.t
val args_to_yojson : args -> Yojson.Safe.t
val invariants_to_yojson : invariants -> Yojson.Safe.t
val specification_item_unloc_to_yojson : specification_item_unloc -> Yojson.Safe.t
val postkind_to_yojson : postkind -> Yojson.Safe.t
val specification_item_to_yojson : specification_item -> Yojson.Safe.t
val specification_unloc_to_yojson : specification_unloc -> Yojson.Safe.t
val specification_to_yojson : specification -> Yojson.Safe.t
val security_arg_unloc_to_yojson : security_arg_unloc -> Yojson.Safe.t
val security_arg_to_yojson : security_arg -> Yojson.Safe.t
val security_item_unloc_to_yojson : security_item_unloc -> Yojson.Safe.t
val security_item_to_yojson : security_item -> Yojson.Safe.t
val security_unloc_to_yojson : security_unloc -> Yojson.Safe.t
val security_to_yojson : security -> Yojson.Safe.t
val s_function_to_yojson : s_function -> Yojson.Safe.t
val entry_properties_to_yojson : entry_properties -> Yojson.Safe.t
val transition_to_yojson : transition -> Yojson.Safe.t
val variable_kind_to_yojson : variable_kind -> Yojson.Safe.t
val enum_kind_to_yojson : enum_kind -> Yojson.Safe.t
val declaration_unloc_to_yojson : declaration_unloc -> Yojson.Safe.t
val variable_decl_to_yojson : variable_decl -> Yojson.Safe.t
val enum_decl_to_yojson : enum_decl -> Yojson.Safe.t
val asset_decl_to_yojson : asset_decl -> Yojson.Safe.t
val entry_decl_to_yojson : entry_decl -> Yojson.Safe.t
val transition_decl_to_yojson : transition_decl -> Yojson.Safe.t
val contract_decl_to_yojson : contract_decl -> Yojson.Safe.t
val extension_decl_to_yojson : extension_decl -> Yojson.Safe.t
val namespace_decl_to_yojson : namespace_decl -> Yojson.Safe.t
val value_option_to_yojson : value_option -> Yojson.Safe.t
val asset_option_to_yojson : asset_option -> Yojson.Safe.t
val asset_post_option_to_yojson : asset_post_option -> Yojson.Safe.t
val enum_option_to_yojson : enum_option -> Yojson.Safe.t
val signature_to_yojson : signature -> Yojson.Safe.t
val declaration_to_yojson : declaration -> Yojson.Safe.t
val asset_operation_enum_to_yojson : asset_operation_enum -> Yojson.Safe.t
val asset_operation_to_yojson : asset_operation -> Yojson.Safe.t
val archetype_unloc_to_yojson : archetype_unloc -> Yojson.Safe.t
val archetype_to_yojson : archetype -> Yojson.Safe.t
val show_pattern_unloc : pattern_unloc -> Ppx_deriving_runtime.string
val show_pattern : pattern -> Ppx_deriving_runtime.string
val show_var_label : var_label -> Ppx_deriving_runtime.string
val show_var_vset : var_vset -> Ppx_deriving_runtime.string
val show_expr_unloc : expr_unloc -> Ppx_deriving_runtime.string
val show_branch : branch -> Ppx_deriving_runtime.string
val show_quantifier_kind : quantifier_kind -> Ppx_deriving_runtime.string
val show_option_ : option_ -> Ppx_deriving_runtime.string
val show_function_ : function_ -> Ppx_deriving_runtime.string
val show_literal : literal -> Ppx_deriving_runtime.string
val show_record_item : record_item -> Ppx_deriving_runtime.string
val show_lident_typ : lident_typ -> Ppx_deriving_runtime.string
val show_label_expr : label_expr -> Ppx_deriving_runtime.string
val show_label_exprs : label_exprs -> Ppx_deriving_runtime.string
val show_extension_unloc : extension_unloc -> Ppx_deriving_runtime.string
val show_extension : extension -> Ppx_deriving_runtime.string
val show_field_unloc : field_unloc -> Ppx_deriving_runtime.string
val show_invariants : invariants -> Ppx_deriving_runtime.string
val show_specification_item_unloc : specification_item_unloc -> Ppx_deriving_runtime.string
val show_postkind : postkind -> Ppx_deriving_runtime.string
val show_specification_item : specification_item -> Ppx_deriving_runtime.string
val show_specification_unloc : specification_unloc -> Ppx_deriving_runtime.string
val show_specification : specification -> Ppx_deriving_runtime.string
val show_security_arg_unloc : security_arg_unloc -> Ppx_deriving_runtime.string
val show_security_arg : security_arg -> Ppx_deriving_runtime.string
val show_security_item_unloc : security_item_unloc -> Ppx_deriving_runtime.string
val show_security_item : security_item -> Ppx_deriving_runtime.string
val show_security_unloc : security_unloc -> Ppx_deriving_runtime.string
val show_security : security -> Ppx_deriving_runtime.string
val show_s_function : s_function -> Ppx_deriving_runtime.string
val show_entry_properties : entry_properties -> Ppx_deriving_runtime.string
val show_transition : transition -> Ppx_deriving_runtime.string
val show_variable_kind : variable_kind -> Ppx_deriving_runtime.string
val show_enum_kind : enum_kind -> Ppx_deriving_runtime.string
val show_declaration_unloc : declaration_unloc -> Ppx_deriving_runtime.string
val show_variable_decl : variable_decl -> Ppx_deriving_runtime.string
val show_enum_decl : enum_decl -> Ppx_deriving_runtime.string
val show_asset_decl : asset_decl -> Ppx_deriving_runtime.string
val show_entry_decl : entry_decl -> Ppx_deriving_runtime.string
val show_transition_decl : transition_decl -> Ppx_deriving_runtime.string
val show_contract_decl : contract_decl -> Ppx_deriving_runtime.string
val show_extension_decl : extension_decl -> Ppx_deriving_runtime.string
val show_namespace_decl : namespace_decl -> Ppx_deriving_runtime.string
val show_value_option : value_option -> Ppx_deriving_runtime.string
val show_asset_option : asset_option -> Ppx_deriving_runtime.string
val show_asset_post_option : asset_post_option -> Ppx_deriving_runtime.string
val show_enum_option : enum_option -> Ppx_deriving_runtime.string
val show_signature : signature -> Ppx_deriving_runtime.string
val show_declaration : declaration -> Ppx_deriving_runtime.string
val show_asset_operation_enum : asset_operation_enum -> Ppx_deriving_runtime.string
val show_asset_operation : asset_operation -> Ppx_deriving_runtime.string
val show_archetype_unloc : archetype_unloc -> Ppx_deriving_runtime.string
val show_archetype : archetype -> Ppx_deriving_runtime.string
val mk_archetype : ?decls:declaration list -> ?loc:Location.t -> unit -> archetype_unloc Location.loced
OCaml

Innovation. Community. Security.