val iter : 
  t ->
  public_key:
    ( ( [< `Read | `Set_and_create ],
        t,
        Signature_lib.Public_key.Compressed.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Signature_lib.Public_key.Compressed.t ->
      'a ) ->
  token_id:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      'b ) ->
  update:
    ( ( [< `Read | `Set_and_create ], t, Update.t ) Fieldslib.Field.t_with_perm ->
      t ->
      Update.t ->
      'c ) ->
  balance_change:
    ( ( [< `Read | `Set_and_create ],
        t,
        ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ->
      'd ) ->
  increment_nonce:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      'e ) ->
  events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      'f ) ->
  sequence_events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      'g ) ->
  call_data:
    ( ( [< `Read | `Set_and_create ], t, Pickles.Backend.Tick.Field.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Pickles.Backend.Tick.Field.t ->
      'h ) ->
  call_depth:
    ( ( [< `Read | `Set_and_create ], t, int ) Fieldslib.Field.t_with_perm ->
      t ->
      int ->
      'i ) ->
  preconditions:
    ( ( [< `Read | `Set_and_create ], t, Preconditions.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Preconditions.t ->
      'j ) ->
  use_full_commitment:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      'k ) ->
  caller:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      'l ) ->
  authorization_kind:
    ( ( [< `Read | `Set_and_create ], t, Authorization_kind.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Authorization_kind.t ->
      'm ) ->
  'nval fold : 
  t ->
  init:'a ->
  public_key:
    ( 'b ->
      ( [< `Read | `Set_and_create ],
        t,
        Signature_lib.Public_key.Compressed.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Signature_lib.Public_key.Compressed.t ->
      'c ) ->
  token_id:
    ( 'd ->
      ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      'e ) ->
  update:
    ( 'f ->
      ( [< `Read | `Set_and_create ], t, Update.t ) Fieldslib.Field.t_with_perm ->
      t ->
      Update.t ->
      'g ) ->
  balance_change:
    ( 'h ->
      ( [< `Read | `Set_and_create ],
        t,
        ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ->
      'i ) ->
  increment_nonce:
    ( 'j ->
      ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      'k ) ->
  events:
    ( 'l ->
      ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      'm ) ->
  sequence_events:
    ( 'n ->
      ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      'o ) ->
  call_data:
    ( 'p ->
      ( [< `Read | `Set_and_create ], t, Pickles.Backend.Tick.Field.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Pickles.Backend.Tick.Field.t ->
      'q ) ->
  call_depth:
    ( 'r ->
      ( [< `Read | `Set_and_create ], t, int ) Fieldslib.Field.t_with_perm ->
      t ->
      int ->
      's ) ->
  preconditions:
    ( 't ->
      ( [< `Read | `Set_and_create ], t, Preconditions.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Preconditions.t ->
      'u ) ->
  use_full_commitment:
    ( 'v ->
      ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      'w ) ->
  caller:
    ( 'x ->
      ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      'y ) ->
  authorization_kind:
    ( 'z ->
      ( [< `Read | `Set_and_create ], t, Authorization_kind.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Authorization_kind.t ->
      'a1 ) ->
  'b1val for_all : 
  t ->
  public_key:
    ( ( [< `Read | `Set_and_create ],
        t,
        Signature_lib.Public_key.Compressed.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Signature_lib.Public_key.Compressed.t ->
      bool ) ->
  token_id:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      bool ) ->
  update:
    ( ( [< `Read | `Set_and_create ], t, Update.t ) Fieldslib.Field.t_with_perm ->
      t ->
      Update.t ->
      bool ) ->
  balance_change:
    ( ( [< `Read | `Set_and_create ],
        t,
        ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ->
      bool ) ->
  increment_nonce:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      bool ) ->
  events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      bool ) ->
  sequence_events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      bool ) ->
  call_data:
    ( ( [< `Read | `Set_and_create ], t, Pickles.Backend.Tick.Field.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Pickles.Backend.Tick.Field.t ->
      bool ) ->
  call_depth:
    ( ( [< `Read | `Set_and_create ], t, int ) Fieldslib.Field.t_with_perm ->
      t ->
      int ->
      bool ) ->
  preconditions:
    ( ( [< `Read | `Set_and_create ], t, Preconditions.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Preconditions.t ->
      bool ) ->
  use_full_commitment:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      bool ) ->
  caller:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      bool ) ->
  authorization_kind:
    ( ( [< `Read | `Set_and_create ], t, Authorization_kind.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Authorization_kind.t ->
      bool ) ->
  boolval exists : 
  t ->
  public_key:
    ( ( [< `Read | `Set_and_create ],
        t,
        Signature_lib.Public_key.Compressed.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Signature_lib.Public_key.Compressed.t ->
      bool ) ->
  token_id:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      bool ) ->
  update:
    ( ( [< `Read | `Set_and_create ], t, Update.t ) Fieldslib.Field.t_with_perm ->
      t ->
      Update.t ->
      bool ) ->
  balance_change:
    ( ( [< `Read | `Set_and_create ],
        t,
        ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ->
      bool ) ->
  increment_nonce:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      bool ) ->
  events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      bool ) ->
  sequence_events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      bool ) ->
  call_data:
    ( ( [< `Read | `Set_and_create ], t, Pickles.Backend.Tick.Field.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Pickles.Backend.Tick.Field.t ->
      bool ) ->
  call_depth:
    ( ( [< `Read | `Set_and_create ], t, int ) Fieldslib.Field.t_with_perm ->
      t ->
      int ->
      bool ) ->
  preconditions:
    ( ( [< `Read | `Set_and_create ], t, Preconditions.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Preconditions.t ->
      bool ) ->
  use_full_commitment:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      bool ) ->
  caller:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      bool ) ->
  authorization_kind:
    ( ( [< `Read | `Set_and_create ], t, Authorization_kind.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Authorization_kind.t ->
      bool ) ->
  boolval to_list : 
  t ->
  public_key:
    ( ( [< `Read | `Set_and_create ],
        t,
        Signature_lib.Public_key.Compressed.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Signature_lib.Public_key.Compressed.t ->
      'a ) ->
  token_id:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      'b ) ->
  update:
    ( ( [< `Read | `Set_and_create ], t, Update.t ) Fieldslib.Field.t_with_perm ->
      t ->
      Update.t ->
      'c ) ->
  balance_change:
    ( ( [< `Read | `Set_and_create ],
        t,
        ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ->
      'd ) ->
  increment_nonce:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      'e ) ->
  events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      'f ) ->
  sequence_events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      'g ) ->
  call_data:
    ( ( [< `Read | `Set_and_create ], t, Pickles.Backend.Tick.Field.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Pickles.Backend.Tick.Field.t ->
      'h ) ->
  call_depth:
    ( ( [< `Read | `Set_and_create ], t, int ) Fieldslib.Field.t_with_perm ->
      t ->
      int ->
      'i ) ->
  preconditions:
    ( ( [< `Read | `Set_and_create ], t, Preconditions.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Preconditions.t ->
      'j ) ->
  use_full_commitment:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      'k ) ->
  caller:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      'l ) ->
  authorization_kind:
    ( ( [< `Read | `Set_and_create ], t, Authorization_kind.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Authorization_kind.t ->
      'm ) ->
  'n listval map : 
  t ->
  public_key:
    ( ( [< `Read | `Set_and_create ],
        t,
        Signature_lib.Public_key.Compressed.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Signature_lib.Public_key.Compressed.t ->
      Signature_lib.Public_key.Compressed.t ) ->
  token_id:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      Token_id.t ) ->
  update:
    ( ( [< `Read | `Set_and_create ], t, Update.t ) Fieldslib.Field.t_with_perm ->
      t ->
      Update.t ->
      Update.t ) ->
  balance_change:
    ( ( [< `Read | `Set_and_create ],
        t,
        ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ->
      ( Currency.Amount.t, Sgn.t ) Currency.Signed_poly.t ) ->
  increment_nonce:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      bool ) ->
  events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      Events'.t ) ->
  sequence_events:
    ( ( [< `Read | `Set_and_create ], t, Events'.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Events'.t ->
      Events'.t ) ->
  call_data:
    ( ( [< `Read | `Set_and_create ], t, Pickles.Backend.Tick.Field.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Pickles.Backend.Tick.Field.t ->
      Pickles.Backend.Tick.Field.t ) ->
  call_depth:
    ( ( [< `Read | `Set_and_create ], t, int ) Fieldslib.Field.t_with_perm ->
      t ->
      int ->
      int ) ->
  preconditions:
    ( ( [< `Read | `Set_and_create ], t, Preconditions.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Preconditions.t ->
      Preconditions.t ) ->
  use_full_commitment:
    ( ( [< `Read | `Set_and_create ], t, bool ) Fieldslib.Field.t_with_perm ->
      t ->
      bool ->
      bool ) ->
  caller:
    ( ( [< `Read | `Set_and_create ], t, Token_id.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Token_id.t ->
      Token_id.t ) ->
  authorization_kind:
    ( ( [< `Read | `Set_and_create ], t, Authorization_kind.t )
        Fieldslib.Field.t_with_perm ->
      t ->
      Authorization_kind.t ->
      Authorization_kind.t ) ->
  tval set_all_mutable_fields : 'a -> unit