1
0
mirror of https://github.com/IBM/fp-go.git synced 2025-11-27 22:28:29 +02:00
Files
fp-go/monoid/apply.go
Dr. Carsten Leue c07df5c771 initial checkin
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
2023-07-07 22:31:06 +02:00

20 lines
319 B
Go

package monoid
import (
S "github.com/ibm/fp-go/semigroup"
)
func ApplicativeMonoid[A, HKTA, HKTFA any](
_of func(A) HKTA,
_map func(HKTA, func(A) func(A) A) HKTFA,
_ap func(HKTFA, HKTA) HKTA,
m Monoid[A],
) Monoid[HKTA] {
return MakeMonoid(
S.ApplySemigroup[A](_map, _ap, m).Concat,
_of(m.Empty()),
)
}