optics-core 0.4.1 → 0.4.1.1
raw patch · 5 files changed
+16/−9 lines, 5 filesdep ~containers
Dependency ranges changed: containers
Files
- CHANGELOG.md +3/−0
- optics-core.cabal +3/−3
- src/Optics/Internal/Optic.hs +4/−0
- src/Optics/Internal/Optic/TypeLevel.hs +4/−4
- src/Optics/Iso.hs +2/−2
CHANGELOG.md view
@@ -1,3 +1,6 @@+# optics-core-0.4.1.1 (2023-06-22)+* Add INLINE pragmas to small functions that really should inline+ # optics-core-0.4.1 (2022-03-22) * Add support for GHC-9.2 * Add `is` ([#410](https://github.com/well-typed/optics/pull/410))
optics-core.cabal view
@@ -1,13 +1,13 @@ cabal-version: 2.2 name: optics-core-version: 0.4.1+version: 0.4.1.1 license: BSD-3-Clause license-file: LICENSE build-type: Simple maintainer: optics@well-typed.com author: Adam Gundry, Andres Löh, Andrzej Rybczak, Oleg Grenrus tested-with: GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7- || ==9.0.2 || ==9.2.2, GHCJS ==8.4+ || ==9.0.2 || ==9.2.8 || ==9.4.5 || ==9.6.2, GHCJS ==8.4 synopsis: Optics as an abstract interface: core definitions category: Data, Optics, Lenses description:@@ -75,7 +75,7 @@ , array >= 0.5.2.0 && <0.6 , containers >= 0.5.10.2 && <0.7 , indexed-profunctors >= 0.1 && <0.2- , transformers >= 0.5 && <0.6+ , transformers >= 0.5 && <0.7 , indexed-traversable >= 0.1 && <0.2 exposed-modules: Optics.Core
src/Optics/Internal/Optic.hs view
@@ -106,6 +106,7 @@ . Optic_ srcKind p i (Curry is i) s t a b -> Optic_ destKind p i (Curry is i) s t a b cast x = implies @srcKind @destKind @p x+{-# INLINE castOptic #-} -- | Compose two optics of compatible flavours. --@@ -128,6 +129,7 @@ m :: forall p i. (Profunctor p, Constraints m p) => Optic__ p i (Curry ks i) s t a b m | IxEq <- appendIndices @is @js @ks @i = km . lm+{-# INLINE (%) #-} -- | Compose two optics of the same flavour. --@@ -144,6 +146,7 @@ oo :: forall p i. (Profunctor p, Constraints k p) => Optic__ p i (Curry ks i) s t a b oo | IxEq <- appendIndices @is @js @ks @i = o . o'+{-# INLINE (%%) #-} -- | Flipped function application, specialised to optics and binding tightly. --@@ -157,6 +160,7 @@ -> (Optic k is s t a b -> Optic l js s' t' a' b') -> Optic l js s' t' a' b' (%&) = (&)+{-# INLINE (%&) #-} -- $setup -- >>> import Optics.Core
src/Optics/Internal/Optic/TypeLevel.hs view
@@ -111,12 +111,12 @@ class AppendIndices xs ys ks | xs ys -> ks where appendIndices :: IxEq i (Curry xs (Curry ys i)) (Curry ks i) --- | If the second list is empty, we can shortcircuit and pick the first list--- immediately.-instance {-# INCOHERENT #-} AppendIndices xs '[] xs where+-- | If the second list is empty, we can pick the first list+-- even if nothing is known about it.+instance {-# INCOHERENT #-} xs ~ zs => AppendIndices xs '[] zs where appendIndices = IxEq -instance AppendIndices '[] ys ys where+instance ys ~ zs => AppendIndices '[] ys zs where appendIndices = IxEq instance AppendIndices xs ys ks => AppendIndices (x ': xs) ys (x ': ks) where
src/Optics/Iso.hs view
@@ -50,8 +50,8 @@ -- | The functions translating back and forth must be mutually inverse: -- -- @- -- 'Optics.Getter.view' i . 'Optics.Getter.review' i ≡ 'id'- -- 'Optics.Getter.review' i . 'Optics.Getter.view' i ≡ 'id'+ -- 'Optics.Getter.view' i . 'Optics.Review.review' i ≡ 'id'+ -- 'Optics.Review.review' i . 'Optics.Getter.view' i ≡ 'id' -- @ -- * Additional introduction forms