It's a really common operation to unwrap the optionality out of a type, e.g. turning String? into String.
I'd propose (in psuedocode):
interface RBS::Types::_TypeBase
# @overridable
#: -> _TypeBase
def unwrap_optional
self # not optional, nothing to unwrap.
end
end
class RBS::Types::Optional
# @override
#: -> _TypeBase
def unwrap_optional
type
end
end
It's a really common operation to unwrap the optionality out of a type, e.g. turning
String?intoString.I'd propose (in psuedocode):