packages feed

lazy-async-1.0.0.0: test/Test/Person.hs

{- |

"Higher-kinded datatypes", for tests
involving functions like 'memoizeRank2'

-}

module Test.Person where

import Data.String     (String)
import Numeric.Natural (Natural)
import Rank2.TH        (deriveAll)

data Person f =
  Person
    { name     :: f String
    , age      :: f Natural
    , location :: Location f
    }

data Location f =
  Location
    { city  :: f String
    , state :: f String
    }

$(deriveAll ''Location)
$(deriveAll ''Person)