*
* @return Semigroup
*/
- public function concat(self $value);
+ public function concat(self $value): self;
}
/**
* @inheritdoc
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
if (!($value instanceof Maybe)) {
throw new TypeMismatchError($value, Maybe::class);
/**
* @inheritdoc
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
return $value;
}
*
* @throws TypeMismatchError
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
if ($value instanceof ListtNil) {
return $this;
*
* @throws TypeMismatchError
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
if ($value instanceof Listt) {
return $value;
/**
* @inheritdoc
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
if ($value instanceof self) {
return self::of($this->extract() * $value->extract());
/**
* @inheritdoc
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
if ($value instanceof self) {
return self::of($this->value . $value->extract());
/**
* @inheritdoc
*/
- public function concat(FantasyLand\Semigroup $value)
+ public function concat(FantasyLand\Semigroup $value): FantasyLand\Semigroup
{
if ($value instanceof self) {
return self::of($this->extract() + $value->extract());