NOTE: the latest version is 4.2.0
This accessor combinator lets you access values inside Maybe. see try_ for a flattening lens.
try_
import Base exposing (try, map) import Dict exposing (Dict) import Dict.Accessors as Dict import Maybe.Accessors as Maybe import Lens as L maybeRecord : { foo : Maybe { bar : Maybe {stuff : Maybe Int} }, qux : Maybe { bar : Maybe Int } } maybeRecord = { foo = Just { bar = Just { stuff = Just 2 } } , qux = Nothing } try (L.foo << Maybe.just_ << L.bar << Maybe.just_ << L.stuff) maybeRecord --> Just (Just 2) try (L.qux << Maybe.just_ << L.bar) maybeRecord --> Nothing map (L.foo << Maybe.just_ << L.bar << Maybe.just_ << L.stuff << Maybe.just_) ((+) 1) maybeRecord --> {foo = Just {bar = Just { stuff = Just 3 }}, qux = Nothing} map (L.qux << Maybe.just_ << L.bar << Maybe.just_) ((+) 1) maybeRecord --> {foo = Just {bar = Just {stuff = Just 2}}, qux = Nothing}
This accessor combinator lets you access values inside Maybe. see
try_for a flattening lens.