Documentation
¶
Index ¶
- func AssertHomomorphism[HKTA, HKTB, HKTAB, A, B any](t *testing.T, eq E.Eq[HKTB], fofa func(A) HKTA, fofb func(B) HKTB, ...) func(a A) bool
- func AssertIdentity[HKTA, HKTAA, A any](t *testing.T, eq E.Eq[HKTA], fof func(func(A) A) HKTAA, ...) func(fa HKTA) bool
- func AssertInterchange[HKTA, HKTB, HKTAB, HKTABB, A, B any](t *testing.T, eq E.Eq[HKTB], fofa func(A) HKTA, fofb func(B) HKTB, ...) func(a A) bool
- func AssertLaws[HKTA, HKTB, HKTC, HKTAA, HKTAB, HKTBC, HKTAC, HKTABB, HKTABAC, A, B, C any](t *testing.T, eqa E.Eq[HKTA], eqb E.Eq[HKTB], eqc E.Eq[HKTC], ...) func(a A) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertHomomorphism ¶
func AssertHomomorphism[HKTA, HKTB, HKTAB, A, B any](t *testing.T, eq E.Eq[HKTB], fofa func(A) HKTA, fofb func(B) HKTB, fofab func(func(A) B) HKTAB, fap func(HKTAB, HKTA) HKTB, ab func(A) B, ) func(a A) bool
Applicative homomorphism law
A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))
func AssertIdentity ¶
func AssertIdentity[HKTA, HKTAA, A any](t *testing.T, eq E.Eq[HKTA], fof func(func(A) A) HKTAA, fap func(HKTAA, HKTA) HKTA, ) func(fa HKTA) bool
Applicative identity law
A.ap(A.of(a => a), fa) <-> fa
func AssertInterchange ¶
func AssertInterchange[HKTA, HKTB, HKTAB, HKTABB, A, B any](t *testing.T, eq E.Eq[HKTB], fofa func(A) HKTA, fofb func(B) HKTB, fofab func(func(A) B) HKTAB, fofabb func(func(func(A) B) B) HKTABB, fapab func(HKTAB, HKTA) HKTB, fapabb func(HKTABB, HKTAB) HKTB, ab func(A) B, ) func(a A) bool
Applicative interchange law
A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)
func AssertLaws ¶
func AssertLaws[HKTA, HKTB, HKTC, HKTAA, HKTAB, HKTBC, HKTAC, HKTABB, HKTABAC, A, B, C any](t *testing.T, eqa E.Eq[HKTA], eqb E.Eq[HKTB], eqc E.Eq[HKTC], fofa func(A) HKTA, fofb func(B) HKTB, fofaa func(func(A) A) HKTAA, fofab func(func(A) B) HKTAB, fofbc func(func(B) C) HKTBC, fofabb func(func(func(A) B) B) HKTABB, faa func(HKTA, func(A) A) HKTA, fab func(HKTA, func(A) B) HKTB, fac func(HKTA, func(A) C) HKTC, fbc func(HKTB, func(B) C) HKTC, fmap func(HKTBC, func(func(B) C) func(func(A) B) func(A) C) HKTABAC, fapaa func(HKTAA, HKTA) HKTA, fapab func(HKTAB, HKTA) HKTB, fapbc func(HKTBC, HKTB) HKTC, fapac func(HKTAC, HKTA) HKTC, fapabb func(HKTABB, HKTAB) HKTB, fapabac func(HKTABAC, HKTAB) HKTAC, ab func(A) B, bc func(B) C, ) func(a A) bool
AssertLaws asserts the apply laws `identity`, `composition`, `associative composition`, 'applicative identity', 'homomorphism', 'interchange'
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.