package tezos-protocol-010-PtGRANAD

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type var_annot =
  1. | Var_annot of string
type type_annot =
  1. | Type_annot of string
type field_annot =
  1. | Field_annot of string
type never = |
type address = Alpha_context.Contract.t * string
type ('a, 'b) pair = 'a * 'b
type ('a, 'b) union =
  1. | L of 'a
  2. | R of 'b
type 'a ticket = {
  1. ticketer : address;
  2. contents : 'a;
  3. amount : Alpha_context.Script_int.n Alpha_context.Script_int.num;
}
type empty_cell =
  1. | EmptyCell
type end_of_stack = empty_cell * empty_cell
type _ comparable_ty =
  1. | Unit_key : type_annot option -> unit comparable_ty
  2. | Never_key : type_annot option -> never comparable_ty
  3. | Int_key : type_annot option -> Alpha_context.Script_int.z Alpha_context.Script_int.num comparable_ty
  4. | Nat_key : type_annot option -> Alpha_context.Script_int.n Alpha_context.Script_int.num comparable_ty
  5. | Signature_key : type_annot option -> Alpha_context.signature comparable_ty
  6. | String_key : type_annot option -> string comparable_ty
  7. | Bytes_key : type_annot option -> bytes comparable_ty
  8. | Mutez_key : type_annot option -> Alpha_context.Tez.t comparable_ty
  9. | Bool_key : type_annot option -> bool comparable_ty
  10. | Key_hash_key : type_annot option -> Alpha_context.public_key_hash comparable_ty
  11. | Key_key : type_annot option -> Alpha_context.public_key comparable_ty
  12. | Timestamp_key : type_annot option -> Alpha_context.Script_timestamp.t comparable_ty
  13. | Chain_id_key : type_annot option -> Tezos_crypto.Chain_id.t comparable_ty
  14. | Address_key : type_annot option -> address comparable_ty
  15. | Pair_key : ('a comparable_ty * field_annot option) * ('b comparable_ty * field_annot option) * type_annot option -> ('a, 'b) pair comparable_ty
  16. | Union_key : ('a comparable_ty * field_annot option) * ('b comparable_ty * field_annot option) * type_annot option -> ('a, 'b) union comparable_ty
  17. | Option_key : 'v comparable_ty * type_annot option -> 'v option comparable_ty
module type Boxed_set = sig ... end
type 'elt set = (module Boxed_set with type elt = 'elt)
module type Boxed_map = sig ... end
type ('key, 'value) map = (module Boxed_map with type key = 'key and type value = 'value)
module Big_map_overlay : sig ... end
type ('key, 'value) big_map_overlay = {
  1. map : ('key * 'value option) Big_map_overlay.t;
  2. size : int;
}
type 'elt boxed_list = {
  1. elements : 'elt list;
  2. length : int;
}
type ('arg, 'storage) script = {
  1. code : (('arg, 'storage) pair, (operation boxed_list, 'storage) pair) lambda;
  2. arg_type : 'arg ty;
  3. storage : 'storage;
  4. storage_type : 'storage ty;
  5. root_name : field_annot option;
}
and ('before_top, 'before, 'result_top, 'result) kinstr =
  1. | IDrop : ('a, 'b * 's) kinfo * ('b, 's, 'r, 'f) kinstr -> ('a, 'b * 's, 'r, 'f) kinstr
  2. | IDup : ('a, 's) kinfo * ('a, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  3. | ISwap : ('a, 'b * 's) kinfo * ('b, 'a * 's, 'r, 'f) kinstr -> ('a, 'b * 's, 'r, 'f) kinstr
  4. | IConst : ('a, 's) kinfo * 'ty * ('ty, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  5. | ICons_pair : ('a, 'b * 's) kinfo * ('a * 'b, 's, 'r, 'f) kinstr -> ('a, 'b * 's, 'r, 'f) kinstr
  6. | ICar : ('a * 'b, 's) kinfo * ('a, 's, 'r, 'f) kinstr -> ('a * 'b, 's, 'r, 'f) kinstr
  7. | ICdr : ('a * 'b, 's) kinfo * ('b, 's, 'r, 'f) kinstr -> ('a * 'b, 's, 'r, 'f) kinstr
  8. | IUnpair : ('a * 'b, 's) kinfo * ('a, 'b * 's, 'r, 'f) kinstr -> ('a * 'b, 's, 'r, 'f) kinstr
  9. | ICons_some : ('v, 's) kinfo * ('v option, 's, 'r, 'f) kinstr -> ('v, 's, 'r, 'f) kinstr
  10. | ICons_none : ('a, 's) kinfo * 'b ty * ('b option, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  11. | IIf_none : {
    1. kinfo : ('a option, 'b * 's) kinfo;
    2. branch_if_none : ('b, 's, 'r, 'f) kinstr;
    3. branch_if_some : ('a, 'b * 's, 'r, 'f) kinstr;
    } -> ('a option, 'b * 's, 'r, 'f) kinstr
  12. | ICons_left : ('a, 's) kinfo * (('a, 'b) union, 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  13. | ICons_right : ('b, 's) kinfo * (('a, 'b) union, 's, 'r, 'f) kinstr -> ('b, 's, 'r, 'f) kinstr
  14. | IIf_left : {
    1. kinfo : (('a, 'b) union, 's) kinfo;
    2. branch_if_left : ('a, 's, 'r, 'f) kinstr;
    3. branch_if_right : ('b, 's, 'r, 'f) kinstr;
    } -> (('a, 'b) union, 's, 'r, 'f) kinstr
  15. | ICons_list : ('a, 'a boxed_list * 's) kinfo * ('a boxed_list, 's, 'r, 'f) kinstr -> ('a, 'a boxed_list * 's, 'r, 'f) kinstr
  16. | INil : ('a, 's) kinfo * ('b boxed_list, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  17. | IIf_cons : {
    1. kinfo : ('a boxed_list, 'b * 's) kinfo;
    2. branch_if_cons : ('a, 'a boxed_list * ('b * 's), 'r, 'f) kinstr;
    3. branch_if_nil : ('b, 's, 'r, 'f) kinstr;
    } -> ('a boxed_list, 'b * 's, 'r, 'f) kinstr
  18. | IList_map : ('a boxed_list, 'c * 's) kinfo * ('a, 'c * 's, 'b, 'c * 's) kinstr * ('b boxed_list, 'c * 's, 'r, 'f) kinstr -> ('a boxed_list, 'c * 's, 'r, 'f) kinstr
  19. | IList_iter : ('a boxed_list, 'b * 's) kinfo * ('a, 'b * 's, 'b, 's) kinstr * ('b, 's, 'r, 'f) kinstr -> ('a boxed_list, 'b * 's, 'r, 'f) kinstr
  20. | IList_size : ('a boxed_list, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> ('a boxed_list, 's, 'r, 'f) kinstr
  21. | IEmpty_set : ('a, 's) kinfo * 'b comparable_ty * ('b set, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  22. | ISet_iter : ('a set, 'b * 's) kinfo * ('a, 'b * 's, 'b, 's) kinstr * ('b, 's, 'r, 'f) kinstr -> ('a set, 'b * 's, 'r, 'f) kinstr
  23. | ISet_mem : ('a, 'a set * 's) kinfo * (bool, 's, 'r, 'f) kinstr -> ('a, 'a set * 's, 'r, 'f) kinstr
  24. | ISet_update : ('a, bool * ('a set * 's)) kinfo * ('a set, 's, 'r, 'f) kinstr -> ('a, bool * ('a set * 's), 'r, 'f) kinstr
  25. | ISet_size : ('a set, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> ('a set, 's, 'r, 'f) kinstr
  26. | IEmpty_map : ('a, 's) kinfo * 'b comparable_ty * 'c ty * (('b, 'c) map, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  27. | IMap_map : (('a, 'b) map, 'd * 's) kinfo * ('a * 'b, 'd * 's, 'c, 'd * 's) kinstr * (('a, 'c) map, 'd * 's, 'r, 'f) kinstr -> (('a, 'b) map, 'd * 's, 'r, 'f) kinstr
  28. | IMap_iter : (('a, 'b) map, 'c * 's) kinfo * ('a * 'b, 'c * 's, 'c, 's) kinstr * ('c, 's, 'r, 'f) kinstr -> (('a, 'b) map, 'c * 's, 'r, 'f) kinstr
  29. | IMap_mem : ('a, ('a, 'b) map * 's) kinfo * (bool, 's, 'r, 'f) kinstr -> ('a, ('a, 'b) map * 's, 'r, 'f) kinstr
  30. | IMap_get : ('a, ('a, 'b) map * 's) kinfo * ('b option, 's, 'r, 'f) kinstr -> ('a, ('a, 'b) map * 's, 'r, 'f) kinstr
  31. | IMap_update : ('a, 'b option * (('a, 'b) map * 's)) kinfo * (('a, 'b) map, 's, 'r, 'f) kinstr -> ('a, 'b option * (('a, 'b) map * 's), 'r, 'f) kinstr
  32. | IMap_get_and_update : ('a, 'b option * (('a, 'b) map * 's)) kinfo * ('b option, ('a, 'b) map * 's, 'r, 'f) kinstr -> ('a, 'b option * (('a, 'b) map * 's), 'r, 'f) kinstr
  33. | IMap_size : (('a, 'b) map, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (('a, 'b) map, 's, 'r, 'f) kinstr
  34. | IEmpty_big_map : ('a, 's) kinfo * 'b comparable_ty * 'c ty * (('b, 'c) big_map, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  35. | IBig_map_mem : ('a, ('a, 'b) big_map * 's) kinfo * (bool, 's, 'r, 'f) kinstr -> ('a, ('a, 'b) big_map * 's, 'r, 'f) kinstr
  36. | IBig_map_get : ('a, ('a, 'b) big_map * 's) kinfo * ('b option, 's, 'r, 'f) kinstr -> ('a, ('a, 'b) big_map * 's, 'r, 'f) kinstr
  37. | IBig_map_update : ('a, 'b option * (('a, 'b) big_map * 's)) kinfo * (('a, 'b) big_map, 's, 'r, 'f) kinstr -> ('a, 'b option * (('a, 'b) big_map * 's), 'r, 'f) kinstr
  38. | IBig_map_get_and_update : ('a, 'b option * (('a, 'b) big_map * 's)) kinfo * ('b option, ('a, 'b) big_map * 's, 'r, 'f) kinstr -> ('a, 'b option * (('a, 'b) big_map * 's), 'r, 'f) kinstr
  39. | IConcat_string : (string boxed_list, 's) kinfo * (string, 's, 'r, 'f) kinstr -> (string boxed_list, 's, 'r, 'f) kinstr
  40. | IConcat_string_pair : (string, string * 's) kinfo * (string, 's, 'r, 'f) kinstr -> (string, string * 's, 'r, 'f) kinstr
  41. | ISlice_string : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * (string * 's)) kinfo * (string option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * (string * 's), 'r, 'f) kinstr
  42. | IString_size : (string, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (string, 's, 'r, 'f) kinstr
  43. | IConcat_bytes : (bytes boxed_list, 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes boxed_list, 's, 'r, 'f) kinstr
  44. | IConcat_bytes_pair : (bytes, bytes * 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes, bytes * 's, 'r, 'f) kinstr
  45. | ISlice_bytes : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * (bytes * 's)) kinfo * (bytes option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * (bytes * 's), 'r, 'f) kinstr
  46. | IBytes_size : (bytes, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  47. | IAdd_seconds_to_timestamp : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_timestamp.t * 's) kinfo * (Alpha_context.Script_timestamp.t, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_timestamp.t * 's, 'r, 'f) kinstr
  48. | IAdd_timestamp_to_seconds : (Alpha_context.Script_timestamp.t, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_timestamp.t, 's, 'r, 'f) kinstr -> (Alpha_context.Script_timestamp.t, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  49. | ISub_timestamp_seconds : (Alpha_context.Script_timestamp.t, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_timestamp.t, 's, 'r, 'f) kinstr -> (Alpha_context.Script_timestamp.t, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  50. | IDiff_timestamps : (Alpha_context.Script_timestamp.t, Alpha_context.Script_timestamp.t * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_timestamp.t, Alpha_context.Script_timestamp.t * 's, 'r, 'f) kinstr
  51. | IAdd_tez : (Alpha_context.Tez.t, Alpha_context.Tez.t * 's) kinfo * (Alpha_context.Tez.t, 's, 'r, 'f) kinstr -> (Alpha_context.Tez.t, Alpha_context.Tez.t * 's, 'r, 'f) kinstr
  52. | ISub_tez : (Alpha_context.Tez.t, Alpha_context.Tez.t * 's) kinfo * (Alpha_context.Tez.t, 's, 'r, 'f) kinstr -> (Alpha_context.Tez.t, Alpha_context.Tez.t * 's, 'r, 'f) kinstr
  53. | IMul_teznat : (Alpha_context.Tez.t, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Tez.t, 's, 'r, 'f) kinstr -> (Alpha_context.Tez.t, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  54. | IMul_nattez : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Tez.t * 's) kinfo * (Alpha_context.Tez.t, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Tez.t * 's, 'r, 'f) kinstr
  55. | IEdiv_teznat : (Alpha_context.Tez.t, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * ((Alpha_context.Tez.t, Alpha_context.Tez.t) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Tez.t, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  56. | IEdiv_tez : (Alpha_context.Tez.t, Alpha_context.Tez.t * 's) kinfo * ((Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Tez.t) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Tez.t, Alpha_context.Tez.t * 's, 'r, 'f) kinstr
  57. | IOr : (bool, bool * 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (bool, bool * 's, 'r, 'f) kinstr
  58. | IAnd : (bool, bool * 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (bool, bool * 's, 'r, 'f) kinstr
  59. | IXor : (bool, bool * 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (bool, bool * 's, 'r, 'f) kinstr
  60. | INot : (bool, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (bool, 's, 'r, 'f) kinstr
  61. | IIs_nat : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  62. | INeg_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  63. | INeg_int : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  64. | IAbs_int : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  65. | IInt_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  66. | IAdd_intint : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  67. | IAdd_intnat : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  68. | IAdd_natint : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  69. | IAdd_natnat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  70. | ISub_int : ('a Alpha_context.Script_int.num, 'b Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> ('a Alpha_context.Script_int.num, 'b Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  71. | IMul_intint : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  72. | IMul_intnat : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  73. | IMul_natint : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  74. | IMul_natnat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  75. | IEdiv_intint : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * ((Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  76. | IEdiv_intnat : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * ((Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  77. | IEdiv_natint : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's) kinfo * ((Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.z Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  78. | IEdiv_natnat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * ((Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  79. | ILsl_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  80. | ILsr_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  81. | IOr_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  82. | IAnd_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  83. | IAnd_int_nat : (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  84. | IXor_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  85. | INot_nat : (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  86. | INot_int : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  87. | IIf : {
    1. kinfo : (bool, 'a * 's) kinfo;
    2. branch_if_true : ('a, 's, 'r, 'f) kinstr;
    3. branch_if_false : ('a, 's, 'r, 'f) kinstr;
    } -> (bool, 'a * 's, 'r, 'f) kinstr
  88. | ILoop : (bool, 'a * 's) kinfo * ('a, 's, bool, 'a * 's) kinstr * ('a, 's, 'r, 'f) kinstr -> (bool, 'a * 's, 'r, 'f) kinstr
  89. | ILoop_left : (('a, 'b) union, 's) kinfo * ('a, 's, ('a, 'b) union, 's) kinstr * ('b, 's, 'r, 'f) kinstr -> (('a, 'b) union, 's, 'r, 'f) kinstr
  90. | IDip : ('a, 'b * 's) kinfo * ('b, 's, 'c, 't) kinstr * ('a, 'c * 't, 'r, 'f) kinstr -> ('a, 'b * 's, 'r, 'f) kinstr
  91. | IExec : ('a, ('a, 'b) lambda * 's) kinfo * ('b, 's, 'r, 'f) kinstr -> ('a, ('a, 'b) lambda * 's, 'r, 'f) kinstr
  92. | IApply : ('a, ('a * 'b, 'c) lambda * 's) kinfo * 'a ty * (('b, 'c) lambda, 's, 'r, 'f) kinstr -> ('a, ('a * 'b, 'c) lambda * 's, 'r, 'f) kinstr
  93. | ILambda : ('a, 's) kinfo * ('b, 'c) lambda * (('b, 'c) lambda, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  94. | IFailwith : ('a, 's) kinfo * Alpha_context.Script.location * 'a ty * ('b, 't, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  95. | ICompare : ('a, 'a * 's) kinfo * 'a comparable_ty * (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> ('a, 'a * 's, 'r, 'f) kinstr
  96. | IEq : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  97. | INeq : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  98. | ILt : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  99. | IGt : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  100. | ILe : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  101. | IGe : (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.Script_int.z Alpha_context.Script_int.num, 's, 'r, 'f) kinstr
  102. | IAddress : ('a typed_contract, 's) kinfo * (address, 's, 'r, 'f) kinstr -> ('a typed_contract, 's, 'r, 'f) kinstr
  103. | IContract : (address, 's) kinfo * 'a ty * string * ('a typed_contract option, 's, 'r, 'f) kinstr -> (address, 's, 'r, 'f) kinstr
  104. | ITransfer_tokens : ('a, Alpha_context.Tez.t * ('a typed_contract * 's)) kinfo * (operation, 's, 'r, 'f) kinstr -> ('a, Alpha_context.Tez.t * ('a typed_contract * 's), 'r, 'f) kinstr
  105. | IImplicit_account : (Alpha_context.public_key_hash, 's) kinfo * (unit typed_contract, 's, 'r, 'f) kinstr -> (Alpha_context.public_key_hash, 's, 'r, 'f) kinstr
  106. | ICreate_contract : {
    1. kinfo : (Alpha_context.public_key_hash option, Alpha_context.Tez.t * ('a * 's)) kinfo;
    2. storage_type : 'a ty;
    3. arg_type : 'b ty;
    4. lambda : ('b * 'a, operation boxed_list * 'a) lambda;
    5. root_name : field_annot option;
    6. k : (operation, address * 's, 'r, 'f) kinstr;
    } -> (Alpha_context.public_key_hash option, Alpha_context.Tez.t * ('a * 's), 'r, 'f) kinstr
  107. | ISet_delegate : (Alpha_context.public_key_hash option, 's) kinfo * (operation, 's, 'r, 'f) kinstr -> (Alpha_context.public_key_hash option, 's, 'r, 'f) kinstr
  108. | INow : ('a, 's) kinfo * (Alpha_context.Script_timestamp.t, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  109. | IBalance : ('a, 's) kinfo * (Alpha_context.Tez.t, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  110. | ILevel : ('a, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  111. | ICheck_signature : (Alpha_context.public_key, Alpha_context.signature * (bytes * 's)) kinfo * (bool, 's, 'r, 'f) kinstr -> (Alpha_context.public_key, Alpha_context.signature * (bytes * 's), 'r, 'f) kinstr
  112. | IHash_key : (Alpha_context.public_key, 's) kinfo * (Alpha_context.public_key_hash, 's, 'r, 'f) kinstr -> (Alpha_context.public_key, 's, 'r, 'f) kinstr
  113. | IPack : ('a, 's) kinfo * 'a ty * (bytes, 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  114. | IUnpack : (bytes, 's) kinfo * 'a ty * ('a option, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  115. | IBlake2b : (bytes, 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  116. | ISha256 : (bytes, 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  117. | ISha512 : (bytes, 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  118. | ISource : ('a, 's) kinfo * (address, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  119. | ISender : ('a, 's) kinfo * (address, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  120. | ISelf : ('a, 's) kinfo * 'b ty * string * ('b typed_contract, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  121. | ISelf_address : ('a, 's) kinfo * (address, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  122. | IAmount : ('a, 's) kinfo * (Alpha_context.Tez.t, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  123. | ISapling_empty_state : ('a, 's) kinfo * Alpha_context.Sapling.Memo_size.t * (Alpha_context.Sapling.state, 'a * 's, 'b, 'f) kinstr -> ('a, 's, 'b, 'f) kinstr
  124. | ISapling_verify_update : (Alpha_context.Sapling.transaction, Alpha_context.Sapling.state * 's) kinfo * ((Alpha_context.Script_int.z Alpha_context.Script_int.num, Alpha_context.Sapling.state) pair option, 's, 'r, 'f) kinstr -> (Alpha_context.Sapling.transaction, Alpha_context.Sapling.state * 's, 'r, 'f) kinstr
  125. | IDig : ('a, 's) kinfo * int * ('b, 'c * 't, 'c, 't, 'a, 's, 'd, 'u) stack_prefix_preservation_witness * ('b, 'd * 'u, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  126. | IDug : ('a, 'b * 's) kinfo * int * ('c, 't, 'a, 'c * 't, 'b, 's, 'd, 'u) stack_prefix_preservation_witness * ('d, 'u, 'r, 'f) kinstr -> ('a, 'b * 's, 'r, 'f) kinstr
  127. | IDipn : ('a, 's) kinfo * int * ('c, 't, 'd, 'v, 'a, 's, 'b, 'u) stack_prefix_preservation_witness * ('c, 't, 'd, 'v) kinstr * ('b, 'u, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  128. | IDropn : ('a, 's) kinfo * int * ('b, 'u, 'b, 'u, 'a, 's, 'a, 's) stack_prefix_preservation_witness * ('b, 'u, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  129. | IChainId : ('a, 's) kinfo * (Tezos_crypto.Chain_id.t, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  130. | INever : (never, 's) kinfo -> (never, 's, 'r, 'f) kinstr
  131. | IVoting_power : (Alpha_context.public_key_hash, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 's, 'r, 'f) kinstr -> (Alpha_context.public_key_hash, 's, 'r, 'f) kinstr
  132. | ITotal_voting_power : ('a, 's) kinfo * (Alpha_context.Script_int.n Alpha_context.Script_int.num, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  133. | IKeccak : (bytes, 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  134. | ISha3 : (bytes, 's) kinfo * (bytes, 's, 'r, 'f) kinstr -> (bytes, 's, 'r, 'f) kinstr
  135. | IComb : ('a, 's) kinfo * int * ('a * 's, 'b * 'u) comb_gadt_witness * ('b, 'u, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  136. | IUncomb : ('a, 's) kinfo * int * ('a * 's, 'b * 'u) uncomb_gadt_witness * ('b, 'u, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  137. | IComb_get : ('t, 's) kinfo * int * ('t, 'v) comb_get_gadt_witness * ('v, 's, 'r, 'f) kinstr -> ('t, 's, 'r, 'f) kinstr
  138. | IComb_set : ('a, 'b * 's) kinfo * int * ('a, 'b, 'c) comb_set_gadt_witness * ('c, 's, 'r, 'f) kinstr -> ('a, 'b * 's, 'r, 'f) kinstr
  139. | IDup_n : ('a, 's) kinfo * int * ('a * 's, 't) dup_n_gadt_witness * ('t, 'a * 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
  140. | ITicket : ('a, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's) kinfo * ('a ticket, 's, 'r, 'f) kinstr -> ('a, Alpha_context.Script_int.n Alpha_context.Script_int.num * 's, 'r, 'f) kinstr
  141. | IRead_ticket : ('a ticket, 's) kinfo * (address * ('a * Alpha_context.Script_int.n Alpha_context.Script_int.num), 'a ticket * 's, 'r, 'f) kinstr -> ('a ticket, 's, 'r, 'f) kinstr
  142. | ISplit_ticket : ('a ticket, (Alpha_context.Script_int.n Alpha_context.Script_int.num * Alpha_context.Script_int.n Alpha_context.Script_int.num) * 's) kinfo * (('a ticket * 'a ticket) option, 's, 'r, 'f) kinstr -> ('a ticket, (Alpha_context.Script_int.n Alpha_context.Script_int.num * Alpha_context.Script_int.n Alpha_context.Script_int.num) * 's, 'r, 'f) kinstr
  143. | IJoin_tickets : ('a ticket * 'a ticket, 's) kinfo * 'a comparable_ty * ('a ticket option, 's, 'r, 'f) kinstr -> ('a ticket * 'a ticket, 's, 'r, 'f) kinstr
  144. | IHalt : ('a, 's) kinfo -> ('a, 's, 'a, 's) kinstr
  145. | ILog : ('a, 's) kinfo * logging_event * logger * ('a, 's, 'r, 'f) kinstr -> ('a, 's, 'r, 'f) kinstr
and logging_event =
  1. | LogEntry : logging_event
  2. | LogExit : ('b, 'u) kinfo -> logging_event
and ('arg, 'ret) lambda =
  1. | Lam : ('arg, end_of_stack, 'ret, end_of_stack) kdescr * Alpha_context.Script.node -> ('arg, 'ret) lambda
and 'arg typed_contract = 'arg ty * address
and (_, _, _, _) continuation =
  1. | KNil : ('r, 'f, 'r, 'f) continuation
  2. | KCons : ('a, 's, 'b, 't) kinstr * ('b, 't, 'r, 'f) continuation -> ('a, 's, 'r, 'f) continuation
  3. | KReturn : 's * ('a, 's, 'r, 'f) continuation -> ('a, end_of_stack, 'r, 'f) continuation
  4. | KUndip : 'b * ('b, 'a * 's, 'r, 'f) continuation -> ('a, 's, 'r, 'f) continuation
  5. | KLoop_in : ('a, 's, bool, 'a * 's) kinstr * ('a, 's, 'r, 'f) continuation -> (bool, 'a * 's, 'r, 'f) continuation
  6. | KLoop_in_left : ('a, 's, ('a, 'b) union, 's) kinstr * ('b, 's, 'r, 'f) continuation -> (('a, 'b) union, 's, 'r, 'f) continuation
  7. | KIter : ('a, 'b * 's, 'b, 's) kinstr * 'a list * ('b, 's, 'r, 'f) continuation -> ('b, 's, 'r, 'f) continuation
  8. | KList_enter_body : ('a, 'c * 's, 'b, 'c * 's) kinstr * 'a list * 'b list * int * ('b boxed_list, 'c * 's, 'r, 'f) continuation -> ('c, 's, 'r, 'f) continuation
  9. | KList_exit_body : ('a, 'c * 's, 'b, 'c * 's) kinstr * 'a list * 'b list * int * ('b boxed_list, 'c * 's, 'r, 'f) continuation -> ('b, 'c * 's, 'r, 'f) continuation
  10. | KMap_enter_body : ('a * 'b, 'd * 's, 'c, 'd * 's) kinstr * ('a * 'b) list * ('a, 'c) map * (('a, 'c) map, 'd * 's, 'r, 'f) continuation -> ('d, 's, 'r, 'f) continuation
  11. | KMap_exit_body : ('a * 'b, 'd * 's, 'c, 'd * 's) kinstr * ('a * 'b) list * ('a, 'c) map * 'a * (('a, 'c) map, 'd * 's, 'r, 'f) continuation -> ('c, 'd * 's, 'r, 'f) continuation
  12. | KLog : ('a, 's, 'r, 'f) continuation * logger -> ('a, 's, 'r, 'f) continuation
and ('a, 's, 'b, 'f, 'c, 'u) logging_function = ('a, 's, 'b, 'f) kinstr -> Alpha_context.context -> Alpha_context.Script.location -> ('c, 'u) stack_ty -> ('c * 'u) -> unit
and execution_trace = (Alpha_context.Script.location * Alpha_context.Gas.t * (Alpha_context.Script.expr * string option) list) list
and logger = {
  1. log_interp : 'a 's 'b 'f 'c 'u. ('a, 's, 'b, 'f, 'c, 'u) logging_function;
    (*

    log_interp is called at each call of the internal function interp. interp is called when starting the interpretation of a script and subsequently at each Exec instruction.

    *)
  2. log_entry : 'a 's 'b 'f. ('a, 's, 'b, 'f, 'a, 's) logging_function;
    (*

    log_entry is called before executing each instruction but after gas for this instruction has been successfully consumed.

    *)
  3. log_control : 'a 's 'b 'f. ('a, 's, 'b, 'f) continuation -> unit;
    (*

    log_control is called before the interpretation of the current continuation.

    *)
  4. log_exit : 'a 's 'b 'f 'c 'u. ('a, 's, 'b, 'f, 'c, 'u) logging_function;
    (*

    log_exit is called after executing each instruction.

    *)
  5. get_log : unit -> (execution_trace option, Tezos_protocol_environment_010_PtGRANAD__Environment.Error_monad.error Tezos_protocol_environment_010_PtGRANAD__Environment.Error_monad.trace) result Lwt.t;
    (*

    get_log allows to obtain an execution trace, if any was produced.

    *)
}
and 'ty ty =
  1. | Unit_t : type_annot option -> unit ty
  2. | Int_t : type_annot option -> Alpha_context.Script_int.z Alpha_context.Script_int.num ty
  3. | Nat_t : type_annot option -> Alpha_context.Script_int.n Alpha_context.Script_int.num ty
  4. | Signature_t : type_annot option -> Alpha_context.signature ty
  5. | String_t : type_annot option -> string ty
  6. | Bytes_t : type_annot option -> bytes ty
  7. | Mutez_t : type_annot option -> Alpha_context.Tez.t ty
  8. | Key_hash_t : type_annot option -> Alpha_context.public_key_hash ty
  9. | Key_t : type_annot option -> Alpha_context.public_key ty
  10. | Timestamp_t : type_annot option -> Alpha_context.Script_timestamp.t ty
  11. | Address_t : type_annot option -> address ty
  12. | Bool_t : type_annot option -> bool ty
  13. | Pair_t : ('a ty * field_annot option * var_annot option) * ('b ty * field_annot option * var_annot option) * type_annot option -> ('a, 'b) pair ty
  14. | Union_t : ('a ty * field_annot option) * ('b ty * field_annot option) * type_annot option -> ('a, 'b) union ty
  15. | Lambda_t : 'arg ty * 'ret ty * type_annot option -> ('arg, 'ret) lambda ty
  16. | Option_t : 'v ty * type_annot option -> 'v option ty
  17. | List_t : 'v ty * type_annot option -> 'v boxed_list ty
  18. | Set_t : 'v comparable_ty * type_annot option -> 'v set ty
  19. | Map_t : 'k comparable_ty * 'v ty * type_annot option -> ('k, 'v) map ty
  20. | Big_map_t : 'k comparable_ty * 'v ty * type_annot option -> ('k, 'v) big_map ty
  21. | Contract_t : 'arg ty * type_annot option -> 'arg typed_contract ty
  22. | Sapling_transaction_t : Alpha_context.Sapling.Memo_size.t * type_annot option -> Alpha_context.Sapling.transaction ty
  23. | Sapling_state_t : Alpha_context.Sapling.Memo_size.t * type_annot option -> Alpha_context.Sapling.state ty
  24. | Operation_t : type_annot option -> operation ty
  25. | Chain_id_t : type_annot option -> Tezos_crypto.Chain_id.t ty
  26. | Never_t : type_annot option -> never ty
  27. | Bls12_381_g1_t : type_annot option -> Tezos_protocol_environment_010_PtGRANAD__Environment.Bls12_381.G1.t ty
  28. | Bls12_381_g2_t : type_annot option -> Tezos_protocol_environment_010_PtGRANAD__Environment.Bls12_381.G2.t ty
  29. | Bls12_381_fr_t : type_annot option -> Tezos_protocol_environment_010_PtGRANAD__Environment.Bls12_381.Fr.t ty
  30. | Ticket_t : 'a comparable_ty * type_annot option -> 'a ticket ty
and ('top_ty, 'resty) stack_ty =
  1. | Item_t : 'ty ty * ('ty2, 'rest) stack_ty * var_annot option -> ('ty, 'ty2 * 'rest) stack_ty
  2. | Bot_t : (empty_cell, empty_cell) stack_ty
and ('key, 'value) big_map = {
  1. id : Alpha_context.Big_map.Id.t option;
  2. diff : ('key, 'value) big_map_overlay;
  3. key_type : 'key comparable_ty;
  4. value_type : 'value ty;
}
and ('a, 's, 'r, 'f) kdescr = {
  1. kloc : Alpha_context.Script.location;
  2. kbef : ('a, 's) stack_ty;
  3. kaft : ('r, 'f) stack_ty;
  4. kinstr : ('a, 's, 'r, 'f) kinstr;
}
and ('a, 's) kinfo = {
  1. iloc : Alpha_context.Script.location;
  2. kstack_ty : ('a, 's) stack_ty;
}
and (_, _, _, _, _, _, _, _) stack_prefix_preservation_witness =
  1. | KPrefix : ('y, 'u) kinfo * ('c, 'v, 'd, 'w, 'x, 's, 'y, 'u) stack_prefix_preservation_witness -> ('c, 'v, 'd, 'w, 'a, 'x * 's, 'a, 'y * 'u) stack_prefix_preservation_witness
  2. | KRest : ('a, 's, 'b, 'u, 'a, 's, 'b, 'u) stack_prefix_preservation_witness
and ('before, 'after) comb_gadt_witness =
  1. | Comb_one : ('a * ('x * 'before), 'a * ('x * 'before)) comb_gadt_witness
  2. | Comb_succ : ('before, 'b * 'after) comb_gadt_witness -> ('a * 'before, ('a * 'b) * 'after) comb_gadt_witness
and ('before, 'after) uncomb_gadt_witness =
  1. | Uncomb_one : ('rest, 'rest) uncomb_gadt_witness
  2. | Uncomb_succ : ('b * 'before, 'after) uncomb_gadt_witness -> (('a * 'b) * 'before, 'a * 'after) uncomb_gadt_witness
and ('before, 'after) comb_get_gadt_witness =
  1. | Comb_get_zero : ('b, 'b) comb_get_gadt_witness
  2. | Comb_get_one : ('a * 'b, 'a) comb_get_gadt_witness
  3. | Comb_get_plus_two : ('before, 'after) comb_get_gadt_witness -> ('a * 'before, 'after) comb_get_gadt_witness
and ('value, 'before, 'after) comb_set_gadt_witness =
  1. | Comb_set_zero : ('value, _, 'value) comb_set_gadt_witness
  2. | Comb_set_one : ('value, 'hd * 'tl, 'value * 'tl) comb_set_gadt_witness
  3. | Comb_set_plus_two : ('value, 'before, 'after) comb_set_gadt_witness -> ('value, 'a * 'before, 'a * 'after) comb_set_gadt_witness
and (_, _) dup_n_gadt_witness =
  1. | Dup_n_zero : ('a * 'rest, 'a) dup_n_gadt_witness
  2. | Dup_n_succ : ('stack, 'b) dup_n_gadt_witness -> ('a * 'stack, 'b) dup_n_gadt_witness
val kinfo_of_kinstr : 'a 's 'b 'f. ('a, 's, 'b, 'f) kinstr -> ('a, 's) kinfo
type kinstr_rewritek = {
  1. apply : 'b 'u 'r 'f. ('b, 'u, 'r, 'f) kinstr -> ('b, 'u, 'r, 'f) kinstr;
}
val kinstr_rewritek : 'a 's 'r 'f. ('a, 's, 'r, 'f) kinstr -> kinstr_rewritek -> ('a, 's, 'r, 'f) kinstr