[generator improvements
ekmett@gmail.com**20090327052053] {
hunk ./Data/Monoid/Generator.hs 10
- , Keys(Keys)
- , Values(Values)
+ , Keys(Keys, getKeys)
+ , Values(Values, getValues)
+ , Char8(Char8, getChar8)
hunk ./Data/Monoid/Generator.hs 19
-import qualified Data.ByteString as Strict
--- import qualified Data.ByteString.Char8 as Strict8
-import qualified Data.ByteString.Lazy as Lazy
--- import qualified Data.ByteString.Lazy.Char8 as Lazy8
+import qualified Data.ByteString as Strict (ByteString, foldl')
+import qualified Data.ByteString.Char8 as Strict8 (foldl')
+import qualified Data.ByteString.Lazy as Lazy (ByteString, toChunks)
+import qualified Data.ByteString.Lazy.Char8 as Lazy8 (toChunks)
hunk ./Data/Monoid/Generator.hs 24
+import Data.FingerTree (Measured, FingerTree)
hunk ./Data/Monoid/Generator.hs 37
-import Data.Sequence (Seq)
-import Data.FingerTree (Measured, FingerTree)
hunk ./Data/Monoid/Generator.hs 57
-{-
-instance Generator Strict8.ByteString where
- type Elem Strict8.ByteString = Char
- mapTo f = Strict8.foldl' (\a -> snoc a . f)
+newtype Char8 c = Char8 { getChar8 :: c }
hunk ./Data/Monoid/Generator.hs 59
-instance Generator Lazy.ByteString where
- type Elem Lazy8.ByteString = Char
- mapReduce f = fold . parMap rwhnf (mapReduce f) . Lazy8.toChunks
--}
+instance Generator (Char8 Strict.ByteString) where
+ type Elem (Char8 Strict.ByteString) = Char
+ mapTo f m = Strict8.foldl' (\a -> snoc a . f) m . getChar8
+
+instance Generator (Char8 Lazy.ByteString) where
+ type Elem (Char8 Lazy.ByteString) = Char
+ mapReduce f = fold . parMap rwhnf (mapReduce f . Char8) . Lazy8.toChunks . getChar8
hunk ./Data/Monoid/Generator.hs 96
- type Elem (Map k v) = (k,v)
+ type Elem (Map k v) = (k,v)
hunk ./Data/Monoid/Generator.hs 121
-{-- SPECIALIZE reduce :: (Char `Reducer` m) => Strict8.ByteString -> m --}
-{-- SPECIALIZE reduce :: (Char `Reducer` m) => Lazy8.ByteString -> m --}
+{-# SPECIALIZE reduce :: (Char `Reducer` m) => Char8 Strict.ByteString -> m #-}
+{-# SPECIALIZE reduce :: (Char `Reducer` m) => Char8 Lazy.ByteString -> m #-}
hunk ./dist/doc/html/monoids/Data-Monoid-Generator.html 345
+> (Char8 ByteString)
Generator (Char8 ByteString) |
Generator c | | | Constructors | | Instances | Generator (Char8 ByteString) | Generator (Char8 ByteString) | Char8 | 1 (Type/Class) | Data.Monoid.Generator, Data.Monoid.Generator.Combinators | 2 (Data Constructor) | Data.Monoid.Generator, Data.Monoid.Generator.Combinators | getChar8Data.Monoid.Generator, Data.Monoid.Generator.Combinators | getKeys | Data.Monoid.Generator, Data.Monoid.Generator.Combinators | | getValues | Data.Monoid.Generator, Data.Monoid.Generator.Combinators | , Keys(Keys)
- , Values(Values)
- ) where
-
-import Data.Word (Word8)
-import Data.Text (Text)
-import Data.Foldable (fold,foldMap)
-import qualified Data.Text as Text
-import qualified Data.ByteString as Strict
-
-import qualified Data.ByteString.Lazy as Lazy
-
-import qualified Data.Sequence as Seq
-import Data.Sequence (Seq)
-import qualified Data.Set as Set
-import Data.Set (Set)
-import qualified Data.IntSet as IntSet
-import Data.IntSet (IntSet)
-import qualified Data.IntMap as IntMap
-import Data.IntMap (IntMap)
-import qualified Data.Map as Map
-import Data.Map (Map)
-
-import Control.Parallel.Strategies
-import Data.Monoid.Reducer
-import Data.Sequence (Seq)
-import Data.FingerTree (Measured, FingerTree)
+ , Keys(Keys, getKeys)
+ , Values(Values, getValues)
+ , Char8(Char8, getChar8)
+ ) where
+
+import Data.Word (Word8)
+import Data.Text (Text)
+import Data.Foldable (fold,foldMap)
+import qualified Data.Text as Text
+import qualified Data.ByteString as Strict (ByteString, foldl')
+import qualified Data.ByteString.Char8 as Strict8 (foldl')
+import qualified Data.ByteString.Lazy as Lazy (ByteString, toChunks)
+import qualified Data.ByteString.Lazy.Char8 as Lazy8 (toChunks)
+import qualified Data.Sequence as Seq
+import Data.FingerTree (Measured, FingerTree)
+import Data.Sequence (Seq)
+import qualified Data.Set as Set
+import Data.Set (Set)
+import qualified Data.IntSet as IntSet
+import Data.IntSet (IntSet)
+import qualified Data.IntMap as IntMap
+import Data.IntMap (IntMap)
+import qualified Data.Map as Map
+import Data.Map (Map)
+
+import Control.Parallel.Strategies
+import Data.Monoid.Reducer
hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator.html 65
-
+newtype Char8 c = Char8 { getChar8 :: c }
+
+instance Generator (Char8 Strict.ByteString) where
+ type Elem (Char8 Strict.ByteString) = Char
+ mapTo f m = Strict8.foldl' (\a -> snoc a . f) m . getChar8
+
+instance Generator (Char8 Lazy.ByteString) where
+ type Elem (Char8 Lazy.ByteString) = Char
+ mapReduce f = fold . parMap rwhnf (mapReduce f . Char8) . Lazy8.toChunks . getChar8
hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator.html 104
- type Elem (Map k v) = (k,v)
+ type Elem (Map k v) = (k,v)
hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator.html 129
-
-
+
+
}
|
|
|