finite 1.4.1.2 → 1.4.1.4
raw patch · 2 files changed
+15/−11 lines, 2 filesdep ~Cabaldep ~QuickCheckdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: Cabal, QuickCheck, base, containers, hashable, template-haskell
API changes (from Hackage documentation)
+ Finite: ($dmelements) :: (Finite b a, Generic a, GFinite b (Rep a), FiniteBounds b) => T a -> Int
+ Finite: ($dmindex) :: (Finite b a, Generic a, GFinite b (Rep a), FiniteBounds b) => a -> Int
+ Finite: ($dmvalue) :: (Finite b a, Generic a, GFinite b (Rep a), FiniteBounds b) => Int -> a
- Finite: (|/=|) :: (Finite b a, FiniteBounds b) => a -> a -> Bool
+ Finite: (|/=|) :: Finite b a => a -> a -> Bool
- Finite: (|<=|) :: (Finite b a, FiniteBounds b) => a -> a -> Bool
+ Finite: (|<=|) :: Finite b a => a -> a -> Bool
- Finite: (|<|) :: (Finite b a, FiniteBounds b) => a -> a -> Bool
+ Finite: (|<|) :: Finite b a => a -> a -> Bool
- Finite: (|==|) :: (Finite b a, FiniteBounds b) => a -> a -> Bool
+ Finite: (|==|) :: Finite b a => a -> a -> Bool
- Finite: (|>=|) :: (Finite b a, FiniteBounds b) => a -> a -> Bool
+ Finite: (|>=|) :: Finite b a => a -> a -> Bool
- Finite: (|>|) :: (Finite b a, FiniteBounds b) => a -> a -> Bool
+ Finite: (|>|) :: Finite b a => a -> a -> Bool
- Finite: bounds :: (Finite b a, FiniteBounds b) => T a -> (a, a)
+ Finite: bounds :: Finite b a => T a -> (a, a)
- Finite: class GFinite b f
+ Finite: class GFinite b (f :: Type -> Type)
- Finite: complement :: (Finite b a, FiniteBounds b) => [a] -> [a]
+ Finite: complement :: Finite b a => [a] -> [a]
- Finite: elements :: (Finite b a, Generic a, GFinite b (Rep a), FiniteBounds b) => T a -> Int
+ Finite: elements :: Finite b a => T a -> Int
- Finite: final :: (Finite b a, FiniteBounds b) => T a -> a
+ Finite: final :: Finite b a => T a -> a
- Finite: index :: (Finite b a, Generic a, GFinite b (Rep a), FiniteBounds b) => a -> Int
+ Finite: index :: Finite b a => a -> Int
- Finite: initial :: (Finite b a, FiniteBounds b) => T a -> a
+ Finite: initial :: Finite b a => T a -> a
- Finite: next :: (Finite b a, FiniteBounds b) => a -> a
+ Finite: next :: Finite b a => a -> a
- Finite: offset :: (Finite b a, FiniteBounds b) => T a -> Int
+ Finite: offset :: Finite b a => T a -> Int
- Finite: previous :: (Finite b a, FiniteBounds b) => a -> a
+ Finite: previous :: Finite b a => a -> a
- Finite: type FiniteBounds b = (?bounds :: b)
+ Finite: type FiniteBounds b = ?bounds :: b
- Finite: value :: (Finite b a, Generic a, GFinite b (Rep a), FiniteBounds b) => Int -> a
+ Finite: value :: Finite b a => Int -> a
- Finite: values :: (Finite b a, FiniteBounds b) => [a]
+ Finite: values :: Finite b a => [a]
Files
- finite.cabal +10/−10
- src/lib/Finite/PowerSet.hs +5/−1
finite.cabal view
@@ -1,5 +1,5 @@ name: finite-version: 1.4.1.2+version: 1.4.1.4 synopsis: Finite ranges via types description: A framework for capturing finite ranges with types, where the sizes of the ranges are not@@ -34,12 +34,12 @@ -fignore-asserts build-depends:- base >=4.7 && <4.15+ base >=4.7 && <4.22 , array >=0.5 && <0.6- , containers >=0.5 && <0.7- , hashable >=1.2- , template-haskell >=2.11- , QuickCheck+ , containers >=0.5 && <0.8+ , hashable >=1.2 && <1.6+ , template-haskell >=2.11 && <2.24+ , QuickCheck >=2.10 && <=2.16 exposed-modules: Finite@@ -75,10 +75,10 @@ src/test build-depends:- base >=4.7 && <4.15- , hashable >=1.2- , Cabal >= 2.4- , QuickCheck+ base >=4.7 && <4.22+ , hashable >=1.2 && <1.6+ , Cabal >=2.4 && < 3.15+ , QuickCheck >=2.10 && <=2.16 , finite default-language:
src/lib/Finite/PowerSet.hs view
@@ -28,8 +28,10 @@ import Finite.Type ( T+ , (#) , (\#) , (#<<)+ , v2t ) import Finite.Class@@ -84,7 +86,9 @@ powsum (a,2*p,n-1,xs) value n =- let bs = map (value . (+ (offset #<< head bs))) $ bin n+ let ty :: T [a] -> T a+ ty _ = (#)+ bs = map (value . (+ (offset $ ty $ v2t bs))) $ bin n in assert (n >= 0 && n < (elements #<< bs)) bs offset = offset . ((\#) :: T (PowerSet a) -> T a)