fun <A, B> laws( lens: Lens<A, B>, aGen: Arb<A>, bGen: Arb<B>, funcGen: Arb<(B) -> B>, eqa: (A, A) -> Boolean = { a, b -> a == b }, eqb: (B, B) -> Boolean = { a, b -> a == b }): List<Law> Warning: Use only when a Gen.constant() applies
fun <A, B> laws( lensGen: Arb<Lens<A, B>>, aGen: Arb<A>, bGen: Arb<B>, funcGen: Arb<(B) -> B>, eqa: (A, A) -> Boolean = { a, b -> a == b }, eqb: (B, B) -> Boolean = { a, b -> a == b }): List<Law>