simple match, if the first order function call returns true then there is a match, if the value is not present it never matches
the first order function performing the match
lazy, passes a function which then is lazily evaluated instead of a direct value
elvis like typesafe functional save resolver a typesafe option for getIfPresent
usage myOptional.resolve(value => value.subAttr.subAttr2).orElseLazy(....) if this is resolvable without any errors an Optional with the value is returned if not, then an Optional absent is returned, also if you return Optional absent it is flatmapped into absent
Staticfrom
optional implementation, an optional is basically an implementation of a Monad with additional syntactic sugar on top (Side - effect free, since value assignment is not allowed)