@@ -0,0 +1,42 @@
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE DuplicateRecordFields #-}
4+{-# LANGUAGE FlexibleContexts #-}
5+{-# LANGUAGE TypeApplications #-}
6+{-# LANGUAGE UndecidableInstances #-}
11+import Data.Generics.Record
12+import Data.Generics.Product
20+ } deriving (Show, Generic)
23+human = Human { name = "Tunyasz", age = 10, address = "London", eats = "Bread" }
29+ } deriving (Show, Generic)
31+growUp :: Animal -> Animal
32+growUp (Animal name age _) = Animal name (age + 10) "raw meat"
34+data WildAnimal = WildAnimal
39+ } deriving (Show, Generic)
41+raiseByWolves :: Human -> Human
42+raiseByWolves human = human & super %~ growUp