functor (N : Numeric.S->
  sig
    type t = N.t
    val gen : ?g:g -> t -> t
    val gen_r : ?g:g -> t -> t -> t
    val gen_bits : ?g:g -> ?msb:int -> int -> t
  end