Agreed with mgsloan. Another language that has those properties is Scala. Maybe is equivalent to Option[T], which is either Some[T](value) or None. You can then use pattern matching to branch based on the value. Scala has also novel component construction mechanism with abstract type members, traits, explicit self-type annotations and mixin composition ;).
↧