packages feed

data-accessor 0.2.2.8 → 0.2.3

raw patch · 5 files changed

+97/−33 lines, 5 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

- Data.Accessor.BinaryRead: instance (Data.Accessor.BinaryRead.ByteStream s, GHC.Base.Monad m) => Data.Accessor.BinaryRead.ByteSource (Control.Monad.Trans.State.Lazy.StateT s m)
- Data.Accessor.BinaryRead: instance Data.Accessor.BinaryRead.ByteCompatible GHC.Word.Word8
- Data.Accessor.BinaryRead: instance Data.Accessor.BinaryRead.ByteCompatible byte => Data.Accessor.BinaryRead.ByteStream [byte]
- Data.Accessor: (^:) :: T r a -> (a -> a) -> (r -> r)
+ Data.Accessor: (^:) :: T r a -> (a -> a) -> r -> r
- Data.Accessor: (^=) :: T r a -> a -> (r -> r)
+ Data.Accessor: (^=) :: T r a -> a -> r -> r
- Data.Accessor.Basic: (^:) :: T r a -> (a -> a) -> (r -> r)
+ Data.Accessor.Basic: (^:) :: T r a -> (a -> a) -> r -> r
- Data.Accessor.Basic: (^=) :: T r a -> a -> (r -> r)
+ Data.Accessor.Basic: (^=) :: T r a -> a -> r -> r
- Data.Accessor.Basic: modify :: T r a -> (a -> a) -> (r -> r)
+ Data.Accessor.Basic: modify :: T r a -> (a -> a) -> r -> r
- Data.Accessor.BinaryRead: Parser :: (r, s) -> Maybe (r, s) -> Parser s r
+ Data.Accessor.BinaryRead: Parser :: ((r, s) -> Maybe (r, s)) -> Parser s r
- Data.Accessor.MonadState: liftT :: (Monad m) => T r s -> StateT s m a -> StateT r m a
+ Data.Accessor.MonadState: liftT :: Monad m => T r s -> StateT s m a -> StateT r m a

Files

data-accessor.cabal view
@@ -1,5 +1,5 @@ Name:             data-accessor-Version:          0.2.2.8+Version:          0.2.3 License:          BSD3 License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>, Luke Palmer <lrpalmer@gmail.com>@@ -75,9 +75,11 @@   RegExp   src-3/Data/Accessor/Private.hs   src-4/Data/Accessor/Private.hs+  src-fail/before-4.13/Data/Accessor/ByteSource.hs+  src-fail/from-4.13/Data/Accessor/ByteSource.hs  Source-Repository this-  Tag:         0.2.2.8+  Tag:         0.2.3   Type:        darcs   Location:    http://code.haskell.org/data-accessor/core/ @@ -85,6 +87,9 @@   Type:        darcs   Location:    http://code.haskell.org/data-accessor/core/ +Flag monadFail+  description: Check whether Monad class is split into Monad and MonadFail.+ Flag category   description: Check whether Arrow class is split into Arrow and Category. @@ -100,10 +105,15 @@       containers >=0.1 && <0.7     If flag(category)       Hs-Source-Dirs: src-4-      Build-Depends: base >= 4 && <5+      If flag(monadFail)+        Hs-Source-Dirs: src-fail/from-4.13+        Build-Depends: base >=4.13 && <5+      Else+        Hs-Source-Dirs: src-fail/before-4.13+        Build-Depends: base >=4 && <4.13     Else       Hs-Source-Dirs: src-3-      Build-Depends: base >= 2 && <4+      Build-Depends: base >=2 && <4   Else     Hs-Source-Dirs: src-3     Build-Depends:@@ -123,6 +133,7 @@     Data.Accessor.BinaryRead     Data.Accessor.MonadState   Other-Modules:+    Data.Accessor.ByteSource     Data.Accessor.Example     Data.Accessor.Private     Data.Accessor.MonadStatePrivate
+ src-fail/before-4.13/Data/Accessor/ByteSource.hs view
@@ -0,0 +1,35 @@+module Data.Accessor.ByteSource where++import qualified Control.Monad.Trans.State as State+import Control.Monad.Trans.State (StateT, )+import Control.Monad.Trans.Class (lift, )++import Data.Word (Word8, )+++class ByteCompatible byte where+   toByte :: byte -> Word8++instance ByteCompatible Word8 where+   toByte = id+++class ByteStream s where+   getWord8 :: Monad m => s -> m (Word8, s)++instance ByteCompatible byte => ByteStream [byte] where+   getWord8 xs =+      case xs of+         (c:cs) -> return (toByte c, cs)+         _ -> fail "ByteStream: no more byte available"+++class Monad source => ByteSource source where+   readWord8 :: source Word8++instance (ByteStream s, Monad m) => ByteSource (StateT s m) where+   readWord8 =+      do xs <- State.get+         (c,cs) <- lift (getWord8 xs)+         State.put cs+         return c
+ src-fail/from-4.13/Data/Accessor/ByteSource.hs view
@@ -0,0 +1,34 @@+module Data.Accessor.ByteSource where++import qualified Control.Monad.Trans.State as State+import Control.Monad.Trans.State (StateT, )+import Control.Monad.Trans.Class (lift, )+import Data.Word (Word8, )+++class ByteCompatible byte where+   toByte :: byte -> Word8++instance ByteCompatible Word8 where+   toByte = id+++class ByteStream s where+   getWord8 :: MonadFail m => s -> m (Word8, s)++instance ByteCompatible byte => ByteStream [byte] where+   getWord8 xs =+      case xs of+         (c:cs) -> return (toByte c, cs)+         _ -> fail "ByteStream: no more byte available"+++class Monad source => ByteSource source where+   readWord8 :: source Word8++instance (ByteStream s, MonadFail m) => ByteSource (StateT s m) where+   readWord8 =+      do xs <- State.get+         (c,cs) <- lift (getWord8 xs)+         State.put cs+         return c
src/Data/Accessor/Basic.hs view
@@ -165,7 +165,7 @@ {- | Flipped version of '($)'. -}--- could be re-exported from utility-ht+-- ToDo: could be re-exported from utility-ht ($%) :: a -> (a -> b) -> b ($%) = flip ($) 
src/Data/Accessor/BinaryRead.hs view
@@ -4,13 +4,22 @@ This is still only for demonstration and might be of not much use and you should not rely on the interface. -}-module Data.Accessor.BinaryRead where+module Data.Accessor.BinaryRead (+   Stream,+   C(any),+   ByteSource(readWord8),+   ByteStream(getWord8),+   ByteCompatible(toByte),+   Parser(Parser, runParser),+   field,+   record,+   ) where  import qualified Data.Accessor.Basic as Accessor+import Data.Accessor.ByteSource+         (ByteSource(..), ByteStream(..), ByteCompatible(..))  import qualified Control.Monad.Trans.State as State-import Control.Monad.Trans.State (StateT, )-import Control.Monad.Trans.Class (lift, ) import Control.Monad (liftM, ) import Data.Word (Word8, ) import Data.Char (chr, )@@ -22,31 +31,6 @@  class C a where    any :: ByteSource source => source a--class Monad source => ByteSource source where-   readWord8 :: source Word8--class ByteStream s where-   getWord8 :: Monad m => s -> m (Word8, s)--instance ByteCompatible byte => ByteStream [byte] where-   getWord8 xs =-      case xs of-         (c:cs) -> return (toByte c, cs)-         _ -> fail "ByteStream: no more byte available"--class ByteCompatible byte where-   toByte :: byte -> Word8--instance ByteCompatible Word8 where-   toByte = id--instance (ByteStream s, Monad m) => ByteSource (StateT s m) where-   readWord8 =-      do xs <- State.get-         (c,cs) <- lift (getWord8 xs)-         State.put cs-         return c  instance C Word8 where    any = readWord8