on master help sign in
Add more examples
f76283dCsongor Kiss
examples/Examples.hsnew file+42
@@ -0,0 +1,42 @@
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE DuplicateRecordFields #-}
4+{-# LANGUAGE FlexibleContexts #-}
5+{-# LANGUAGE TypeApplications #-}
6+{-# LANGUAGE UndecidableInstances #-}
7+
8+module Examples where
9+
10+import GHC.Generics
11+import Data.Generics.Record
12+import Data.Generics.Product
13+import Control.Lens
14+
15+data Human = Human
16+ { name :: String
17+ , age :: Int
18+ , address :: String
19+ , eats :: String
20+ } deriving (Show, Generic)
21+
22+human :: Human
23+human = Human { name = "Tunyasz", age = 10, address = "London", eats = "Bread" }
24+
25+data Animal = Animal
26+ { name :: String
27+ , age :: Int
28+ , eats :: String
29+ } deriving (Show, Generic)
30+
31+growUp :: Animal -> Animal
32+growUp (Animal name age _) = Animal name (age + 10) "raw meat"
33+
34+data WildAnimal = WildAnimal
35+ { name :: String
36+ , age :: Int
37+ , eats :: String
38+ , hunts :: Animal
39+ } deriving (Show, Generic)
40+
41+raiseByWolves :: Human -> Human
42+raiseByWolves human = human & super %~ growUp