pretty-simple-1.0.0.0: example/Example/Data.hs
{-# LANGUAGE DeriveDataTypeable #-}
module Example.Data where
import Data.Data (Data)
import Data.Typeable (Typeable)
data Foo = Foo
{ foo1 :: Integer
, foo2 :: [String]
, foo3 :: Double
} deriving (Data, Eq, Read, Show, Typeable)
data Bar = Bar
{ bar1 :: Integer
, bar2 :: [Foo]
, bar3 :: Double
} deriving (Data, Eq, Read, Show, Typeable)
data Baz = Baz
{ baz1 :: Bar
, baz2 :: [Baz]
} deriving (Data, Eq, Read, Show, Typeable)
foo :: Foo
foo = Foo 3 fooList 3.3
bar :: Bar
bar = Bar 10 (replicate 2 foo) 10.55
bazLevel1 :: Baz
bazLevel1 = Baz bar []
bazLevel2 :: Baz
bazLevel2 = Baz bar $ replicate 5 bazLevel1
baz :: Baz
baz = Baz bar $ replicate 5 bazLevel2
fooList :: [String]
fooList =
[ "hello"
, "goodbye"
, "dog"
, "cat"
, "fox"
, "beaver"
]