HList 0.2 → 0.2.1
raw patch · 9 files changed
+44/−29 lines, 9 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Data.HList.Label2: data (HNat x) => Label x ns desc
+ Data.HList.Label2: data Label x ns desc
- Data.HList.Label3: data (HNat x) => Label x ns desc
+ Data.HList.Label3: data Label x ns desc
Files
- Data/HList/GhcExperiments.hs +1/−1
- Data/HList/GhcRecord.hs +9/−5
- Data/HList/GhcSyntax.hs +9/−17
- Data/HList/HOccurs.hs +1/−1
- Data/HList/Label2.hs +1/−1
- Data/HList/Label3.hs +1/−1
- Data/HList/TypeEqGeneric2.hs +1/−1
- HList.cabal +1/−1
- README +20/−1
Data/HList/GhcExperiments.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE KindSignatures,MultiParamTypeClasses,FunctionalDependencies,FlexibleInstances, FlexibleContexts, UndecidableInstances #-}+{-# LANGUAGE KindSignatures,MultiParamTypeClasses,FunctionalDependencies,FlexibleInstances, FlexibleContexts, UndecidableInstances, OverlappingInstances #-} {- (C) 2004, Oleg Kiselyov, Ralf Laemmel, Keean Schupke
Data/HList/GhcRecord.hs view
@@ -1,7 +1,11 @@ {-# OPTIONS_GHC -fno-warn-missing-signatures #-}-{-# LANGUAGE ScopedTypeVariables, EmptyDataDecls, FunctionalDependencies, - MultiParamTypeClasses, UndecidableInstances, PatternSignatures,- FlexibleInstances, FlexibleContexts #-}+{-# LANGUAGE EmptyDataDecls #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FunctionalDependencies #-} {- The HList library@@ -261,14 +265,14 @@ hConsTcName = mkTyCon "HList.HCons" instance (Typeable x, Typeable y) => Typeable (HCons x y) where- typeOf (HCons x y)+ typeOf ~(HCons x y) = mkTyConApp hConsTcName [ typeOf x, typeOf y ] recordTcName :: TyCon recordTcName = mkTyCon "HList.Record" instance Typeable x => Typeable (Record x) where- typeOf (Record x)+ typeOf ~(Record x) = mkTyConApp recordTcName [ typeOf x ] hFieldTcName :: TyCon
Data/HList/GhcSyntax.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fno-warn-missing-signatures #-} {-# LANGUAGE FlexibleContexts #-} {-@@ -8,14 +9,10 @@ module Data.HList.GhcSyntax where -import Data.HList.HArray (HUpdateAtHNat()) import Data.HList.FakePrelude import Data.HList.HListPrelude-import Data.HList.HOccurs import Data.HList.Record import Data.HList.GhcRecord-import Data.HList.TIP-import Data.HList.TIC {-----------------------------------------------------------------------------}@@ -99,22 +96,17 @@ --} r .-. l = hDeleteAtLabel l r -infixl 2 .@.+infixr 2 .@. {-|- (.@.) -- Update a field with a particular value. Another record-level- operation, so it has the same fixity as (.*.) and (.-.). No- real list analogue, since there is no Prelude defined+ (.@.) -- Update a field with a particular value.+ Same fixity as (.*.) so that extensions and updates can be chained.+ There is no real list analogue, since there is no Prelude defined update. - record1 .@. label1 .=. value1-- record1 .@. label1 .=. record2 .!. label1+ label1 .=. value1 .@. record1 - record1 .*. label1 .=. record2 .!. label1- .*. label2 .=. record2 .!. label2 - .@. label1 .=. value2 -}-r .@. f@(LVPair v) = hUpdateAtLabel (labelLVPair f) v r+f@(LVPair v) .@. r = hUpdateAtLabel (labelLVPair f) v r infixr 2 .^. {-|@@ -131,12 +123,12 @@ -} f@(LVPair v) .<. r = hTPupdateAtLabel (labelLVPair f) v r -infixl 2 .<++.+infixl 1 .<++. {-| (.<++.) -- Similar to list append, so give this slightly lower fixity than (.*.), so we can write: - record1 .*. field1 .<++. record2 .*. field2+ field1 .=. value .*. record1 .<++. record2 -} r .<++. r' = hLeftUnion r r'
Data/HList/HOccurs.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE EmptyDataDecls, MultiParamTypeClasses, FlexibleInstances,- FlexibleContexts, UndecidableInstances #-}+ FlexibleContexts, OverlappingInstances, UndecidableInstances #-} {- The HList library
Data/HList/Label2.hs view
@@ -33,7 +33,7 @@ -- Labels are type-level naturals -data HNat x => Label x ns desc -- labels are exclusively type-level entities+data Label x ns desc -- labels are exclusively type-level entities -- Construct the first label
Data/HList/Label3.hs view
@@ -34,7 +34,7 @@ -- Labels are type-level naturals-data HNat x => Label x ns desc -- labels are exclusively type-level entities+data Label x ns desc -- labels are exclusively type-level entities -- Public constructors for labels
Data/HList/TypeEqGeneric2.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, FlexibleInstances, UndecidableInstances #-}+{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, FlexibleInstances, UndecidableInstances, OverlappingInstances #-} {- The HList library
HList.cabal view
@@ -1,5 +1,5 @@ Name: HList-Version: 0.2+Version: 0.2.1 Category: Data Synopsis: Heterogeneous lists Description: HList is a record system providing strongly typed heterogenous lists, records,
README view
@@ -1,6 +1,25 @@-(C) 2004--2005, Oleg Kiselyov, Ralf Laemmel, Keean Schupke+(C) 2004--2010, Oleg Kiselyov, Ralf Laemmel, Keean Schupke The HList library and samples++----------------------------------------------------------------------++Getting the code++> darcs get http://darcs.haskell.org/HList++----------------------------------------------------------------------++Pushing changes++You need an account at darcs.haskell.org++> cd HList+> darcs pull user@darcs.haskell.org:/srv/darcs/HList+> darcs record+> darcs push++---------------------------------------------------------------------- This distribution covers all essential issues discussed in the HList paper. Additional examples and HList operations are provided.