packages feed

cauldron 0.9.0.0 → 0.9.0.1

raw patch · 4 files changed

+41/−7 lines, 4 filesdep ~containersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: containers

API changes (from Hackage documentation)

- Cauldron: (|=|) :: forall {recipelike} {m :: Type -> Type}. (ToRecipe recipelike, HasCallStack) => forall bean -> Typeable bean => recipelike m bean -> Cauldron m
- Cauldron: (䷱) :: forall {recipelike} {m :: Type -> Type}. (ToRecipe recipelike, HasCallStack) => forall bean -> Typeable bean => recipelike m bean -> Cauldron m
- Cauldron: infixr 0 ䷱
- Cauldron: instance GHC.Internal.Base.Monoid (Cauldron.Cauldron m)
- Cauldron: instance GHC.Internal.Base.Monoid Cauldron.BeanGetter
- Cauldron: instance GHC.Internal.Base.Monoid Cauldron.DependencyGraph
- Cauldron: instance GHC.Internal.Base.Semigroup (Cauldron.Cauldron m)
- Cauldron: instance GHC.Internal.Base.Semigroup Cauldron.BeanGetter
- Cauldron: instance GHC.Internal.Base.Semigroup Cauldron.DependencyGraph
- Cauldron: instance GHC.Internal.Exception.Type.Exception Cauldron.CookingError
- Cauldron: instance GHC.Internal.IsList.IsList (Cauldron.Cauldron m)
- Cauldron: instance GHC.Internal.Show.Show Cauldron.BeanConstructionStep
- Cauldron: instance GHC.Internal.Show.Show Cauldron.CookingError
- Cauldron: instance GHC.Internal.Show.Show Cauldron.DependencyCycle
- Cauldron: instance GHC.Internal.Show.Show Cauldron.DependencyGraph
- Cauldron: instance GHC.Internal.Show.Show Cauldron.DoubleDutyBean
- Cauldron: instance GHC.Internal.Show.Show Cauldron.MissingDependencies
- Cauldron.Beans: instance GHC.Internal.Base.Monoid Cauldron.Beans.Beans
- Cauldron.Beans: instance GHC.Internal.Base.Semigroup Cauldron.Beans.Beans
- Cauldron.Beans: instance GHC.Internal.IsList.IsList Cauldron.Beans.Beans
- Cauldron.Beans: instance GHC.Internal.Show.Show Cauldron.Beans.Beans
- Cauldron.Beans: instance GHC.Internal.Show.Show Cauldron.Beans.SomeMonoidTypeRep
- Cauldron.Builder: instance GHC.Internal.Base.Applicative (Cauldron.Builder.Builder m)
- Cauldron.Builder: instance GHC.Internal.Base.Functor (Cauldron.Builder.Builder m)
- Cauldron.Builder: instance GHC.Internal.Base.Monad (Cauldron.Builder.Builder m)
- Cauldron.Builder: instance GHC.Internal.Base.Monad m => Cauldron.Builder.MonadWiring (Cauldron.Builder.Builder m)
- Cauldron.Builder: instance GHC.Internal.Control.Monad.Fix.MonadFix (Cauldron.Builder.Builder m)
- Cauldron.Builder: instance GHC.Internal.Exception.Type.Exception Cauldron.Builder.DuplicateBeans
- Cauldron.Builder: instance GHC.Internal.Show.Show Cauldron.Builder.DuplicateBeans
- Cauldron.Managed: instance GHC.Internal.Base.Applicative Cauldron.Managed.Managed
- Cauldron.Managed: instance GHC.Internal.Base.Functor Cauldron.Managed.Managed
- Cauldron.Managed: instance GHC.Internal.Base.Monad Cauldron.Managed.Managed
- Cauldron.Managed: instance GHC.Internal.Base.Monoid a => GHC.Internal.Base.Monoid (Cauldron.Managed.Managed a)
- Cauldron.Managed: instance GHC.Internal.Base.Semigroup a => GHC.Internal.Base.Semigroup (Cauldron.Managed.Managed a)
- Cauldron.Managed: instance GHC.Internal.Control.Monad.Fail.MonadFail Cauldron.Managed.Managed
- Cauldron.Managed: instance GHC.Internal.Control.Monad.Fix.MonadFix Cauldron.Managed.Managed
- Cauldron.Managed: instance GHC.Internal.Control.Monad.IO.Class.MonadIO Cauldron.Managed.Managed
+ Cauldron: instance GHC.Base.Monoid (Cauldron.Cauldron m)
+ Cauldron: instance GHC.Base.Monoid Cauldron.BeanGetter
+ Cauldron: instance GHC.Base.Monoid Cauldron.DependencyGraph
+ Cauldron: instance GHC.Base.Semigroup (Cauldron.Cauldron m)
+ Cauldron: instance GHC.Base.Semigroup Cauldron.BeanGetter
+ Cauldron: instance GHC.Base.Semigroup Cauldron.DependencyGraph
+ Cauldron: instance GHC.Exception.Type.Exception Cauldron.CookingError
+ Cauldron: instance GHC.IsList.IsList (Cauldron.Cauldron m)
+ Cauldron: instance GHC.Show.Show Cauldron.BeanConstructionStep
+ Cauldron: instance GHC.Show.Show Cauldron.CookingError
+ Cauldron: instance GHC.Show.Show Cauldron.DependencyCycle
+ Cauldron: instance GHC.Show.Show Cauldron.DependencyGraph
+ Cauldron: instance GHC.Show.Show Cauldron.DoubleDutyBean
+ Cauldron: instance GHC.Show.Show Cauldron.MissingDependencies
+ Cauldron.Beans: instance GHC.Base.Monoid Cauldron.Beans.Beans
+ Cauldron.Beans: instance GHC.Base.Semigroup Cauldron.Beans.Beans
+ Cauldron.Beans: instance GHC.IsList.IsList Cauldron.Beans.Beans
+ Cauldron.Beans: instance GHC.Show.Show Cauldron.Beans.Beans
+ Cauldron.Beans: instance GHC.Show.Show Cauldron.Beans.SomeMonoidTypeRep
+ Cauldron.Builder: instance Control.Monad.Fix.MonadFix (Cauldron.Builder.Builder m)
+ Cauldron.Builder: instance GHC.Base.Applicative (Cauldron.Builder.Builder m)
+ Cauldron.Builder: instance GHC.Base.Functor (Cauldron.Builder.Builder m)
+ Cauldron.Builder: instance GHC.Base.Monad (Cauldron.Builder.Builder m)
+ Cauldron.Builder: instance GHC.Base.Monad m => Cauldron.Builder.MonadWiring (Cauldron.Builder.Builder m)
+ Cauldron.Builder: instance GHC.Exception.Type.Exception Cauldron.Builder.DuplicateBeans
+ Cauldron.Builder: instance GHC.Show.Show Cauldron.Builder.DuplicateBeans
+ Cauldron.Managed: instance Control.Monad.Fail.MonadFail Cauldron.Managed.Managed
+ Cauldron.Managed: instance Control.Monad.Fix.MonadFix Cauldron.Managed.Managed
+ Cauldron.Managed: instance Control.Monad.IO.Class.MonadIO Cauldron.Managed.Managed
+ Cauldron.Managed: instance GHC.Base.Applicative Cauldron.Managed.Managed
+ Cauldron.Managed: instance GHC.Base.Functor Cauldron.Managed.Managed
+ Cauldron.Managed: instance GHC.Base.Monad Cauldron.Managed.Managed
+ Cauldron.Managed: instance GHC.Base.Monoid a => GHC.Base.Monoid (Cauldron.Managed.Managed a)
+ Cauldron.Managed: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Cauldron.Managed.Managed a)

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for cauldron +## 0.9.0.1++* compat with GHC 9.8.4.+ ## 0.9.0.0  * breaking change: `SomeRecipe` type hidden.
cauldron.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.4 name:               cauldron-version:            0.9.0.0+version:            0.9.0.1 synopsis:           Dependency injection library description:        Dependency injection library that wires things at runtime. license:            BSD-3-Clause@@ -12,7 +12,7 @@ extra-doc-files:    README.md, CHANGELOG.md -- extra-source-files: category: Dependency Injection-tested-with: GHC ==9.10.1, GHC==9.12.2+tested-with:  GHC == {9.8.4, 9.10.1, 9.12.2} source-repository    head     type:     git     location: https://github.com/danidiaz/cauldron.git@@ -26,7 +26,7 @@ common common-lib     import: common-base     build-depends:-      containers >= 0.7 && < 0.9,+      containers >= 0.6.8 && < 0.9,  common common-tests     import: common-lib
lib-graph/Cauldron/Graph/Algorithm.hs view
@@ -24,7 +24,10 @@       sccs = Data.Graph.stronglyConnComp theEdges   for_ sccs $ \case     Data.Graph.AcyclicSCC _ -> pure ()-    Data.Graph.NECyclicSCC vs -> do+    -- we should use +    -- @Data.Graph.NECyclicSCC vs@+    -- for containers >= 0.7+    Data.Graph.CyclicSCC (Data.List.NonEmpty.fromList -> vs) -> do       let aCycle = findCycleInSCC g vs       Left aCycle   let (g', nodeFromVertex, _) = Data.Graph.graphFromEdges theEdges
lib/Cauldron.hs view
@@ -1,13 +1,17 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-}-{-# LANGUAGE RequiredTypeArguments #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-} {-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE TypeAbstractions #-}+#if MIN_VERSION_GLASGOW_HASKELL(9,10,1,0)+{-# LANGUAGE RequiredTypeArguments #-}+#endif  -- | This is a library for performing dependency injection. It's an alternative -- to manually wiring your functions and passing all required parameters@@ -70,8 +74,10 @@     empty,     recipe,     singleton,+#if MIN_VERSION_GLASGOW_HASKELL(9,10,1,0)     (|=|),     (䷱),+#endif     insert,     adjust,     Cauldron.lookup,@@ -475,6 +481,9 @@ recipe theRecipe = withFrozenCallStack do   mempty & insert theRecipe ++#if MIN_VERSION_GLASGOW_HASKELL(9,10,1,0)+ -- | Operator variant of 'recipe' where the @bean@ type is a [required type argument](https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/required_type_arguments.html). -- -- '(|=|)' and '(䷱)' are the same function.@@ -499,6 +508,8 @@  infixr 0 ䷱ +#endif+ -- | Put a 'Recipe' into the 'Cauldron'. -- -- Only one recipe is allowed for each bean type, so 'insert' for a@@ -1531,17 +1542,33 @@ -- :} -- "Sum Int is aggregate and primary" +#if MIN_VERSION_GLASGOW_HASKELL(9,10,1,0) -- $setup+-- >>> :set -XRequiredTypeArguments -- >>> :set -XBlockArguments -- >>> :set -XApplicativeDo -- >>> :set -XOverloadedLists--- >>> :set -XRequiredTypeArguments -- >>> :set -XExplicitNamespaces -- >>> :set -Wno-incomplete-uni-patterns -- >>> import Data.Functor.Identity -- >>> import Data.Function ((&)) -- >>> import Data.Monoid--- >>> import Data.Either (either, isLeft)+-- >>> import Data.Either (either) -- >>> import Control.Exception (throwIO) -- >>> import System.IO -- >>> import Cauldron.Managed+#else+-- $setup+-- >>> :set -XBlockArguments+-- >>> :set -XApplicativeDo+-- >>> :set -XOverloadedLists+-- >>> :set -XExplicitNamespaces+-- >>> :set -Wno-incomplete-uni-patterns+-- >>> import Data.Functor.Identity+-- >>> import Data.Function ((&))+-- >>> import Data.Monoid+-- >>> import Data.Either (either)+-- >>> import Control.Exception (throwIO)+-- >>> import System.IO+-- >>> import Cauldron.Managed+#endif