ixset-typed 0.3.1 → 0.3.1.1
raw patch · 4 files changed
+34/−7 lines, 4 filesdep ~template-haskell
Dependency ranges changed: template-haskell
Files
- CHANGELOG.md +10/−0
- ixset-typed.cabal +3/−3
- src/Data/IxSet/Typed.hs +20/−3
- src/Data/IxSet/Typed/Ix.hs +1/−1
CHANGELOG.md view
@@ -1,3 +1,13 @@+0.3.1.1 (2017-08-14)+====================++* GHC 8.2 compatibility.++0.3.1 (2016-06-21)+==================++* GHC 8.0 compatibility.+ 0.3 (2014-07-23) ================
ixset-typed.cabal view
@@ -1,5 +1,5 @@ name: ixset-typed-version: 0.3.1+version: 0.3.1.1 synopsis: Efficient relational queries on Haskell sets. description: This Haskell package provides a data structure of sets that are indexed@@ -26,7 +26,7 @@ build-type: Simple cabal-version: >= 1.10 extra-source-files: CHANGELOG.md-tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1+tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1, GHC == 8.2.1 source-repository head type: git@@ -38,7 +38,7 @@ deepseq >= 1.3 && < 2, safecopy >= 0.8 && < 1, syb >= 0.4 && < 1,- template-haskell >= 2.8 && < 2.12+ template-haskell >= 2.8 && < 2.13 hs-source-dirs: src exposed-modules:
src/Data/IxSet/Typed.hs view
@@ -1,10 +1,13 @@-{-# LANGUAGE UndecidableInstances, OverlappingInstances, FlexibleInstances,+{-# LANGUAGE UndecidableInstances, FlexibleInstances, MultiParamTypeClasses, TemplateHaskell, RankNTypes, FunctionalDependencies, DeriveDataTypeable, GADTs, CPP, ScopedTypeVariables, KindSignatures, DataKinds, TypeOperators, StandaloneDeriving, TypeFamilies, ScopedTypeVariables, ConstraintKinds, FunctionalDependencies, FlexibleContexts, BangPatterns #-}+#if __GLASGOW_HASKELL__ < 710+{-# LANGUAGE OverlappingInstances #-}+#endif #if __GLASGOW_HASKELL__ >= 800 {-# LANGUAGE UndecidableSuperClasses #-} #endif@@ -308,11 +311,19 @@ -- ^ what to do with the other indices -> IxList ixs a -> IxList ixs a -instance Ord ix => IsIndexOf ix (ix ': ixs) where+instance+#if __GLASGOW_HASKELL__ >= 710+ {-# OVERLAPPING #-}+#endif+ Ord ix => IsIndexOf ix (ix ': ixs) where access (x ::: _xs) = x mapAt fh ft (x ::: xs) = fh x ::: mapIxList ft xs -instance IsIndexOf ix ixs => IsIndexOf ix (ix' ': ixs) where+instance+#if __GLASGOW_HASKELL__ >= 710+ {-# OVERLAPPABLE #-}+#endif+ IsIndexOf ix ixs => IsIndexOf ix (ix' ': ixs) where access (_x ::: xs) = access xs mapAt fh ft (x ::: xs) = ft x ::: mapAt fh ft xs @@ -358,9 +369,11 @@ -> IxList ixs a -> IxList ixs a -> IxList ixs a zipWithIxList' _ Nil Nil = Nil zipWithIxList' f (x ::: xs) (y ::: ys) = f x y !::: zipWithIxList' f xs ys+#if __GLASGOW_HASKELL__ < 800 zipWithIxList' _ _ _ = error "Data.IxSet.Typed.zipWithIxList: impossible" -- the line above is actually impossible by the types; it's just there -- to please avoid the warning resulting from the exhaustiveness check+#endif -------------------------------------------------------------------------- -- Various instances for 'IxSet'@@ -554,7 +567,11 @@ names = map tyVarBndrToName binders typeCon = List.foldl' appT (conT typeName) (map varT names)+#if MIN_VERSION_template_haskell(2,10,0)+ mkCtx c = List.foldl' appT (conT c)+#else mkCtx = classP+#endif dataCtxConQ = concat [[mkCtx ''Data [varT name], mkCtx ''Ord [varT name]] | name <- names] fullContext = do dataCtxCon <- sequence dataCtxConQ
src/Data/IxSet/Typed/Ix.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE UndecidableInstances, OverlappingInstances, FlexibleInstances,+{-# LANGUAGE UndecidableInstances, FlexibleInstances, MultiParamTypeClasses, TemplateHaskell, PolymorphicComponents, DeriveDataTypeable,ExistentialQuantification, KindSignatures, StandaloneDeriving, GADTs #-}