sig
  exception Trivial
  module type Law =
    sig
      module Arg : Types.Mono.Arbitrary
      val desc : string
      val law : Arg.t -> bool
    end
  module type Config =
    sig
      val num_iterations : int
      val size_arg : int option
      val max_trivial_percentage : float
    end
  module Check :
    functor (Conf : Config->
      functor (L : Law->
        sig val desc : string val test : Random.State.t -> unit end
end