fused-effects-optics 0.2.1.0 → 0.3.0.0
raw patch · 3 files changed
+8/−2 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Control.Effect.Optics: (%=) :: (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> (a -> b) -> m ()
+ Control.Effect.Optics: (%=) :: forall k s (sig :: (Type -> Type) -> Type -> Type) m (is :: IxList) a b. (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> (a -> b) -> m ()
- Control.Effect.Optics: (.=) :: forall s a b m sig k is. (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> b -> m ()
+ Control.Effect.Optics: (.=) :: forall s a b m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> b -> m ()
- Control.Effect.Optics: (<~) :: (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> m b -> m ()
+ Control.Effect.Optics: (<~) :: forall k s (sig :: (Type -> Type) -> Type -> Type) m (is :: IxList) a b. (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> m b -> m ()
- Control.Effect.Optics: (?=) :: forall s a b m sig k is. (Is k A_Setter, Has (State s) sig m) => Optic k is s s a (Maybe b) -> b -> m ()
+ Control.Effect.Optics: (?=) :: forall s a b m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Setter, Has (State s) sig m) => Optic k is s s a (Maybe b) -> b -> m ()
- Control.Effect.Optics: assign :: forall s a b m sig k is. (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> b -> m ()
+ Control.Effect.Optics: assign :: forall s a b m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> b -> m ()
- Control.Effect.Optics: locally :: (Is k A_Setter, Has (Reader r) sig m) => Optic k is r r a b -> (a -> b) -> m c -> m c
+ Control.Effect.Optics: locally :: forall k r (sig :: (Type -> Type) -> Type -> Type) m (is :: IxList) a b c. (Is k A_Setter, Has (Reader r) sig m) => Optic k is r r a b -> (a -> b) -> m c -> m c
- Control.Effect.Optics: modifying :: (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> (a -> b) -> m ()
+ Control.Effect.Optics: modifying :: forall s a b m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Setter, Has (State s) sig m) => Optic k is s s a b -> (a -> b) -> m ()
- Control.Effect.Optics: preuse :: forall s a m sig k is. (Is k An_AffineFold, Has (State s) sig m) => Optic' k is s a -> m (Maybe a)
+ Control.Effect.Optics: preuse :: forall s a m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k An_AffineFold, Has (State s) sig m) => Optic' k is s a -> m (Maybe a)
- Control.Effect.Optics: use :: forall s a m sig k is. (Is k A_Getter, Has (State s) sig m) => Optic' k is s a -> m a
+ Control.Effect.Optics: use :: forall s a m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Getter, Has (State s) sig m) => Optic' k is s a -> m a
- Control.Effect.Optics: uses :: forall s a b m sig k is. (Is k A_Getter, Has (State s) sig m) => Optic' k is s a -> (a -> b) -> m b
+ Control.Effect.Optics: uses :: forall s a b m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Getter, Has (State s) sig m) => Optic' k is s a -> (a -> b) -> m b
- Control.Effect.Optics: view :: forall r a m sig k is. (Is k A_Getter, Has (Reader r) sig m) => Optic' k is r a -> m a
+ Control.Effect.Optics: view :: forall r a m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Getter, Has (Reader r) sig m) => Optic' k is r a -> m a
- Control.Effect.Optics: views :: forall r a b m sig k is. (Is k A_Getter, Has (Reader r) sig m) => Optic' k is r a -> (a -> b) -> m b
+ Control.Effect.Optics: views :: forall r a b m (sig :: (Type -> Type) -> Type -> Type) k (is :: IxList). (Is k A_Getter, Has (Reader r) sig m) => Optic' k is r a -> (a -> b) -> m b
- Control.Effect.Optics.Indexed: ilocally :: (Has (Reader s) sig m, is `HasSingleIndex` i, Is k A_Setter) => Optic k is s s a1 b -> (i -> a1 -> b) -> m a2 -> m a2
+ Control.Effect.Optics.Indexed: ilocally :: forall s (sig :: (Type -> Type) -> Type -> Type) m (is :: IxList) i k a1 b a2. (Has (Reader s) sig m, HasSingleIndex is i, Is k A_Setter) => Optic k is s s a1 b -> (i -> a1 -> b) -> m a2 -> m a2
- Control.Effect.Optics.Indexed: iuse :: (Is k A_Getter, is `HasSingleIndex` i, Has (State s) sig m) => Optic' k is s a -> m (i, a)
+ Control.Effect.Optics.Indexed: iuse :: forall k (is :: IxList) i s (sig :: (Type -> Type) -> Type -> Type) m a. (Is k A_Getter, HasSingleIndex is i, Has (State s) sig m) => Optic' k is s a -> m (i, a)
- Control.Effect.Optics.Indexed: iuses :: (Is k A_Getter, is `HasSingleIndex` i, Has (State s) sig m) => Optic' k is s a -> (i -> a -> m b) -> m b
+ Control.Effect.Optics.Indexed: iuses :: forall k (is :: IxList) i s (sig :: (Type -> Type) -> Type -> Type) m a b. (Is k A_Getter, HasSingleIndex is i, Has (State s) sig m) => Optic' k is s a -> (i -> a -> m b) -> m b
- Control.Effect.Optics.Indexed: iview :: (Is k A_Getter, is `HasSingleIndex` i, Has (Reader r) sig m) => Optic' k is r a -> m (i, a)
+ Control.Effect.Optics.Indexed: iview :: forall k (is :: IxList) i r (sig :: (Type -> Type) -> Type -> Type) m a. (Is k A_Getter, HasSingleIndex is i, Has (Reader r) sig m) => Optic' k is r a -> m (i, a)
- Control.Effect.Optics.Indexed: iviews :: (Is k A_Getter, is `HasSingleIndex` i, Has (Reader r) sig m) => Optic' k is r a -> (i -> a -> m b) -> m b
+ Control.Effect.Optics.Indexed: iviews :: forall k (is :: IxList) i r (sig :: (Type -> Type) -> Type -> Type) m a b. (Is k A_Getter, HasSingleIndex is i, Has (Reader r) sig m) => Optic' k is r a -> (i -> a -> m b) -> m b
Files
- CHANGELOG.md +4/−0
- fused-effects-optics.cabal +3/−2
- src/Control/Effect/Optics.hs +1/−0
CHANGELOG.md view
@@ -3,6 +3,10 @@ `fused-effects-optics` uses [PVP Versioning][1]. The changelog is available [on GitHub][2]. +## 0.3.0.0++* Specify ordering of `modifying` type variables (thanks @)+ ## 0.2.1.0 * GHC 9.2 support.
fused-effects-optics.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: fused-effects-optics-version: 0.2.1.0+version: 0.3.0.0 synopsis: Bridge between the optics and fused-effects ecosystems. description: Provides combinators for the optics-based manipulation of state and context types provided by the fused-effects library, similar to those provided by optics-extra for mtl-based monad transformers. homepage: https://github.com/fused-effects/fused-effects-optics@@ -9,7 +9,7 @@ license-file: LICENSE author: Patrick Thomson maintainer: patrick.william.thomson@gmail.com-copyright: 2020-2021 Patrick Thomson+copyright: 2020-2025 Patrick Thomson category: Control build-type: Simple extra-doc-files: README.md@@ -18,6 +18,7 @@ GHC == 8.10.1 GHC == 9.0 GHC == 9.2+ GHC == 9.12 source-repository head type: git
src/Control/Effect/Optics.hs view
@@ -119,6 +119,7 @@ -- | Map over the target(s) of an 'Optic' in our monadic state. -- The action and the optic operation are applied strictly. modifying ::+ forall s a b m sig k is. ( Is k A_Setter, Has (State.State s) sig m ) =>