air 2013.6.22 → 2013.7.18
raw patch · 4 files changed
+32/−4 lines, 4 filesdep +textPVP ok
version bump matches the API change (PVP)
Dependencies added: text
API changes (from Hackage documentation)
+ Air.Data.Default: instance Default Text
+ Air.Data.Monoid: instance Monoid Text
- Air.Light: reduce :: (a -> a -> a) -> [a] -> a
+ Air.Light: reduce :: (Default a, Foldable t) => (a -> a -> a) -> t a -> a
- Air.Light: reduce' :: (a -> a -> a) -> [a] -> a
+ Air.Light: reduce' :: (Default a, Foldable t) => (a -> a -> a) -> t a -> a
Files
- air.cabal +2/−1
- src/Air/Data/Default.hs +10/−0
- src/Air/Data/Monoid.hs +13/−0
- src/Air/Light.hs +7/−3
air.cabal view
@@ -1,5 +1,5 @@ Name: air-Version: 2013.6.22+Version: 2013.7.18 Build-type: Simple Synopsis: air Description: An alternative Haskell Prelude library.@@ -27,6 +27,7 @@ , dlist , mtl , time+ , text hs-source-dirs: src/
src/Air/Data/Default.hs view
@@ -13,6 +13,10 @@ import Data.Int (Int8, Int16, Int32, Int64) import Data.Word (Word8, Word16, Word32, Word64) import Data.Time (Day(..), TimeOfDay, midnight, UTCTime(..), DiffTime, secondsToDiffTime)++import qualified Data.Text as ST+import qualified Data.Text.Lazy as LT+ -- | A class for types with a default value. class Default a where -- | The default value for this type.@@ -47,6 +51,12 @@ instance Default L.ByteString where def = L.empty++instance Default ST.Text where+ def = ST.empty++instance Default LT.Text where+ def = LT.empty instance Default Int8 where def = 0
src/Air/Data/Monoid.hs view
@@ -14,6 +14,9 @@ import Data.Int (Int8, Int16, Int32, Int64) import Data.Word (Word8, Word16, Word32, Word64) +import qualified Data.Text as ST+import qualified Data.Text.Lazy as LT+ class Monoid a where mempty :: a -- ^ Identity of 'mappend'@@ -138,6 +141,16 @@ instance Monoid (LB.ByteString) where mempty = LB.empty mappend = LB.append++instance Monoid (LT.Text) where+ mempty = LT.empty+ mappend = LT.append++instance Monoid (ST.Text) where+ mempty = ST.empty+ mappend = ST.append++ instance (Ord a) => Monoid (Map.Map a b) where mempty = Map.empty
src/Air/Light.hs view
@@ -27,7 +27,9 @@ import qualified Data.ByteString.Char8 as StrictByteString import Data.Maybe (listToMaybe) +import Air.Data.Default (def, Default) + -- base DSL {-# INLINE (.) #-} (.) :: a -> (a -> b) -> b@@ -114,13 +116,15 @@ cherry_pick :: (Integral i) => [i] -> [a] -> [Maybe a] cherry_pick ids xs = ids.map(\i -> xs.at i) -reduce, reduce' :: (a -> a -> a) -> [a] -> a-reduce = L.foldl1-reduce' = L.foldl1' + inject, inject' :: (Foldable t) => a -> (a -> b -> a) -> t b -> a inject = flip foldl inject' = flip foldl'++reduce, reduce' :: (Default a, Foldable t) => (a -> a -> a) -> t a -> a+reduce = inject def+reduce' = inject' def select, reject :: (a -> Bool) -> [a] -> [a] select = filter