Copyright | (C) 2017 Csongor Kiss |
---|---|
License | BSD3 |
Maintainer | Csongor Kiss <kiss.csongor.kiss@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Derive constructor-field-type-based prisms generically.
Prisms
class AsType a s where Source #
Sums that have a constructor with a field of the given type.
A prism that projects a constructor uniquely identifiable by the type of
its field. Compatible with the lens package's Prism
type.
>>>
dog ^? _Typed @Dog
Just (MkDog {name = "Shep", age = 3})>>>
dog ^? _Typed @Cat
Nothing>>>
duck ^? _Typed @Age
Just 2