const User = daggy.tagged('User', ['name', 'emails', 'isVerified', 'loginTimes'])
User.prototype.concat = function(that) {
return User(
this.name.concat(that.name),
this.emails.concat(that.emails),
this.isVerified.concat(that.isVerified),
this.loginTimes.concat(that.loginTimes)
)
}
User(First('CT'), ['
[email protected]'], Any(false), Sum(6))
.concat(
User(First('CT Wu'), ['
[email protected]'], Any(true), Sum(13))
)
#// = User(First("CT"), ["
[email protected]", "
[email protected]"], Any(true), Sum(19))
User as an Instance of Semigroup