public function concat(Semigroup $value);
/** * concatM :: a -> a -> a * * @param Semigroup $a * @param Semigroup $b * * @return Semigroup */ function concatM(Semigroup $a, Semigroup $b) { return call_user_func_array(curryN(2, function (Semigroup $a, Semigroup $b) { return $a->concat($b); }), func_get_args()); }