packages feed

xml-picklers 0.3.5 → 0.3.6

raw patch · 2 files changed

+20/−3 lines, 2 files

Files

src/Data/XML/Pickle/Basic.hs view
@@ -4,7 +4,8 @@  module Data.XML.Pickle.Basic where -import           Control.Applicative ((<$>))+import           Control.Applicative+import           Control.Monad (ap) import qualified Control.Category as Cat import           Control.Exception (Exception) import           Data.Maybe@@ -31,6 +32,11 @@                                              -- instead of @Just mempty@                           deriving (Functor, Show) ++instance Applicative (UnpickleResult t) where+    pure = return+    (<*>) = ap+ instance Monad (UnpickleResult t) where     return x = Result x Nothing     Result x r >>= f = case f x of@@ -72,11 +78,22 @@  printUPE :: UnpickleError -> [String] printUPE (ErrorMessage m) = [Text.unpack m]-printUPE (TraceStep t es) = ("-> " ++ showTr  t) : printUPE es printUPE (Variants vs) = concat                        . zipWith (:) (map (\x -> show x ++ ")") [(1 :: Int)..])                        . map (map ( "  " ++))                        $ (printUPE <$> vs)+printUPE (TraceStep t es) =+    let (n, es') = collapsSteps t es+    in  ("-> " ++ showTr  t+         ++ if n > 0+            then (" [x" ++ show (n+1) ++"]" )+            else "")+        : printUPE es'+  where+    collapsSteps t (TraceStep t' ns) | t == t'+        = let (n, ns') = collapsSteps t ns+          in (n+1, ns')+    collapsSteps _ es = (0, es)  ppUnpickleError :: UnpickleError -> String ppUnpickleError e = "Error while unpickling:\n"
xml-picklers.cabal view
@@ -1,6 +1,6 @@ Cabal-Version: >= 1.2 Name: xml-picklers-Version: 0.3.5+Version: 0.3.6 Synopsis: XML picklers based on xml-types, ported from hexpat-pickle Description:   A library of combinators that allows Haskell data structures to be pickled