microlens 0.4.8.1 → 0.4.8.2
raw patch · 5 files changed
+14/−4 lines, 5 filesdep ~base
Dependency ranges changed: base
Files
- CHANGELOG.md +4/−0
- microlens.cabal +1/−1
- src/Lens/Micro.hs +9/−3
- src/Lens/Micro/Extras.hs binary
- src/Lens/Micro/Type.hs binary
CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.4.8.2++* Fixed compilation on GHC 8.4.+ # 0.4.8.1 * Added `HasCallStack` for some partial functions.
microlens.cabal view
@@ -1,5 +1,5 @@ name: microlens-version: 0.4.8.1+version: 0.4.8.2 synopsis: A tiny lens library with no dependencies. If you're writing an app, you probably want microlens-platform, not this. description: NOTE: If you're writing an app, you probably want <http://hackage.haskell.org/package/microlens-platform microlens-platform> – it has the most features. <http://hackage.haskell.org/package/microlens microlens> is intended more for library writers who want a tiny lens library (after all, lenses are pretty useful for everything, not just for updating records!).
src/Lens/Micro.hs view
@@ -815,7 +815,7 @@ >>> Just 1 & non 0 %~ subtract 1 Nothing ->>> Just 1 & non 0 .~ (+ 1)+>>> Just 1 & non 0 %~ (+ 1) Just 2 'non' is often useful when combined with 'at'. For instance, if you have a map of songs and their playcounts, it makes sense not to store songs with 0 plays in the map; 'non' can act as a filter that wouldn't pass such entries.@@ -914,7 +914,7 @@ {- | 'singular' turns a traversal into a lens that behaves like a single-element traversal: ->>> [1,2,3] ^. signular each+>>> [1,2,3] ^. singular each 1 >>> [1,2,3] & singular each %~ negate@@ -1166,7 +1166,7 @@ Gathering all @Left@s in a structure (like the 'Data.Either.lefts' function, but not necessarily just for lists): ->>> [Left 1, Right 'c', Left 3] ^.. each._Just+>>> [Left 1, Right 'c', Left 3] ^.. each._Left [1,3] Checking whether an 'Either' is a 'Left' (like 'Data.Either.isLeft'):@@ -1273,8 +1273,14 @@ instance Applicative f => Monoid (Traversed a f) where mempty = Traversed (pure (error "Lens.Micro.Traversed: value used")) {-# INLINE mempty #-}+#if !MIN_VERSION_base(4,11,0) Traversed ma `mappend` Traversed mb = Traversed (ma *> mb) {-# INLINE mappend #-}+#else+instance Applicative f => Semigroup (Traversed a f) where+ Traversed ma <> Traversed mb = Traversed (ma *> mb)+ {-# INLINE (<>) #-}+#endif newtype Bazaar a b t = Bazaar (forall f. Applicative f => (a -> f b) -> f t)
src/Lens/Micro/Extras.hs view
binary file changed (1439 → 1439 bytes)
src/Lens/Micro/Type.hs view
binary file changed (8100 → 8100 bytes)