packages feed

descriptive 0.9.4 → 0.9.5

raw patch · 4 files changed

+30/−10 lines, 4 filesdep +semigroupsdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: semigroups

Dependency ranges changed: base

API changes (from Hackage documentation)

- Descriptive: consumerDesc :: Consumer s d m a -> StateT s m (Description d)
- Descriptive: consumerParse :: Consumer s d m a -> StateT s m (Result (Description d) a)
- Descriptive: instance (Eq e, Eq a) => Eq (Result e a)
- Descriptive: instance (Monoid a, Monad m) => Monoid (Consumer s d m a)
- Descriptive: instance (Ord e, Ord a) => Ord (Result e a)
- Descriptive: instance (Show e, Show a) => Show (Result e a)
- Descriptive: instance Bifunctor Result
- Descriptive: instance Eq Bound
- Descriptive: instance Eq a => Eq (Description a)
- Descriptive: instance Functor Description
- Descriptive: instance Monad m => Alternative (Consumer s d m)
- Descriptive: instance Monad m => Applicative (Consumer s d m)
- Descriptive: instance Monad m => Functor (Consumer s d m)
- Descriptive: instance Monoid (Description d)
- Descriptive: instance Monoid a => Monoid (Result (Description d) a)
- Descriptive: instance Show Bound
- Descriptive: instance Show a => Show (Description a)
- Descriptive.Form: instance Eq d => Eq (Form d)
- Descriptive.Form: instance Show d => Show (Form d)
- Descriptive.Formlet: formletIndex :: FormletState -> !Integer
- Descriptive.Formlet: formletMap :: FormletState -> (Map Integer Text)
- Descriptive.Formlet: instance Eq Formlet
- Descriptive.Formlet: instance Eq FormletState
- Descriptive.Formlet: instance Show Formlet
- Descriptive.Formlet: instance Show FormletState
- Descriptive.JSON: instance Data a => Data (Doc a)
- Descriptive.JSON: instance Eq a => Eq (Doc a)
- Descriptive.JSON: instance Show a => Show (Doc a)
- Descriptive.JSON: instance Typeable Doc
- Descriptive.Options: instance Eq a => Eq (Option a)
- Descriptive.Options: instance Show a => Show (Option a)
+ Descriptive: [consumerDesc] :: Consumer s d m a -> StateT s m (Description d)
+ Descriptive: [consumerParse] :: Consumer s d m a -> StateT s m (Result (Description d) a)
+ Descriptive: instance (GHC.Base.Semigroup a, GHC.Base.Monad m) => GHC.Base.Semigroup (Descriptive.Consumer s d m a)
+ Descriptive: instance (GHC.Base.Semigroup a, GHC.Base.Monoid a) => GHC.Base.Monoid (Descriptive.Result (Descriptive.Description d) a)
+ Descriptive: instance (GHC.Base.Semigroup a, GHC.Base.Monoid a, GHC.Base.Monad m) => GHC.Base.Monoid (Descriptive.Consumer s d m a)
+ Descriptive: instance (GHC.Classes.Eq e, GHC.Classes.Eq a) => GHC.Classes.Eq (Descriptive.Result e a)
+ Descriptive: instance (GHC.Classes.Ord e, GHC.Classes.Ord a) => GHC.Classes.Ord (Descriptive.Result e a)
+ Descriptive: instance (GHC.Show.Show e, GHC.Show.Show a) => GHC.Show.Show (Descriptive.Result e a)
+ Descriptive: instance Data.Bifunctor.Bifunctor Descriptive.Result
+ Descriptive: instance GHC.Base.Functor Descriptive.Description
+ Descriptive: instance GHC.Base.Monad m => GHC.Base.Alternative (Descriptive.Consumer s d m)
+ Descriptive: instance GHC.Base.Monad m => GHC.Base.Applicative (Descriptive.Consumer s d m)
+ Descriptive: instance GHC.Base.Monad m => GHC.Base.Functor (Descriptive.Consumer s d m)
+ Descriptive: instance GHC.Base.Monoid (Descriptive.Description d)
+ Descriptive: instance GHC.Base.Semigroup (Descriptive.Description d)
+ Descriptive: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Descriptive.Result (Descriptive.Description d) a)
+ Descriptive: instance GHC.Classes.Eq Descriptive.Bound
+ Descriptive: instance GHC.Classes.Eq a => GHC.Classes.Eq (Descriptive.Description a)
+ Descriptive: instance GHC.Show.Show Descriptive.Bound
+ Descriptive: instance GHC.Show.Show a => GHC.Show.Show (Descriptive.Description a)
+ Descriptive.Form: instance GHC.Classes.Eq d => GHC.Classes.Eq (Descriptive.Form.Form d)
+ Descriptive.Form: instance GHC.Show.Show d => GHC.Show.Show (Descriptive.Form.Form d)
+ Descriptive.Formlet: [formletIndex] :: FormletState -> !Integer
+ Descriptive.Formlet: [formletMap] :: FormletState -> (Map Integer Text)
+ Descriptive.Formlet: instance GHC.Classes.Eq Descriptive.Formlet.Formlet
+ Descriptive.Formlet: instance GHC.Classes.Eq Descriptive.Formlet.FormletState
+ Descriptive.Formlet: instance GHC.Show.Show Descriptive.Formlet.Formlet
+ Descriptive.Formlet: instance GHC.Show.Show Descriptive.Formlet.FormletState
+ Descriptive.JSON: instance Data.Data.Data a => Data.Data.Data (Descriptive.JSON.Doc a)
+ Descriptive.JSON: instance GHC.Classes.Eq a => GHC.Classes.Eq (Descriptive.JSON.Doc a)
+ Descriptive.JSON: instance GHC.Show.Show a => GHC.Show.Show (Descriptive.JSON.Doc a)
+ Descriptive.Options: instance GHC.Classes.Eq a => GHC.Classes.Eq (Descriptive.Options.Option a)
+ Descriptive.Options: instance GHC.Show.Show a => GHC.Show.Show (Descriptive.Options.Option a)

Files

descriptive.cabal view
@@ -1,5 +1,5 @@ name:                descriptive-version:             0.9.4+version:             0.9.5 synopsis:            Self-describing consumers/parsers; forms, cmd-line args, JSON, etc. description:         Self-describing consumers/parsers. See the README.md for more information. It is currently EXPERIMENTAL. stability:           Experimental@@ -33,6 +33,8 @@                    , text                    , transformers                    , vector+  if impl(ghc < 8.0.1)+    build-depends: semigroups  test-suite test     type: exitcode-stdio-1.0
src/Descriptive.hs view
@@ -6,6 +6,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE CPP #-}  -- | Descriptive parsers. @@ -30,7 +31,9 @@ import Control.Monad.Identity import Control.Monad.State.Strict import Data.Bifunctor-import Data.Monoid+#if __GLASGOW_HASKELL__ < 804+import Data.Semigroup+#endif  -------------------------------------------------------------------------------- -- Running@@ -74,11 +77,14 @@   | None   deriving (Show,Eq,Functor) +instance Semigroup (Description d) where+  (<>) None x = x+  (<>) x None = x+  (<>) x y = And x y+ instance Monoid (Description d) where   mempty = None-  mappend None x = x-  mappend x None = x-  mappend x y = And x y+  mappend = (<>)  -- | The bounds of a many-consumable thing. data Bound@@ -229,9 +235,8 @@               [])   where redescribe = Bounded minb UnlimitedBound -instance (Monoid a) => Monoid (Result (Description d) a) where-  mempty = Succeeded mempty-  mappend x y =+instance (Semigroup a) => Semigroup (Result (Description d) a) where+  x <> y =     case x of       Failed e -> Failed e       Continued e ->@@ -245,11 +250,18 @@           Continued e -> Continued e           Succeeded b -> Succeeded (a <> b) -instance (Monoid a, Monad m) => Monoid (Consumer s d m a) where+instance (Semigroup a, Monoid a) => Monoid (Result (Description d) a) where+  mempty = Succeeded mempty+  mappend = (<>)++instance (Semigroup a, Monad m) => Semigroup (Consumer s d m a) where+  (<>) = liftA2 (<>)++instance (Semigroup a, Monoid a, Monad m) => Monoid (Consumer s d m a) where   mempty =     consumer (return mempty)              (return mempty)-  mappend = liftA2 (<>)+  mappend = (<>)  -------------------------------------------------------------------------------- -- Combinators
src/Descriptive/Char.hs view
@@ -1,12 +1,15 @@ {-# LANGUAGE TupleSections #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE CPP #-}  -- | Consuming form a list of characters.  module Descriptive.Char where +#if __GLASGOW_HASKELL__ < 802 import           Data.Traversable+#endif import           Descriptive  import           Control.Monad.State.Strict
src/Descriptive/Options.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE CPP #-}  -- | Command-line options parser. @@ -29,7 +30,9 @@ import           Control.Monad.State.Strict import           Data.Char import           Data.List+#if __GLASGOW_HASKELL__ < 804 import           Data.Monoid+#endif import           Data.Text (Text) import qualified Data.Text as T