Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Main
  2. import qualified Data.Map.Strict as Map
  3. import Control.Lens
  4. import Control.Lens.Prism
  5.  
  6. data A1 = A1 Int deriving Show
  7. data A2 = A2 Int deriving Show
  8. data A3 = A3 Int deriving Show
  9. data UnifiedA = A1a A1 | A2a A2 | A3a A3 deriving Show
  10. data Foo = UnifiedA UnifiedA | Foo2 Char
  11.  
  12. makePrisms ''Foo
  13. makePrisms ''UnifiedA
  14.  
  15. x = A1 5
  16. fx = UnifiedA (A1a x)
  17. fx ^? _UnifiedA . _A1a --Just (A1 5), hoorah
  18. fx ^? _A1a -- nope
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement