@@ -7,16 +7,21 @@ object MonoidKLaws {
7
7
8
8
inline fun <reified F > laws (SGK : MonoidK <F >, AP : Applicative <F >, EQ : Eq <HK <F , Int >>): List <Law > =
9
9
SemigroupKLaws .laws(SGK , AP , EQ ) + listOf (
10
- Law (" MonoidK Laws: Left identity" , { monoidKLeftIdentity(SGK , AP , EQ ) }),
11
- Law (" MonoidK Laws: Right identity" , { monoidKRightIdentity(SGK , AP , EQ ) }))
10
+ Law (" MonoidK Laws: Left identity" , { monoidKLeftIdentity(SGK , AP ::pure , EQ ) }),
11
+ Law (" MonoidK Laws: Right identity" , { monoidKRightIdentity(SGK , AP ::pure , EQ ) }))
12
12
13
- inline fun <reified F > monoidKLeftIdentity (SGK : MonoidK <F >, AP : Applicative <F >, EQ : Eq <HK <F , Int >>): Unit =
14
- forAll(genApplicative(Gen .int(), AP ), { fa: HK <F , Int > ->
13
+ inline fun <reified F > laws (SGK : MonoidK <F >, crossinline f : (Int ) -> HK <F , Int >, EQ : Eq <HK <F , Int >>): List <Law > =
14
+ SemigroupKLaws .laws(SGK , f, EQ ) + listOf (
15
+ Law (" MonoidK Laws: Left identity" , { monoidKLeftIdentity(SGK , f, EQ ) }),
16
+ Law (" MonoidK Laws: Right identity" , { monoidKRightIdentity(SGK , f, EQ ) }))
17
+
18
+ inline fun <reified F > monoidKLeftIdentity (SGK : MonoidK <F >, crossinline f : (Int ) -> HK <F , Int >, EQ : Eq <HK <F , Int >>): Unit =
19
+ forAll(genConstructor(Gen .int(), f), { fa: HK <F , Int > ->
15
20
SGK .combineK(SGK .empty<Int >(), fa).equalUnderTheLaw(fa, EQ )
16
21
})
17
22
18
- inline fun <reified F > monoidKRightIdentity (SGK : MonoidK <F >, AP : Applicative < F >, EQ : Eq <HK <F , Int >>): Unit =
19
- forAll(genApplicative (Gen .int(), AP ), { fa: HK <F , Int > ->
23
+ inline fun <reified F > monoidKRightIdentity (SGK : MonoidK <F >, crossinline f : ( Int ) -> HK < F , Int >, EQ : Eq <HK <F , Int >>): Unit =
24
+ forAll(genConstructor (Gen .int(), f ), { fa: HK <F , Int > ->
20
25
SGK .combineK(fa, SGK .empty<Int >()).equalUnderTheLaw(fa, EQ )
21
26
})
22
27
}
0 commit comments