on master help sign in
Exports
a5b7e74Csongor Kiss
examples/StarWars.hs+1
@@ -11,6 +11,7 @@ module StarWars where
11
11
12import GHC.Generics
12import GHC.Generics
13import Data.Generics.Record
13import Data.Generics.Record
14+import Data.Generics.Product
14
15
15data Episode = NEWHOPE | EMPIRE | JEDI
16data Episode = NEWHOPE | EMPIRE | JEDI
16 deriving (Generic, Show, Eq)
17 deriving (Generic, Show, Eq)
generic-lens.cabal+3−1
@@ -1,6 +1,6 @@
1name: generic-lens
1name: generic-lens
2
2
3−version: 0.2.0.0
3+version: 0.1.0.0
4
4
5synopsis: Generic data-structure operations exposed as lenses.
5synopsis: Generic data-structure operations exposed as lenses.
6
6
@@ -23,6 +23,7 @@ build-type: Simple
23-- Extra files to be distributed with the package, such as examples or a
23-- Extra files to be distributed with the package, such as examples or a
24-- README.
24-- README.
25extra-source-files: ChangeLog.md
25extra-source-files: ChangeLog.md
26+ , examples/StarWars.hs
26
27
27-- Constraint on the version of Cabal needed to build this package.
28-- Constraint on the version of Cabal needed to build this package.
28cabal-version: >= 1.10
29cabal-version: >= 1.10
@@ -30,6 +31,7 @@ cabal-version: >= 1.10
30
31
31library
32library
32 exposed-modules: Data.Generics.Record
33 exposed-modules: Data.Generics.Record
34+ , Data.Generics.Product
33 , Data.Generics.Record.Subtype
35 , Data.Generics.Record.Subtype
34 , Data.Generics.Record.HasField
36 , Data.Generics.Record.HasField
35 , Data.Generics.Product.HasFieldAt
37 , Data.Generics.Product.HasFieldAt
src/Data/Generics/Product.hsnew file+28
@@ -0,0 +1,28 @@
1+-----------------------------------------------------------------------------
2+-- |
3+-- Module : Data.Generics.Record
4+-- Copyright : (C) 2017 Csongor Kiss
5+-- License : BSD3
6+-- Maintainer : Csongor Kiss <kiss.csongor.kiss@gmail.com>
7+-- Stability : experimental
8+-- Portability : non-portable
9+--
10+-- Magic product operations using Generics
11+--
12+-- These classes need not be instantiated manually, as GHC can automatically
13+-- prove valid instances via Generics. Only the `Generic` class needs to
14+-- be derived (see examples).
15+--
16+-----------------------------------------------------------------------------
17+module Data.Generics.Product
18+ (
19+ -- * Magic lens
20+ HasFieldAt (..)
21+
22+ -- * Getter and setter
23+ , getFieldAt
24+ , setFieldAt
25+
26+ ) where
27+
28+import Data.Generics.Product.HasFieldAt
src/Data/Generics/Record.hs+1
@@ -18,6 +18,7 @@ module Data.Generics.Record
18 (
18 (
19 -- * Subtype relationship
19 -- * Subtype relationship
20 Subtype (..)
20 Subtype (..)
21+ , subtype
21
22
22 -- * Magic lens
23 -- * Magic lens
23 , HasField (..)
24 , HasField (..)