packages feed

liblawless 0.17.3 → 0.18.0

raw patch · 11 files changed

+61/−124 lines, 11 filesdep +concurrent-machinesdep +monad-controldep ~managedPVP ok

version bump matches the API change (PVP)

Dependencies added: concurrent-machines, monad-control

Dependency ranges changed: managed

API changes (from Hackage documentation)

- Arbitrary: instance Test.QuickCheck.Arbitrary.Arbitrary (Textual.SepList.SepList GHC.Types.Char)
- Set: singleton :: a -> Set a
- Textual.SepList: instance (GHC.Classes.Ord a, Data.Binary.Class.Binary a, Data.Textual.Printable a) => Data.Binary.Class.Binary (Textual.SepList.SepList' (Data.List.NonEmpty.NonEmpty a))
- Textual.SepList: instance Data.Foldable.Foldable Textual.SepList.SepList'
- Textual.SepList: instance Data.Semigroup.Semigroup (Textual.SepList.SepList' (Data.List.NonEmpty.NonEmpty a))
- Textual.SepList: instance Data.Textual.Printable a => Data.Textual.Printable (Textual.SepList.SepList' (Data.List.NonEmpty.NonEmpty a))
- Textual.SepList: instance Data.Textual.Printable a => GHC.Show.Show (Textual.SepList.SepList a)
- Textual.SepList: instance GHC.Classes.Eq (Textual.SepList.SepList' (Data.List.NonEmpty.NonEmpty a))
- Textual.SepList: instance GHC.Classes.Ord (Textual.SepList.SepList' (Data.List.NonEmpty.NonEmpty a))
- Textual.SepList: sepList :: forall a. (Ord a, Binary a, Printable a) => a -> SepList a
- Textual.SepList: slItems :: Lens' (SepList' (NonEmpty a)) (NonEmpty a)
- Textual.SepList: type SepList a = SepList' (NonEmpty a)
+ Machine: (⇜) :: Monad m => ProcessT m b c -> MachineT m k b -> MachineT m k c
+ Machine: (⇝) :: Monad m => MachineT m k b -> ProcessT m b c -> MachineT m k c
+ Machine: infixl 9 ⇝
+ Machine: infixr 9 ⇜
+ Path: infixl 7 <++>
+ Path: infixr 5 </>
+ Set: sing :: Getter a (Set a)
- IO: using :: Managed a -> m a
+ IO: using :: MonadManaged m => Managed a -> m a
- Time: buildTime :: TimeLocale -> [(Char, String)] -> Maybe t
+ Time: buildTime :: ParseTime t => TimeLocale -> [(Char, String)] -> Maybe t
- Time: formatCharacter :: Char -> Maybe (TimeLocale -> Maybe NumericPadOption -> t -> String)
+ Time: formatCharacter :: FormatTime t => Char -> Maybe (TimeLocale -> Maybe NumericPadOption -> t -> String)

Files

Source/Arbitrary.hs view
@@ -16,15 +16,10 @@ import Test.QuickCheck (Arbitrary(..), listOf1, suchThat) import Text import Time-import Textual.SepList import Data.Time import Data.Time.Clock() import Data.Time.Calendar() import Data.Text (Text)--instance Arbitrary (SepList Char) where-    arbitrary =-        foldl1Of folded (<>) ∘  over traversed sepList <$> listOf1 arbitrary  instance Arbitrary Text where     arbitrary = view packed <$> listOf1 arbitrary
Source/Lawless.hs view
@@ -9,13 +9,14 @@     module Control.Lens,     module UNI,     module Prelude.Unicode,+    module Control.Applicative.Unicode,     module Data.Bool,     module Data.Eq,     module Data.Ord,     module Data.Function,     module Data.Maybe,     module Data.Either,-    module Data.Semigroup,+    module Data.Monoid,     module Control.Applicative     ) where @@ -35,14 +36,14 @@ import Data.Either (Either(..)) import Control.Applicative import Data.Bool hiding (bool)-import Data.Semigroup+import Data.Monoid -import Control.Applicative.Unicode as UNI import Control.Arrow.Unicode as UNI import Control.Monad.Unicode as UNI+import Control.Applicative.Unicode ((⊛)) import Data.Bool.Unicode as UNI import Data.Eq.Unicode as UNI-import Data.Foldable.Unicode as UNI import Data.Function.Unicode as UNI+import Data.Monoid.Unicode as UNI import Data.Ord.Unicode as UNI import Prelude.Unicode ((⋅))
Source/Machine.hs view
@@ -1,6 +1,35 @@ module Machine (-    module Data.Machine-    )-where+    module Data.Machine.Concurrent,+    (⇝),+    (⇜)+    ) where -import Data.Machine+import Lawless hiding ((<~), (~>))+import Data.Machine.Concurrent+import Control.Monad+import Control.Monad.Trans.Control++infixr 9 ⇜+infixl 9 ⇝+infixr 7 ↢+infixl 7 ↣+infixr 6 ⧻+infixr 6 ⫴++(⇝) ∷ Monad m ⇒ MachineT m k b → ProcessT m b c → MachineT m k c+(⇝) = (~>)++(⇜) ∷ Monad m ⇒ ProcessT m b c → MachineT m k b → MachineT m k c+(⇜) = (<~)++(↣) ∷ MonadBaseControl IO m ⇒ MachineT m k b → ProcessT m b c → MachineT m k c+(↣) = (>~>)++(↢) ∷ MonadBaseControl IO m ⇒ ProcessT m b c → MachineT m k b → MachineT m k c+(↢) = (<~<)++(⧻) ∷ ∀ m a b c d. MonadBaseControl IO m ⇒ ProcessT m a b → ProcessT m c d → ProcessT m (Either a c) (Either b d)+(⧻) = splitSum++(⫴) ∷ ∀ m a b r. MonadBaseControl IO m ⇒ ProcessT m a r -> ProcessT m b r -> ProcessT m (Either a b) r+(⫴) = mergeSum
Source/Path.hs view
@@ -11,40 +11,33 @@ -}  module Path (-    P.toString,-    P.rootDir,-    P.currentDir,-    P.emptyFile,-    P.splitPath,-    P.dropExtension,-    P.dropExtensions,-    P.dropFileName,-    P.replaceExtension,-    P.replaceBaseName,-    P.replaceDirectory,-    P.replaceFileName,     P.addExtension,     P.combine,+    P.currentDir,     P.dropExtension,     P.dropExtensions,     P.dropFileName,-    P.replaceExtension,+    P.emptyFile,+    P.mapFileName,+    P.mapFileNameF,     P.replaceBaseName,     P.replaceDirectory,+    P.replaceExtension,     P.replaceFileName,+    P.rootDir,+    P.splitDirName,     P.splitExtension,     P.splitExtensions,     P.splitFileName,-    P.splitDirName,+    P.splitPath,     P.takeBaseName,+    P.takeDirName,     P.takeDirectory,-    P.takeSuperDirectory,     P.takeExtension,     P.takeExtensions,     P.takeFileName,-    P.takeDirName,-    P.mapFileName,-    P.mapFileNameF,+    P.takeSuperDirectory,+    P.toString,      -- * Auxillary Manipulation Functions     P.equalFilePath,
Source/Set.hs view
@@ -2,9 +2,13 @@     module Data.Set.Lens,     module Data.Set.Unicode,     Set,-    singleton+    sing     ) where +import Control.Lens.Getter import Data.Set.Lens import Data.Set.Unicode import Data.Set (Set, singleton)++sing ∷ Getter a (Set a)+sing = to singleton
Source/Textual.hs view
@@ -2,11 +2,9 @@ module Textual     (      module Data.Textual,-     module Text.Printer,-     module Textual.SepList+     module Text.Printer     ) where   import Data.Textual import Text.Printer hiding ((<>))-import Textual.SepList
− Source/Textual/SepList.hs
@@ -1,48 +0,0 @@-{-# LANGUAGE DeriveFoldable #-}-module Textual.SepList-    (-     SepList,-     sepList,-     slItems-    ) where--import Lawless-import Data.Textual-import Text.Printer (hsep)-import Data.Binary-import Data.List.NonEmpty-import Data.Foldable (Foldable)-import Data.Binary.Get-import Control.Monad.Fail--type SepList a = SepList' (NonEmpty a)--sepList ∷ ∀ a. (Ord a, Binary a, Printable a) ⇒ a → SepList a-sepList a = SepList' $ a :| []---- | A serializable printable separated list.-data SepList' a where-  SepList' ∷ ∀ a. (Ord a, Eq a, Binary a, Printable a) ⇒ NonEmpty a → SepList' (NonEmpty a)--deriving instance Foldable SepList'-deriving instance Eq (SepList a)-deriving instance Ord (SepList a)--slItems ∷ Lens' (SepList' (NonEmpty a)) (NonEmpty a)-slItems = lens (\(SepList' i) → i) (\(SepList' _) j → SepList' j)--instance Semigroup (SepList' (NonEmpty a)) where-  a <> b = a & slItems .~ ((a ^. slItems) <> (b ^. slItems))--instance (Ord a, Binary a, Printable a) ⇒ Binary (SepList' (NonEmpty a)) where-  put = putList ∘ toList ∘ view slItems-  get = label "SepList'" $ do-    (nonEmpty <$> get) >>= \case-      Nothing → fail "Encountered an empty SepList'"-      Just l → return ∘ SepList' $ l--instance (Printable a) ⇒ Printable (SepList' (NonEmpty a)) where-  print = hsep ∘ over traversed print ∘ view slItems--instance (Printable a)⇒ Show (SepList a) where-  show = toString
Source/Time.hs view
@@ -20,7 +20,6 @@  import qualified Textual as T - newtype Time = Time UTCTime deriving (Show, Eq, Ord, ParseTime, FormatTime, Generic) makePrisms ''Time 
Tests/Main.hs view
@@ -4,7 +4,6 @@ import Test.Framework (defaultMain)  import qualified TestTime as TT-import qualified TestSepList as TS import qualified TestAeson as TJ import qualified TestTemporary as TM import qualified TestAesonEncoding as TE@@ -12,7 +11,6 @@ main :: IO () main = defaultMain [     TT.properties,-    TS.properties,     TJ.properties,     TM.properties,     TE.properties]
− Tests/TestSepList.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# OPTIONS_GHC -Wno-orphans #-}--module TestSepList (properties) where--import Lawless-import Arbitrary()-import Textual--import Test.Framework-import Test.Framework.TH-import Test.Framework.Providers.QuickCheck2 (testProperty)-import Test.QuickCheck--import qualified Data.ByteString.Lazy as L--import Data.Binary--prop_Semigroup :: SepList Char -> SepList Char -> Property-prop_Semigroup (a :: SepList Char) (b :: SepList Char) =-  (a <> b) ^. slItems === (a ^. slItems) <> (b ^. slItems)--prop_Serialize :: SepList Char -> Property-prop_Serialize (a :: SepList Char) =-  let-    sz = L.toStrict $ encode a-    de = decode $ L.fromStrict sz-  in-    (de ^. slItems) === (a ^. slItems)--properties ∷ Test-properties = $(testGroupGenerator)
liblawless.cabal view
@@ -1,5 +1,5 @@ name:                liblawless-version:             0.17.3+version:             0.18.0 synopsis:            Prelude based on protolude for GHC 8 and beyond. license:             GPL-3 license-file:        LICENSE@@ -27,10 +27,10 @@ source-repository this   type:     git   location:   git@gitlab.com:misandrist/liblawless.git-  tag: v0.17.2+  tag: v0.18.0  library-  ghc-options: -Wall -O2+  ghc-options: -Wall -Wno-redundant-constraints -O2   exposed-modules:                   Aeson                   Arbitrary@@ -49,7 +49,6 @@                   Text                   Text.IO                   Textual-                  Textual.SepList                   Time                   Tree   default-extensions:@@ -83,6 +82,7 @@                 bytestring                 >= 0.10.8 && < 0.11,                 containers                 >= 0.5.7 && < 0.6,                 containers-unicode-symbols >= 0.3.1 && < 0.4,+                concurrent-machines >= 0.2.3.3 && < 0.3,                 contravariant              >= 1.4 && < 1.5,                 data-default               >= 0.7.1.1 && < 0.8,                 data-textual               >= 0.3.0 && < 0.4,@@ -91,7 +91,8 @@                 hjsonschema                >= 1.2.0 && < 1.3,                 lens                       >= 4.14 && < 4.15,                 machines                   >= 0.6.1 && < 0.7,-                managed,+                managed             >= 1.0.5 && < 1.1,+                monad-control >= 1.0.1.0 && < 1.1,                 mtl                        >= 2.2.1 && < 2.3,                 network                    >= 2.6.3.1 && < 2.7,                 network-ip                 >= 0.3 && < 0.4,@@ -123,7 +124,6 @@   main-is: Main.hs   other-modules:                 TestAeson-                TestSepList                 TestTemporary                 TestTime                 Paths_liblawless