on master help sign in
0.3.0.1
commit6fd4bd977f01792b87c9b3aac4a40c044776f450 authorCsongor Kiss <kiss.csongor.kiss@gmail.com> dateThu 3 Aug 2017, 20:57 (9 years ago) parent138fbd9
12 files changed+29−31
.gitignore+2 generic-lens.cabal+1−1 src/Data/Generics/Internal/Families/Count.hs+5−7 src/Data/Generics/Internal/Families/Has.hs+5−7 src/Data/Generics/Internal/HList.hs+1−1 src/Data/Generics/Internal/Lens.hs+1−1 src/Data/Generics/Product/Fields.hs+2−2 src/Data/Generics/Product/Positions.hs+3−3 src/Data/Generics/Product/Subtype.hs+1−1 src/Data/Generics/Product/Typed.hs+2−2 src/Data/Generics/Sum/Constructors.hs+2−2 src/Data/Generics/Sum/Typed.hs+4−4
.gitignore+2
@@ -1,3 +1,5 @@
11tags
22dist*
33.stack-work
4+.cabal-sandbox
5+cabal.sandbox.config
generic-lens.cabal+1−1
@@ -1,5 +1,5 @@
11name: generic-lens
2−version: 0.3.0.0
2+version: 0.3.0.1
33synopsis: Generic data-structure operations exposed as lenses.
44description: This package uses the GHC 8 Generic representation to derive various operations on data structures with a lens interface, including structural subtype relationship between records and positional indexing into arbitrary product types.
55
src/Data/Generics/Internal/Families/Count.hs+5−7
@@ -21,8 +21,10 @@ module Data.Generics.Internal.Families.Count
2121 ) where
2222
2323import GHC.Generics
24−import GHC.TypeLits
25−import Data.Type.Bool (If)
24+
25+import Data.Type.Bool (If)
26+import Data.Type.Equality (type (==))
27+import GHC.TypeLits (TypeError, ErrorMessage (..))
2628
2729import Data.Generics.Internal.HList
2830
@@ -55,14 +57,10 @@ type family CountPartialType t f :: Count where
5557 CountPartialType t (l :+: r)
5658 = CountPartialType t l <|> CountPartialType t r
5759 CountPartialType t (C1 m f)
58− = If (Equals t (ListToTuple (GCollect f))) 'One 'None
60+ = If (t == ListToTuple (GCollect f)) 'One 'None
5961 CountPartialType t (D1 _ f)
6062 = CountPartialType t f
6163
62−type family Equals a b where
63− Equals a a = 'True
64− Equals _ _ = 'False
65−
6664data Count
6765 = None
6866 | One
src/Data/Generics/Internal/Families/Has.hs+5−7
@@ -21,9 +21,11 @@ module Data.Generics.Internal.Families.Has
2121 , HasCtorP
2222 ) where
2323
24−import Data.Type.Bool (type (||), type (&&))
2524import GHC.Generics
26−import GHC.TypeLits
25+
26+import Data.Type.Bool (type (||), type (&&))
27+import Data.Type.Equality (type (==))
28+import GHC.TypeLits (Symbol, TypeError, ErrorMessage (..))
2729
2830import Data.Generics.Internal.HList
2931
@@ -81,14 +83,10 @@ type family HasPartialTypeTupleP a f :: Bool where
8183 HasPartialTypeTupleP t (l :+: r)
8284 = HasPartialTypeTupleP t l || HasPartialTypeTupleP t r
8385 HasPartialTypeTupleP t (C1 m f)
84− = Equals t (ListToTuple (GCollect f))
86+ = t == ListToTuple (GCollect f)
8587 HasPartialTypeTupleP t _
8688 = 'False
8789
88−type family Equals a b where
89− Equals a a = 'True
90− Equals _ _ = 'False
91−
9290type family HasCtorP (ctor :: Symbol) f :: Bool where
9391 HasCtorP ctor (C1 ('MetaCons ctor _ _) _)
9492 = 'True
src/Data/Generics/Internal/HList.hs+1−1
@@ -29,7 +29,7 @@ module Data.Generics.Internal.HList
2929 , GCollectible (..)
3030 ) where
3131
32−import Data.Kind
32+import Data.Kind (Type)
3333import GHC.Generics
3434
3535data HList (xs :: [Type]) where
src/Data/Generics/Internal/Lens.hs+1−1
@@ -18,7 +18,7 @@ module Data.Generics.Internal.Lens where
1818import Control.Applicative (Const(..))
1919import Data.Functor.Identity (Identity(..))
2020import Data.Profunctor (Choice(right'), Profunctor(dimap))
21−import GHC.Generics ((:*:)(..), Generic(..), K1(..), M1(..), Rep, (:+:)(..))
21+import GHC.Generics ((:*:)(..), (:+:)(..), Generic(..), K1(..), M1(..), Rep)
2222
2323-- | Type alias for lens
2424type Lens' s a
src/Data/Generics/Product/Fields.hs+2−2
@@ -36,9 +36,9 @@ module Data.Generics.Product.Fields
3636import Data.Generics.Internal.Families
3737import Data.Generics.Internal.Lens
3838
39−import Data.Kind
39+import Data.Kind (Constraint, Type)
4040import GHC.Generics
41−import GHC.TypeLits
41+import GHC.TypeLits (Symbol, ErrorMessage(..), TypeError)
4242
4343-- $example
4444-- @
src/Data/Generics/Product/Positions.hs+3−3
@@ -36,10 +36,10 @@ module Data.Generics.Product.Positions
3636
3737import Data.Generics.Internal.Lens
3838
39−import Data.Kind
40−import Data.Type.Bool
39+import Data.Kind (Constraint, Type)
40+import Data.Type.Bool (If, type (&&), Not)
4141import GHC.Generics
42−import GHC.TypeLits
42+import GHC.TypeLits (type (<=?), type (+), Nat, TypeError, ErrorMessage(..))
4343
4444-- $example
4545-- @
src/Data/Generics/Product/Subtype.hs+1−1
@@ -57,7 +57,7 @@ import Data.Generics.Internal.Families
5757import Data.Generics.Internal.Lens
5858import Data.Generics.Product.Fields
5959
60−import Data.Kind
60+import Data.Kind (Type)
6161import GHC.Generics
6262
6363-- |Structural subtype relationship
src/Data/Generics/Product/Typed.hs+2−2
@@ -36,9 +36,9 @@ module Data.Generics.Product.Typed
3636import Data.Generics.Internal.Families
3737import Data.Generics.Internal.Lens
3838
39−import Data.Kind
39+import Data.Kind (Constraint, Type)
4040import GHC.Generics
41−import GHC.TypeLits
41+import GHC.TypeLits (TypeError, ErrorMessage (..))
4242
4343-- $example
4444-- @
src/Data/Generics/Sum/Constructors.hs+2−2
@@ -34,9 +34,9 @@ import Data.Generics.Internal.Families
3434import Data.Generics.Internal.HList
3535import Data.Generics.Internal.Lens
3636
37−import Data.Kind
37+import Data.Kind (Constraint, Type)
3838import GHC.Generics
39−import GHC.TypeLits
39+import GHC.TypeLits (Symbol, TypeError, ErrorMessage (..))
4040
4141-- $example
4242-- @
src/Data/Generics/Sum/Typed.hs+4−4
@@ -36,14 +36,14 @@ module Data.Generics.Sum.Typed
3636 , GAsType (..)
3737 ) where
3838
39+import Data.Kind
40+import GHC.Generics
41+import GHC.TypeLits (TypeError, ErrorMessage (..))
42+
3943import Data.Generics.Internal.Families
4044import Data.Generics.Internal.HList
4145import Data.Generics.Internal.Lens
4246
43−import Data.Kind
44−import GHC.Generics
45−import GHC.TypeLits
46−
4747-- $example
4848-- @
4949-- module Example where