open Ctypes
module Bindings(F:Cstubs.FOREIGN) =
  struct
    open F
    module Hacl_Bignum_applied =
      (Hacl_Bignum_bindings.Bindings)(Hacl_Bignum_stubs)
    open Hacl_Bignum_applied
    let hacl_GenericField64_field_modulus_check =
      foreign "Hacl_GenericField64_field_modulus_check"
        (uint32_t @-> ((ptr uint64_t) @-> (returning bool)))
    let hacl_GenericField64_field_init =
      foreign "Hacl_GenericField64_field_init"
        (uint32_t @->
           ((ptr uint64_t) @->
              (returning (ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64))))
    let hacl_GenericField64_field_free =
      foreign "Hacl_GenericField64_field_free"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           (returning void))
    let hacl_GenericField64_field_get_len =
      foreign "Hacl_GenericField64_field_get_len"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           (returning uint32_t))
    let hacl_GenericField64_to_field =
      foreign "Hacl_GenericField64_to_field"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void))))
    let hacl_GenericField64_from_field =
      foreign "Hacl_GenericField64_from_field"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void))))
    let hacl_GenericField64_add =
      foreign "Hacl_GenericField64_add"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @->
              ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void)))))
    let hacl_GenericField64_sub =
      foreign "Hacl_GenericField64_sub"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @->
              ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void)))))
    let hacl_GenericField64_mul =
      foreign "Hacl_GenericField64_mul"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @->
              ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void)))))
    let hacl_GenericField64_sqr =
      foreign "Hacl_GenericField64_sqr"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void))))
    let hacl_GenericField64_one =
      foreign "Hacl_GenericField64_one"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @-> (returning void)))
    let hacl_GenericField64_exp_consttime =
      foreign "Hacl_GenericField64_exp_consttime"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @->
              (uint32_t @->
                 ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void))))))
    let hacl_GenericField64_exp_vartime =
      foreign "Hacl_GenericField64_exp_vartime"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @->
              (uint32_t @->
                 ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void))))))
    let hacl_GenericField64_inverse =
      foreign "Hacl_GenericField64_inverse"
        ((ptr hacl_Bignum_MontArithmetic_bn_mont_ctx_u64) @->
           ((ptr uint64_t) @-> ((ptr uint64_t) @-> (returning void))))
  end