stack-prism-0.1: ExampleTH.hs
{-# LANGUAGE TemplateHaskell #-}
module Example where
import Data.StackPrism
import Data.StackPrism.TH
data Person = Person
{ name :: String
, gender :: Gender
, age :: Int
, location :: Coords
} deriving (Eq, Show)
data Gender = Male | Female
deriving (Eq, Show)
data Coords = Coords { lat :: Float, lng :: Float }
deriving (Eq, Show)
deriveStackPrisms ''Person
deriveStackPrisms ''Gender
deriveStackPrisms ''Coords