| 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 | 
Data.Generics.Sum.Constructors
Contents
Description
Derive constructor-name-based prisms generically.
- class AsConstructor ctor a s | s ctor -> a where
Prisms
class AsConstructor ctor a s | s ctor -> a where Source #
Sums that have a constructor with a given name.
Methods
A prism that projects a named constructor from a sum. Compatible with the
  lens package's Prism type.
>>>dog ^? _Ctor @"Dog"Just (MkDog {name = "Shep", age = 3})
>>>dog ^? _Ctor @"Cat"Nothing
>>>cat ^? _Ctor @"Cat"Just ("Mog", 5)
>>>_Ctor @"Cat" # ("Garfield", 6) :: AnimalCat ("Garfield", 6)