2023-07-07 22:31:06 +02:00
|
|
|
package semigroup
|
|
|
|
|
|
|
|
import (
|
2023-07-18 15:57:54 +02:00
|
|
|
M "github.com/IBM/fp-go/magma"
|
2023-07-07 22:31:06 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func GenericMonadConcatAll[GA ~[]A, A any](s Semigroup[A]) func(GA, A) A {
|
|
|
|
return M.GenericMonadConcatAll[GA](M.MakeMagma(s.Concat))
|
|
|
|
}
|
|
|
|
|
|
|
|
func GenericConcatAll[GA ~[]A, A any](s Semigroup[A]) func(A) func(GA) A {
|
|
|
|
return M.GenericConcatAll[GA](M.MakeMagma(s.Concat))
|
|
|
|
}
|
|
|
|
|
|
|
|
func MonadConcatAll[A any](s Semigroup[A]) func([]A, A) A {
|
|
|
|
return GenericMonadConcatAll[[]A](s)
|
|
|
|
}
|
|
|
|
|
|
|
|
func ConcatAll[A any](s Semigroup[A]) func(A) func([]A) A {
|
|
|
|
return GenericConcatAll[[]A](s)
|
|
|
|
}
|