Module Bastet.Test
module type TEST = sig ... endmodule type ARBITRARY = sig ... endmodule type ARBITRARY_A = sig ... endmodule type QUICKCHECK = sig ... endmodule Array : functor (Arr : ArrayF.ARRAY) -> functor (T : TEST) -> functor (Q : QUICKCHECK with type t = T.test) -> functor (A : ARBITRARY with type t = int array and type 'a arbitrary = 'a Q.arbitrary) -> functor (AA : ARBITRARY_A with type 'a t = 'a array and type 'a arbitrary = 'a Q.arbitrary) -> sig ... endmodule Bool : functor (T : TEST) -> functor (Q : QUICKCHECK with type t = T.test) -> functor (A : ARBITRARY with type t = bool and type 'a arbitrary = 'a Q.arbitrary) -> sig ... endmodule Float : functor (E : Interface.EQ with type t = float) -> functor (T : TEST) -> functor (Q : QUICKCHECK with type t = T.test) -> functor (A : ARBITRARY with type t = float and type 'a arbitrary = 'a Q.arbitrary) -> sig ... endmodule List : functor (T : TEST) -> functor (Q : QUICKCHECK with type t = T.test) -> functor (A : ARBITRARY with type t = int list and type 'a arbitrary = 'a Q.arbitrary) -> functor (AA : ARBITRARY_A with type 'a t = 'a list and type 'a arbitrary = 'a Q.arbitrary) -> sig ... endmodule Int : functor (T : TEST) -> functor (Q : QUICKCHECK with type t = T.test) -> functor (A : ARBITRARY with type t = int and type 'a arbitrary = 'a Q.arbitrary) -> sig ... endmodule Option : functor (T : TEST) -> functor (Q : QUICKCHECK with type t = T.test) -> functor (A : ARBITRARY with type t = int option and type 'a arbitrary = 'a Q.arbitrary) -> functor (AA : ARBITRARY_A with type 'a t = 'a option and type 'a arbitrary = 'a Q.arbitrary) -> sig ... end