Functional abstractions to manipulate complex records in Elm - Iso, Prism, Lens, Optional, Traversal.
Traversal allows modifying multiple sub-elements, keeping the overlaying structure as is.
.getOption (maybe =|> id) (Just { id = 12 })
> 12
Fixing the documentation for (<|>) by @Bastes
(<|>) = Lens.compose
lens13 = lens1 <|> lens2 <|> lens3
Contributed by @Bastes