Module Alg_structs_qcheck__.Semigroup

module Alg = Alg_structs
module type S = sig ... end

The Alg.Semigroup.S interface extended with a way of generating arbitrary QCheck values.

val test : (module S) -> QCheck.Test.t list

test impl_name (module S) is a list of QCheck property based tests that check whether the Semigroup Laws hold for the given implementation S.

val tests : (module S) list -> QCheck.Test.t list

test implementations is a flattened list of tests generated for each implementation in implementations