package archetype

  1. Overview
  2. Docs
val pp_ident : Stdlib.Format.formatter -> string -> unit
val pp_lident : Stdlib.Format.formatter -> string Location.loced -> unit
type container =
  1. | Collection
  2. | Aggregate
  3. | Partition
  4. | View
val pp_container : Ppx_deriving_runtime.Format.formatter -> container -> Ppx_deriving_runtime.unit
val show_container : container -> Ppx_deriving_runtime.string
type currency =
  1. | Tz
  2. | Mtz
  3. | Utz
val pp_currency : Ppx_deriving_runtime.Format.formatter -> currency -> Ppx_deriving_runtime.unit
val show_currency : currency -> Ppx_deriving_runtime.string
type vtyp =
  1. | VTunit
  2. | VTbool
  3. | VTnat
  4. | VTint
  5. | VTrational
  6. | VTdate
  7. | VTduration
  8. | VTstring
  9. | VTaddress
  10. | VTrole
  11. | VTcurrency
  12. | VTkey
  13. | VTkeyhash
  14. | VTsignature
  15. | VTbytes
  16. | VTchainid
val pp_vtyp : Ppx_deriving_runtime.Format.formatter -> vtyp -> Ppx_deriving_runtime.unit
type trtyp =
  1. | TRentry
  2. | TRaction
  3. | TRasset
  4. | TRfield
val pp_trtyp : Ppx_deriving_runtime.Format.formatter -> trtyp -> Ppx_deriving_runtime.unit
type ptyp =
  1. | Tnamed of int
  2. | Tasset of lident
  3. | Trecord of lident
  4. | Tenum of lident
  5. | Tbuiltin of vtyp
  6. | Tcontainer of ptyp * container
  7. | Tset of ptyp
  8. | Tlist of ptyp
  9. | Tmap of ptyp * ptyp
  10. | Ttuple of ptyp list
  11. | Toption of ptyp
  12. | Toperation
  13. | Tcontract of ptyp
  14. | Ttrace of trtyp
val pp_ptyp : Ppx_deriving_runtime.Format.formatter -> ptyp -> Ppx_deriving_runtime.unit
type type_ = ptyp
val pp_type_ : Ppx_deriving_runtime.Format.formatter -> type_ -> Ppx_deriving_runtime.unit
type logical_operator =
  1. | And
  2. | Or
  3. | Xor
  4. | Imply
  5. | Equiv
val pp_logical_operator : Ppx_deriving_runtime.Format.formatter -> logical_operator -> Ppx_deriving_runtime.unit
val show_logical_operator : logical_operator -> Ppx_deriving_runtime.string
type comparison_operator =
  1. | Equal
  2. | Nequal
  3. | Gt
  4. | Ge
  5. | Lt
  6. | Le
val pp_comparison_operator : Ppx_deriving_runtime.Format.formatter -> comparison_operator -> Ppx_deriving_runtime.unit
val show_comparison_operator : comparison_operator -> Ppx_deriving_runtime.string
type assignment_operator =
  1. | ValueAssign
  2. | PlusAssign
  3. | MinusAssign
  4. | MultAssign
  5. | DivAssign
  6. | AndAssign
  7. | OrAssign
val pp_assignment_operator : Ppx_deriving_runtime.Format.formatter -> assignment_operator -> Ppx_deriving_runtime.unit
val show_assignment_operator : assignment_operator -> Ppx_deriving_runtime.string
type arithmetic_operator =
  1. | Plus
  2. | Minus
  3. | Mult
  4. | DivRat
  5. | DivEuc
  6. | Modulo
val pp_arithmetic_operator : Ppx_deriving_runtime.Format.formatter -> arithmetic_operator -> Ppx_deriving_runtime.unit
val show_arithmetic_operator : arithmetic_operator -> Ppx_deriving_runtime.string
type unary_arithmetic_operator =
  1. | Uminus
val pp_unary_arithmetic_operator : Ppx_deriving_runtime.Format.formatter -> unary_arithmetic_operator -> Ppx_deriving_runtime.unit
val show_unary_arithmetic_operator : unary_arithmetic_operator -> Ppx_deriving_runtime.string
type operator = [
  1. | `Logical of logical_operator
  2. | `Cmp of comparison_operator
  3. | `Arith of arithmetic_operator
  4. | `Unary of unary_arithmetic_operator
  5. | `Assign of assignment_operator
]
val pp_operator : Ppx_deriving_runtime.Format.formatter -> operator -> Ppx_deriving_runtime.unit
val show_operator : operator -> Ppx_deriving_runtime.string
type const =
  1. | Cstate
  2. | Cnow
  3. | Ctransferred
  4. | Ccaller
  5. | Cfail
  6. | Cbalance
  7. | Csource
  8. | Cselfaddress
  9. | Cconditions
  10. | Centries
  11. | Cnone
  12. | Cany
  13. | Canyentry
  14. | Cresult
  15. | Cchainid
  16. | Coperations
  17. | Cmetadata
  18. | Cadd
  19. | Caddupdate
  20. | Cceil
  21. | Cclear
  22. | Cconcat
  23. | Ccontains
  24. | Ccount
  25. | Cfloor
  26. | Cget
  27. | Cgetopt
  28. | Cisnone
  29. | Cissome
  30. | Clength
  31. | Cmax
  32. | Cmin
  33. | Cnth
  34. | Cpack
  35. | Cremove
  36. | Cremoveall
  37. | Cremoveif
  38. | Cselect
  39. | Cslice
  40. | Csort
  41. | Csum
  42. | Cunpack
  43. | Cupdate
  44. | Cmkoperation
  45. | Ctostring
  46. | Csadd
  47. | Csremove
  48. | Cscontains
  49. | Cslength
  50. | Chead
  51. | Ctail
  52. | Cabs
  53. | Cprepend
  54. | Cheadtail
  55. | Creverse
  56. | Cmput
  57. | Cmremove
  58. | Cmget
  59. | Cmgetopt
  60. | Cmcontains
  61. | Cmlength
  62. | Cblake2b
  63. | Csha256
  64. | Csha512
  65. | Cchecksignature
  66. | Chashkey
  67. | Cbefore
  68. | Citerated
  69. | Ctoiterate
  70. | Cempty
  71. | Cisempty
  72. | Csingleton
  73. | Csubsetof
  74. | Cunion
  75. | Cinter
  76. | Cdiff
val pp_const : Ppx_deriving_runtime.Format.formatter -> const -> Ppx_deriving_runtime.unit
type 'node struct_poly = {
  1. node : 'node;
  2. type_ : ptyp option;
  3. label : Ident.ident option;
  4. loc : Location.t;
}
val pp_struct_poly : 'node. (Ppx_deriving_runtime.Format.formatter -> 'node -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'node struct_poly -> Ppx_deriving_runtime.unit
val show_struct_poly : 'node. (Ppx_deriving_runtime.Format.formatter -> 'node -> Ppx_deriving_runtime.unit) -> 'node struct_poly -> Ppx_deriving_runtime.string
type 'id qualid_gen = 'id qualid_node struct_poly
and 'id qualid_node =
  1. | Qident of 'id
  2. | Qdot of 'id qualid_gen * 'id
val pp_qualid_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id qualid_gen -> Ppx_deriving_runtime.unit
val show_qualid_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id qualid_gen -> Ppx_deriving_runtime.string
val pp_qualid_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id qualid_node -> Ppx_deriving_runtime.unit
val show_qualid_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id qualid_node -> Ppx_deriving_runtime.string
type qualid = lident qualid_gen
val pp_qualid : Ppx_deriving_runtime.Format.formatter -> qualid -> Ppx_deriving_runtime.unit
val show_qualid : qualid -> Ppx_deriving_runtime.string
type 'id sexpr_gen = 'id sexpr_node struct_poly
and 'id sexpr_node =
  1. | Sref of 'id
  2. | Sor of 'id sexpr_gen * 'id sexpr_gen
  3. | Sany
val pp_sexpr_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id sexpr_gen -> Ppx_deriving_runtime.unit
val show_sexpr_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id sexpr_gen -> Ppx_deriving_runtime.string
val pp_sexpr_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id sexpr_node -> Ppx_deriving_runtime.unit
val show_sexpr_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id sexpr_node -> Ppx_deriving_runtime.string
type sexpr = lident sexpr_gen
val pp_sexpr : Ppx_deriving_runtime.Format.formatter -> sexpr -> Ppx_deriving_runtime.unit
type bval_gen = bval_node struct_poly
and bval_node =
  1. | BVint of Core.big_int
  2. | BVnat of Core.big_int
  3. | BVbool of bool
  4. | BVenum of string
  5. | BVrational of Core.big_int * Core.big_int
  6. | BVdate of Core.date
  7. | BVstring of string
  8. | BVcurrency of currency * Core.big_int
  9. | BVaddress of string
  10. | BVduration of Core.duration
  11. | BVbytes of string
  12. | BVunit
val pp_bval_gen : Ppx_deriving_runtime.Format.formatter -> bval_gen -> Ppx_deriving_runtime.unit
val show_bval_gen : bval_gen -> Ppx_deriving_runtime.string
val pp_bval_node : Ppx_deriving_runtime.Format.formatter -> bval_node -> Ppx_deriving_runtime.unit
val show_bval_node : bval_node -> Ppx_deriving_runtime.string
type bval = bval_gen
val pp_bval : Ppx_deriving_runtime.Format.formatter -> bval -> Ppx_deriving_runtime.unit
type quantifier =
  1. | Forall
  2. | Exists
val pp_quantifier : Ppx_deriving_runtime.Format.formatter -> quantifier -> Ppx_deriving_runtime.unit
val show_quantifier : quantifier -> Ppx_deriving_runtime.string
type 'id pattern_gen = 'id pattern_node struct_poly
and 'id pattern_node =
  1. | Mwild
  2. | Mconst of 'id
val pp_pattern_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id pattern_gen -> Ppx_deriving_runtime.unit
val show_pattern_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id pattern_gen -> Ppx_deriving_runtime.string
val pp_pattern_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id pattern_node -> Ppx_deriving_runtime.unit
val show_pattern_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id pattern_node -> Ppx_deriving_runtime.string
type pattern = lident pattern_gen
val pp_pattern : Ppx_deriving_runtime.Format.formatter -> pattern -> Ppx_deriving_runtime.unit
val show_pattern : pattern -> Ppx_deriving_runtime.string
type 'id call_kind =
  1. | Cid of 'id
  2. | Cconst of const
val pp_call_kind : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id call_kind -> Ppx_deriving_runtime.unit
val show_call_kind : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id call_kind -> Ppx_deriving_runtime.string
type var_temporality =
  1. | VTbefore
  2. | VTat of Ident.ident
  3. | VTnone
val pp_var_temporality : Ppx_deriving_runtime.Format.formatter -> var_temporality -> Ppx_deriving_runtime.unit
val show_var_temporality : var_temporality -> Ppx_deriving_runtime.string
type vset =
  1. | Vadded
  2. | Vremoved
  3. | Vunmoved
  4. | Vnone
val pp_vset : Ppx_deriving_runtime.Format.formatter -> vset -> Ppx_deriving_runtime.unit
type 'id term_node =
  1. | Pquantifer of quantifier * 'id * 'id term_gen option * type_ * 'id term_gen
  2. | Pif of 'id term_gen * 'id term_gen * 'id term_gen
  3. | Pmatchwith of 'id term_gen * ('id pattern_gen * 'id term_gen) list
  4. | Pcall of 'id term_gen option * 'id call_kind * 'id term_arg list
  5. | Plogical of logical_operator * 'id term_gen * 'id term_gen
  6. | Pnot of 'id term_gen
  7. | Pmulticomp of 'id term_gen * (comparison_operator * 'id term_gen) list
  8. | Pcomp of comparison_operator * 'id term_gen * 'id term_gen
  9. | Parith of arithmetic_operator * 'id term_gen * 'id term_gen
  10. | Puarith of unary_arithmetic_operator * 'id term_gen
  11. | Precord of 'id term_gen list
  12. | Precupdate of 'id term_gen * ('id * 'id term_gen) list
  13. | Pletin of 'id * 'id term_gen * ptyp option * 'id term_gen * 'id term_gen option
  14. | Pdeclvar of 'id * ptyp option * 'id term_gen
  15. | Pvar of var_temporality * vset * 'id
  16. | Parray of 'id term_gen list
  17. | Plit of bval
  18. | Pdot of 'id term_gen * 'id
  19. | Pconst of const
  20. | Ptuple of 'id term_gen list
  21. | Ptupleaccess of 'id term_gen * Core.big_int
  22. | Pnone
  23. | Psome of 'id term_gen
  24. | Pcast of ptyp * ptyp * 'id term_gen
  25. | Pself of 'id
  26. | Pentrypoint of ptyp * 'id * 'id term_gen
and 'id term_arg =
  1. | AExpr of 'id term_gen
  2. | AFun of 'id * ptyp * ('id * ptyp * 'id term_gen) list * 'id term_gen
  3. | AEffect of ('id * operator * 'id term_gen) list
  4. | ASorting of bool * 'id
and 'id term_poly = 'id term_node struct_poly
and 'id term_gen = 'id term_poly
val pp_term_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id term_node -> Ppx_deriving_runtime.unit
val show_term_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id term_node -> Ppx_deriving_runtime.string
val pp_term_arg : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id term_arg -> Ppx_deriving_runtime.unit
val show_term_arg : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id term_arg -> Ppx_deriving_runtime.string
val pp_term_poly : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id term_poly -> Ppx_deriving_runtime.unit
val show_term_poly : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id term_poly -> Ppx_deriving_runtime.string
val pp_term_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id term_gen -> Ppx_deriving_runtime.unit
val show_term_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id term_gen -> Ppx_deriving_runtime.string
type pterm = lident term_gen
val pp_pterm : Ppx_deriving_runtime.Format.formatter -> pterm -> Ppx_deriving_runtime.unit
type pterm_arg = lident term_arg
val pp_pterm_arg : Ppx_deriving_runtime.Format.formatter -> pterm_arg -> Ppx_deriving_runtime.unit
val show_pterm_arg : pterm_arg -> Ppx_deriving_runtime.string
type 'id instruction_poly = {
  1. node : 'id instruction_node;
  2. label : string option;
  3. loc : Location.t;
}
and 'id transfer_t =
  1. | TTsimple of 'id term_gen
  2. | TTcontract of 'id term_gen * 'id * type_ * 'id term_gen
  3. | TTentry of 'id term_gen * 'id term_gen
  4. | TTself of 'id * ('id * 'id term_gen) list
and 'id instruction_node =
  1. | Iif of 'id term_gen * 'id instruction_gen * 'id instruction_gen
  2. | Ifor of 'id for_ident * 'id term_gen * 'id instruction_gen
  3. | Iiter of 'id * 'id term_gen * 'id term_gen * 'id instruction_gen
  4. | Iwhile of 'id term_gen * 'id instruction_gen
  5. | Iletin of 'id * 'id term_gen * 'id instruction_gen
  6. | Ideclvar of 'id * 'id term_gen
  7. | Iseq of 'id instruction_gen list
  8. | Imatchwith of 'id term_gen * ('id pattern_gen * 'id instruction_gen) list
  9. | Iassign of assignment_operator * ptyp * 'id lvalue_gen * 'id term_gen
  10. | Irequire of bool * 'id term_gen * 'id term_gen
  11. | Itransfer of 'id term_gen * 'id transfer_t
  12. | Icall of 'id term_gen option * 'id call_kind * 'id term_arg list
  13. | Ireturn of 'id term_gen
  14. | Ilabel of 'id
  15. | Ifail of 'id term_gen
and 'id for_ident =
  1. | FIsimple of 'id
  2. | FIdouble of 'id * 'id
and 'id instruction_gen = 'id instruction_poly
and instruction = lident instruction_poly
and 'id lvalue_gen = [
  1. | `Var of 'id
  2. | `Field of 'id * 'id term_gen * 'id
]
and lvalue = lident lvalue_gen
val pp_instruction_poly : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id instruction_poly -> Ppx_deriving_runtime.unit
val show_instruction_poly : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id instruction_poly -> Ppx_deriving_runtime.string
val pp_transfer_t : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id transfer_t -> Ppx_deriving_runtime.unit
val show_transfer_t : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id transfer_t -> Ppx_deriving_runtime.string
val pp_instruction_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id instruction_node -> Ppx_deriving_runtime.unit
val show_instruction_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id instruction_node -> Ppx_deriving_runtime.string
val pp_for_ident : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id for_ident -> Ppx_deriving_runtime.unit
val show_for_ident : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id for_ident -> Ppx_deriving_runtime.string
val pp_instruction_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id instruction_gen -> Ppx_deriving_runtime.unit
val show_instruction_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id instruction_gen -> Ppx_deriving_runtime.string
val pp_instruction : Ppx_deriving_runtime.Format.formatter -> instruction -> Ppx_deriving_runtime.unit
val show_instruction : instruction -> Ppx_deriving_runtime.string
val pp_lvalue_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id lvalue_gen -> Ppx_deriving_runtime.unit
val show_lvalue_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id lvalue_gen -> Ppx_deriving_runtime.string
val pp_lvalue : Ppx_deriving_runtime.Format.formatter -> lvalue -> Ppx_deriving_runtime.unit
val show_lvalue : lvalue -> Ppx_deriving_runtime.string
type 'id decl_gen = {
  1. name : 'id;
  2. typ : ptyp option;
  3. default : 'id term_gen option;
  4. shadow : bool;
  5. loc : Location.t;
}
val pp_decl_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id decl_gen -> Ppx_deriving_runtime.unit
val show_decl_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id decl_gen -> Ppx_deriving_runtime.string
type 'id label_term = {
  1. label : 'id option;
  2. term : 'id term_gen;
  3. error : 'id term_gen option;
  4. loc : Location.t;
}
val pp_label_term : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id label_term -> Ppx_deriving_runtime.unit
val show_label_term : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id label_term -> Ppx_deriving_runtime.string
type 'id variable = {
  1. decl : 'id decl_gen;
  2. constant : bool;
  3. invs : 'id label_term list;
  4. loc : Location.t;
}
val pp_variable : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id variable -> Ppx_deriving_runtime.unit
val show_variable : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id variable -> Ppx_deriving_runtime.string
type 'id predicate = {
  1. name : 'id;
  2. args : ('id * type_) list;
  3. body : 'id term_gen;
  4. loc : Location.t;
}
val pp_predicate : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id predicate -> Ppx_deriving_runtime.unit
val show_predicate : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id predicate -> Ppx_deriving_runtime.string
type 'id definition = {
  1. name : 'id;
  2. typ : type_;
  3. var : 'id;
  4. body : 'id term_gen;
  5. loc : Location.t;
}
val pp_definition : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id definition -> Ppx_deriving_runtime.unit
val show_definition : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id definition -> Ppx_deriving_runtime.string
type 'id fail = {
  1. label : 'id;
  2. arg : 'id;
  3. atype : type_;
  4. formula : 'id term_gen;
  5. loc : Location.t;
}
val pp_fail : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id fail -> Ppx_deriving_runtime.unit
val show_fail : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id fail -> Ppx_deriving_runtime.string
type 'id invariant = {
  1. label : 'id;
  2. formulas : 'id term_gen list;
}
val pp_invariant : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id invariant -> Ppx_deriving_runtime.unit
val show_invariant : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id invariant -> Ppx_deriving_runtime.string
type 'id postcondition = {
  1. name : 'id;
  2. formula : 'id term_gen;
  3. invariants : 'id invariant list;
  4. uses : 'id list;
}
val pp_postcondition : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id postcondition -> Ppx_deriving_runtime.unit
val show_postcondition : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id postcondition -> Ppx_deriving_runtime.string
type 'id assert_ = {
  1. name : 'id;
  2. label : 'id;
  3. formula : 'id term_gen;
  4. invariants : 'id invariant list;
  5. uses : 'id list;
}
val pp_assert_ : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id assert_ -> Ppx_deriving_runtime.unit
val show_assert_ : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id assert_ -> Ppx_deriving_runtime.string
type 'id specification = {
  1. predicates : 'id predicate list;
  2. definitions : 'id definition list;
  3. fails : 'id fail list;
  4. lemmas : 'id label_term list;
  5. theorems : 'id label_term list;
  6. variables : 'id variable list;
  7. invariants : ('id * 'id label_term list) list;
  8. effect : 'id instruction_gen option;
  9. specs : 'id postcondition list;
  10. asserts : 'id assert_ list;
  11. loc : Location.t;
}
val pp_specification : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id specification -> Ppx_deriving_runtime.unit
val show_specification : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id specification -> Ppx_deriving_runtime.string
type entry_description =
  1. | ADAny
  2. | ADOp of string * lident
val pp_entry_description : Ppx_deriving_runtime.Format.formatter -> entry_description -> Ppx_deriving_runtime.unit
val show_entry_description : entry_description -> Ppx_deriving_runtime.string
type security_role = lident
val pp_security_role : Ppx_deriving_runtime.Format.formatter -> security_role -> Ppx_deriving_runtime.unit
val show_security_role : security_role -> Ppx_deriving_runtime.string
type security_entry =
  1. | Sany
  2. | Sentry of lident list
val pp_security_entry : Ppx_deriving_runtime.Format.formatter -> security_entry -> Ppx_deriving_runtime.unit
val show_security_entry : security_entry -> Ppx_deriving_runtime.string
type security_node =
  1. | SonlyByRole of entry_description * security_role list
  2. | SonlyInEntry of entry_description * security_entry
  3. | SonlyByRoleInEntry of entry_description * security_role list * security_entry
  4. | SnotByRole of entry_description * security_role list
  5. | SnotInEntry of entry_description * security_entry
  6. | SnotByRoleInEntry of entry_description * security_role list * security_entry
  7. | StransferredBy of entry_description
  8. | StransferredTo of entry_description
  9. | SnoStorageFail of security_entry
val pp_security_node : Ppx_deriving_runtime.Format.formatter -> security_node -> Ppx_deriving_runtime.unit
val show_security_node : security_node -> Ppx_deriving_runtime.string
type security_predicate = {
  1. s_node : security_node;
  2. loc : Location.t;
}
val pp_security_predicate : Ppx_deriving_runtime.Format.formatter -> security_predicate -> Ppx_deriving_runtime.unit
val show_security_predicate : security_predicate -> Ppx_deriving_runtime.string
type security_item = {
  1. label : lident;
  2. predicate : security_predicate;
  3. loc : Location.t;
}
val pp_security_item : Ppx_deriving_runtime.Format.formatter -> security_item -> Ppx_deriving_runtime.unit
val show_security_item : security_item -> Ppx_deriving_runtime.string
type security = {
  1. items : security_item list;
  2. loc : Location.t;
}
val pp_security : Ppx_deriving_runtime.Format.formatter -> security -> Ppx_deriving_runtime.unit
val show_security : security -> Ppx_deriving_runtime.string
type fun_kind =
  1. | FKfunction
  2. | FKgetter
val pp_fun_kind : Ppx_deriving_runtime.Format.formatter -> fun_kind -> Ppx_deriving_runtime.unit
val show_fun_kind : fun_kind -> Ppx_deriving_runtime.string
type 'id function_struct = {
  1. name : 'id;
  2. kind : fun_kind;
  3. args : 'id decl_gen list;
  4. body : 'id instruction_gen;
  5. specification : 'id specification option;
  6. return : ptyp;
  7. loc : Location.t;
}
val pp_function_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id function_struct -> Ppx_deriving_runtime.unit
val show_function_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id function_struct -> Ppx_deriving_runtime.string
type function_ = lident function_struct
val pp_function_ : Ppx_deriving_runtime.Format.formatter -> function_ -> Ppx_deriving_runtime.unit
val show_function_ : function_ -> Ppx_deriving_runtime.string
type 'id rexpr_gen = 'id rexpr_node struct_poly
and 'id rexpr_node =
  1. | Rany
  2. | Rexpr of 'id term_gen
  3. | Ror of 'id rexpr_gen * 'id rexpr_gen
val pp_rexpr_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id rexpr_gen -> Ppx_deriving_runtime.unit
val show_rexpr_gen : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id rexpr_gen -> Ppx_deriving_runtime.string
val pp_rexpr_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id rexpr_node -> Ppx_deriving_runtime.unit
val show_rexpr_node : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id rexpr_node -> Ppx_deriving_runtime.string
type rexpr = lident rexpr_gen
val pp_rexpr : Ppx_deriving_runtime.Format.formatter -> rexpr -> Ppx_deriving_runtime.unit
type 'id transition = {
  1. from : 'id sexpr_gen;
  2. on : ('id * ptyp * 'id * ptyp) option;
  3. trs : ('id * 'id term_gen option * 'id instruction_gen option) list;
}
val pp_transition : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id transition -> Ppx_deriving_runtime.unit
val show_transition : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id transition -> Ppx_deriving_runtime.string
type 'id transaction_struct = {
  1. name : 'id;
  2. args : 'id decl_gen list;
  3. calledby : 'id rexpr_gen option;
  4. accept_transfer : bool;
  5. require : 'id label_term list option;
  6. failif : 'id label_term list option;
  7. transition : 'id transition option;
  8. specification : 'id specification option;
  9. functions : 'id function_struct list;
  10. effect : 'id instruction_gen option;
  11. loc : Location.t;
}
val pp_transaction_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id transaction_struct -> Ppx_deriving_runtime.unit
val show_transaction_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id transaction_struct -> Ppx_deriving_runtime.string
type transaction = lident transaction_struct
val pp_transaction : Ppx_deriving_runtime.Format.formatter -> transaction -> Ppx_deriving_runtime.unit
val show_transaction : transaction -> Ppx_deriving_runtime.string
type 'id enum_item_struct = {
  1. name : 'id;
  2. initial : bool;
  3. invariants : 'id label_term list;
  4. loc : Location.t;
}
val pp_enum_item_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id enum_item_struct -> Ppx_deriving_runtime.unit
val show_enum_item_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id enum_item_struct -> Ppx_deriving_runtime.string
type 'id enum_kind =
  1. | EKenum of 'id
  2. | EKstate
val pp_enum_kind : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id enum_kind -> Ppx_deriving_runtime.unit
val show_enum_kind : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id enum_kind -> Ppx_deriving_runtime.string
type 'id enum_struct = {
  1. kind : 'id enum_kind;
  2. items : 'id enum_item_struct list;
  3. loc : Location.t;
}
val pp_enum_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id enum_struct -> Ppx_deriving_runtime.unit
val show_enum_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id enum_struct -> Ppx_deriving_runtime.string
type enum = lident enum_struct
val pp_enum : Ppx_deriving_runtime.Format.formatter -> enum -> Ppx_deriving_runtime.unit
type 'id asset_struct = {
  1. name : 'id;
  2. fields : 'id decl_gen list;
  3. keys : 'id list;
  4. sort : 'id list;
  5. big_map : bool;
  6. state : 'id option;
  7. init : 'id term_gen list list;
  8. specs : 'id label_term list;
  9. loc : Location.t;
}
val pp_asset_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id asset_struct -> Ppx_deriving_runtime.unit
val show_asset_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id asset_struct -> Ppx_deriving_runtime.string
type asset = lident asset_struct
type 'id record_struct = {
  1. name : 'id;
  2. fields : 'id decl_gen list;
  3. loc : Location.t;
}
val pp_record_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id record_struct -> Ppx_deriving_runtime.unit
val show_record_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id record_struct -> Ppx_deriving_runtime.string
type record = lident record_struct
type 'id decl_ =
  1. | Dvariable of 'id variable
  2. | Dasset of 'id asset_struct
  3. | Drecord of 'id record_struct
  4. | Denum of 'id enum_struct
val pp_decl_ : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id decl_ -> Ppx_deriving_runtime.unit
val show_decl_ : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id decl_ -> Ppx_deriving_runtime.string
type 'id fun_ =
  1. | Ffunction of 'id function_struct
  2. | Ftransaction of 'id transaction_struct
val pp_fun_ : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id fun_ -> Ppx_deriving_runtime.unit
val show_fun_ : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id fun_ -> Ppx_deriving_runtime.string
type 'id ast_struct = {
  1. name : 'id;
  2. decls : 'id decl_ list;
  3. funs : 'id fun_ list;
  4. specifications : 'id specification list;
  5. securities : security list;
  6. loc : Location.t;
}
and ast = lident ast_struct
val pp_ast_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> 'id ast_struct -> Ppx_deriving_runtime.unit
val show_ast_struct : 'id. (Ppx_deriving_runtime.Format.formatter -> 'id -> Ppx_deriving_runtime.unit) -> 'id ast_struct -> Ppx_deriving_runtime.string
val pp_ast : Ppx_deriving_runtime.Format.formatter -> ast -> Ppx_deriving_runtime.unit
val vtunit : ptyp
val vtbool : ptyp
val vtnat : ptyp
val vtint : ptyp
val vtrational : ptyp
val vtdate : ptyp
val vtduration : ptyp
val vtstring : ptyp
val vtaddress : ptyp
val vtrole : ptyp
val vtcurrency : ptyp
val vtsignature : ptyp
val vtkey : ptyp
val vtkeyhash : ptyp
val vtbytes : ptyp
val vtchainid : ptyp
val mk_sp : ?label:Ident.ident -> ?loc:Location.t -> ?type_:ptyp -> 'a -> 'a struct_poly
val mk_instr : ?label:string -> ?loc:Location.t -> 'a instruction_node -> 'a instruction_poly
val mk_label_term : ?label:'a -> ?error:'a term_gen -> ?loc:Location.t -> 'a term_gen -> 'a label_term
val mk_variable : ?constant:bool -> ?invs:'a label_term list -> ?loc:Location.t -> 'a decl_gen -> 'a variable
val mk_predicate : ?args:('a * type_) list -> ?loc:Location.t -> 'a -> 'a term_gen -> 'a predicate
val mk_definition : ?loc:Location.t -> 'a -> type_ -> 'a -> 'a term_gen -> 'a definition
val mk_fail : ?loc:Location.t -> 'a -> 'a -> type_ -> 'a term_gen -> 'a fail
val mk_invariant : ?formulas:'a term_gen list -> 'a -> 'a invariant
val mk_postcondition : ?invariants:'a invariant list -> ?uses:'a list -> 'a -> 'a term_gen -> 'a postcondition
val mk_assert : ?invariants:'a invariant list -> ?uses:'a list -> 'a -> 'a -> 'a term_gen -> 'a assert_
val mk_specification : ?predicates:'a predicate list -> ?definitions:'a definition list -> ?fails:'a fail list -> ?lemmas:'a label_term list -> ?theorems:'a label_term list -> ?variables:'a variable list -> ?invariants:('a * 'a label_term list) list -> ?effect:'a instruction_gen -> ?specs:'a postcondition list -> ?asserts:'a assert_ list -> ?loc:Location.t -> unit -> 'a specification
val mk_function_struct : ?args:'a decl_gen list -> ?specification:'a specification -> ?loc:Location.t -> 'a -> fun_kind -> 'a instruction_gen -> ptyp -> 'a function_struct
val mk_transition : ?on:('a * ptyp * 'a * ptyp) -> ?trs:('a * 'a term_gen option * 'a instruction_gen option) list -> 'a sexpr_gen -> 'a transition
val mk_transaction_struct : ?args:'a decl_gen list -> ?calledby:'a rexpr_gen -> ?accept_transfer:bool -> ?require:'a label_term list -> ?failif:'a label_term list -> ?transition:'a transition -> ?specification:'a specification -> ?functions:'a function_struct list -> ?effect:'a instruction_gen -> ?loc:Location.t -> 'a -> 'a transaction_struct
val mk_enum_item : ?initial:bool -> ?invariants:'id label_term list -> ?loc:Location.t -> 'id -> 'id enum_item_struct
val mk_enum : ?items:'a enum_item_struct list -> ?loc:Location.t -> 'a enum_kind -> 'a enum_struct
val mk_decl : ?typ:ptyp -> ?default:'a term_gen -> ?shadow:bool -> ?loc:Location.t -> 'a -> 'a decl_gen
val mk_asset : ?fields:'a decl_gen list -> ?keys:'a list -> ?sort:'a list -> ?big_map:bool -> ?state:'a -> ?init:'a term_gen list list -> ?specs:'a label_term list -> ?loc:Location.t -> 'a -> 'a asset_struct
val mk_model : ?decls:'a decl_ list -> ?funs:'a fun_ list -> ?specifications:'a specification list -> ?securities:security list -> ?loc:Location.t -> 'a -> 'a ast_struct
val mk_id : ptyp -> lident -> qualid
module Utils : sig ... end
OCaml

Innovation. Community. Security.