Предположим, я хотел создать "опцию" для содержимого MaybeT m a:
maybeTContents = _Wrapped . something . _Just
Есть ли такой something?
maybeTContents будет, например, быть Traversal, когда m есть [],
но только a Setter, когда m есть (->) Int.
Пример использования:
> MaybeT [Just 1, Nothing, Just 2] ^.. maybeTContents
[1, 2]
> runMaybeT (MaybeT (Just . ('e':)) & maybeTContents %~ ('H':)) "llo"
Just "Hello"