ConstraintKinds 0.0.1.3 → 0.0.2.0
raw patch · 2 files changed
+15/−3 lines, 2 filesdep +dlistPVP ok
version bump matches the API change (PVP)
Dependencies added: dlist
API changes (from Hackage documentation)
+ Control.ConstraintKinds.Foldable: instance Foldable DList
Files
ConstraintKinds.cabal view
@@ -1,5 +1,5 @@ Name: ConstraintKinds-Version: 0.0.1.3+Version: 0.0.2.0 Synopsis: Repackages standard type classes with the ConstraintKinds extension Description: This module provides more flexible versions of common type classes that use the ConstraintKinds extension. This allows us to make types that require constraints instances of the popular classes. For example, we reimplement Functor and Foldable using the ContraintKinds style. This allows us to manipulate lists and unboxed vectors using the same functions. .@@ -14,12 +14,13 @@ source-repository head type: git location: https://github.com/mikeizbicki/ConstraintKinds- + Library Build-Depends: base >= 3 && < 5, ghc-prim,- vector >= 0.9+ vector >= 0.9,+ dlist >= 0.5 hs-source-dirs: src ghc-options: -rtsopts -auto-all -caf-all
src/Control/ConstraintKinds/Foldable.hs view
@@ -9,6 +9,7 @@ import Data.Maybe import Data.Monoid +import qualified Data.DList as D import qualified Data.Foldable as F import qualified Data.List as L import qualified Data.Traversable as T@@ -17,6 +18,7 @@ import qualified Data.Vector.Generic as G import Prelude hiding (foldl, foldr)+import qualified Prelude as P ------------------------------------------------------------------------------- -- Foldable@@ -98,3 +100,12 @@ foldl' = VU.foldl' foldr1 = VU.foldr1 foldl1 = VU.foldl1+++instance Foldable D.DList where+ type FoldableConstraint D.DList x = ()+ foldr = D.foldr+ foldl f a = {-Data.DList.-}F.foldl f a . D.toList+ foldl' f a = {-Data.DList.-}F.foldl' f a . D.toList+ foldr1 f = {-Data.DList.-}F.foldr1 f . D.toList+ foldl1 f = {-Data.DList.-}F.foldl1 f . D.toList