Curve.Make
module BaseField : Field_intf
module ScalarField : sig ... end
module Params : sig ... end
module C :
Input_intf
with module BaseField := BaseField
and module ScalarField := ScalarField
include module type of C with type t = C.t with module Affine := C.Affine
type t = C.t
val to_affine : t -> C.Affine.t
val of_affine_coordinates : BaseField.t -> BaseField.t -> t
val scale : t -> ScalarField.t -> t
val random : unit -> t
module Base_field = BaseField
val one : t
val zero : t
val y_squared : BaseField.t -> BaseField.t
module Affine : sig ... end
val to_affine_or_infinity : C.t -> C.Affine.t
val to_affine_exn : C.t -> BaseField.t * BaseField.t
val of_affine : (BaseField.t * BaseField.t) -> C.t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : ( int -> t ) Bin_prot.Read.reader
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_t : t Bin_prot.Type_class.t
val (*) : ScalarField.t -> t -> t
val find_y : BaseField.t -> BaseField.t option
val point_near_x : BaseField.t -> C.t