mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-23 00:27:49 +02:00
19 lines
379 B
Go
19 lines
379 B
Go
package eq
|
|
|
|
import (
|
|
M "github.com/ibm/fp-go/monoid"
|
|
S "github.com/ibm/fp-go/semigroup"
|
|
)
|
|
|
|
func Semigroup[A any]() S.Semigroup[Eq[A]] {
|
|
return S.MakeSemigroup(func(x, y Eq[A]) Eq[A] {
|
|
return FromEquals(func(a, b A) bool {
|
|
return x.Equals(a, b) && y.Equals(a, b)
|
|
})
|
|
})
|
|
}
|
|
|
|
func Monoid[A any]() M.Monoid[Eq[A]] {
|
|
return M.MakeMonoid(Semigroup[A]().Concat, Empty[A]())
|
|
}
|