Joins two semigroups.
forall S, a:
(S a, S a) => S a
where S is Semigroup
Joins two semigroups.
Joins two semigroups.
Joins two semigroups.
(semigroupLeft, semigroupRight) =>
isNewSemigroup(semigroupLeft) ? semigroupLeft[flConcat](semigroupRight)
: isOldSemigroup(semigroupLeft) ? warn(semigroupLeft.concat(semigroupRight))
: /*otherwise*/ unsupported(semigroupLeft)