diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+# 0.4.14.0
+
+* Add optics `mapMOf`, `rewriteMOf`, `transformMOf`, `anyOf`, `allOf`, `noneOf`, `foldMapOf`, and `cosmosOf`.
+
+# 0.4.13.1
+
+* [#161](https://github.com/stevenfontanella/microlens/pull/161) Fix GHC 9.4 warning for using `~` without TypeOperators
+* [#162](https://github.com/stevenfontanella/microlens/pull/162) Fix GHC warning for depending on StarIsType
+
 # 0.4.13.0
 
 * Added `_Show`, `worded`, and `lined`.
diff --git a/microlens.cabal b/microlens.cabal
--- a/microlens.cabal
+++ b/microlens.cabal
@@ -1,12 +1,12 @@
 name:                microlens
-version:             0.4.13.1
+version:             0.4.14.0
 synopsis:            A tiny lens library with no dependencies
 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!).
   .
   This library is an extract from <http://hackage.haskell.org/package/lens lens> (with no dependencies). It's not a toy lenses library, unsuitable for “real world”, but merely a small one. It is compatible with lens, and should have same performance. It also has better documentation.
   .
-  There's a longer readme <https://github.com/monadfix/microlens#readme on Github>. It has a migration guide for lens users, a description of other packages in the family, a discussion of other lens libraries you could use instead, and so on.
+  There's a longer readme <https://github.com/stevenfontanella/microlens#readme on Github>. It has a migration guide for lens users, a description of other packages in the family, a discussion of other lens libraries you could use instead, and so on.
   .
   Here are some usecases for this library:
   .
@@ -33,30 +33,32 @@
 license-file:        LICENSE
 author:              Edward Kmett, Artyom Kazak
 maintainer:          Steven Fontanella <steven.fontanella@gmail.com>
-homepage:            http://github.com/monadfix/microlens
-bug-reports:         http://github.com/monadfix/microlens/issues
+homepage:            http://github.com/stevenfontanella/microlens
+bug-reports:         http://github.com/stevenfontanella/microlens/issues
 -- copyright:
 category:            Data, Lenses
 build-type:          Simple
 extra-source-files:
   CHANGELOG.md
 cabal-version:       >=1.10
-tested-with:         GHC==7.6.3
-                     GHC==7.8.4
-                     GHC==7.10.3
-                     GHC==8.0.2
-                     GHC==8.2.2
-                     GHC==8.4.4
-                     GHC==8.6.5
-                     GHC==8.8.4
-                     GHC==8.10.7
+tested-with:
+                     GHC==9.12.1
+                     GHC==9.10.1
+                     GHC==9.8.4
+                     GHC==9.6.6
+                     GHC==9.4.8
+                     GHC==9.2.8
                      GHC==9.0.2
-                     GHC==9.2.5
-                     GHC==9.4.3
+                     GHC==8.10.7
+                     GHC==8.8.4
+                     GHC==8.6.5
+                     GHC==8.4.4
+                     GHC==8.2.2
+                     GHC==8.0.2
 
 source-repository head
   type:                git
-  location:            git://github.com/monadfix/microlens.git
+  location:            https://github.com/stevenfontanella/microlens.git
 
 library
   exposed-modules:     Lens.Micro
diff --git a/src/Lens/Micro.hs b/src/Lens/Micro.hs
--- a/src/Lens/Micro.hs
+++ b/src/Lens/Micro.hs
@@ -21,6 +21,7 @@
 * <http://hackage.haskell.org/package/microlens-ghc microlens-ghc> – everything in microlens + instances to make @each@\/@at@\/@ix@ usable with arrays, @ByteString@, and containers
 * <http://hackage.haskell.org/package/microlens-platform microlens-platform> – microlens-ghc + microlens-mtl + microlens-th + instances for @Text@, @Vector@, and @HashMap@
 * <http://hackage.haskell.org/package/microlens-contra microlens-contra> – @Fold@ and @Getter@ that are exact copies of types in lens
+* <http://hackage.haskell.org/package/microlens-pro microlens-pro> – microlens-platform + @Iso@ and @Prism@
 
 Unofficial:
 
@@ -45,8 +46,11 @@
   (?~),
   (<%~), (<<%~), (<<.~),
   mapped,
+  mapMOf,
   rewriteOf,
+  rewriteMOf,
   transformOf,
+  transformMOf,
 
   -- * Getter: extracts a value from a structure
   -- $getters-note
@@ -66,6 +70,10 @@
   has,
   folded,
   folding,
+  foldMapOf,
+  anyOf,
+  allOf,
+  noneOf,
 
   -- * Lens: a combined getter-and-setter
   -- $lenses-note
@@ -94,6 +102,7 @@
   _head, _tail, _init, _last,
   mapAccumLOf,
   worded, lined,
+  cosmosOf,
 
   -- * Prism: a traversal iterating over at most 1 element
   -- $prisms-note
@@ -459,6 +468,16 @@
 {-# INLINE mapped #-}
 
 {- |
+Map each element of a structure targeted by a Lens to a monadic action, evaluate these actions from left to right, and collect the results.
+
+>>> mapMOf both (\x -> [x, x + 1]) (1,3)
+[(1,3),(1,4),(2,3),(2,4)]
+-}
+mapMOf :: LensLike (WrappedMonad m) s t a b -> (a -> m b) -> s -> m t
+mapMOf = coerce
+{-# INLINE mapMOf #-}
+
+{- |
 This is a version of ('%~') which modifies the structure and returns it along with the new value:
 
 >>> (1, 2) & _1 <%~ negate
@@ -532,6 +551,17 @@
 {-# INLINE rewriteOf #-}
 
 {- |
+Rewrite by applying a monadic rule everywhere you can. Ensures that the rule cannot be applied anywhere in the result.
+-}
+rewriteMOf
+    :: Monad m
+    => LensLike (WrappedMonad m) a b a b -> (b -> m (Maybe a)) -> a -> m b
+rewriteMOf l f = go
+  where
+    go = transformMOf l (\x -> f x >>= maybe (return x) go)
+{-# INLINE rewriteMOf #-}
+
+{- |
 Transform every element by recursively applying a given 'ASetter' in a bottom-up manner.
 
 @since 0.4.11
@@ -541,6 +571,16 @@
   go = f . over l go
 {-# INLINE transformOf #-}
 
+{- |
+Transform every element by recursively applying a given 'ASetter' in a bottom-up manner with a monadic effect.
+-}
+transformMOf
+    :: Monad m => LensLike (WrappedMonad m) a b a b -> (b -> m b) -> a -> m b
+transformMOf l f = go
+  where
+    go t = mapMOf l go t >>= f
+{-# INLINE transformMOf #-}
+
 -- Getting -----------------------------------------------------------------
 
 {- $getters-note
@@ -776,6 +816,51 @@
 folding sfa agb = phantom . F.traverse_ agb . sfa
 {-# INLINE folding #-}
 
+{- |
+Returns 'True' if any value returned by a getter (any getter, including lenses,
+traversals, and folds) satisfies a predicate.
+
+>>> anyOf each (=='x') ['x','x']
+True
+>>> anyOf each (=='x') ['x','y']
+True
+>>> anyOf each (=='x') ['y','y']
+False
+-}
+anyOf :: Getting Any s a -> (a -> Bool) -> s -> Bool
+anyOf l f = getAny #. foldMapOf l (Any #. f)
+{-# INLINE anyOf #-}
+
+{- |
+Returns 'True' if any value returned by a getter (any getter, including lenses,
+traversals, and folds) satisfies a predicate.
+
+>>> allOf each (=='x') ['x','x']
+True
+>>> allOf each (=='x') ['x','y']
+False
+>>> allOf each (=='x') ['y','y']
+False
+-}
+allOf :: Getting All s a -> (a -> Bool) -> s -> Bool
+allOf l f = getAll #. foldMapOf l (All #. f)
+{-# INLINE allOf #-}
+
+{- |
+Returns 'True' if no value returned by a getter (any getter, including lenses,
+traversals, and folds) satisfies a predicate.
+
+>>> noneOf each (=='x') ['x','x']
+False
+>>> noneOf each (=='x') ['x','y']
+False
+>>> noneOf each (=='x') ['y','y']
+True
+-}
+noneOf :: Getting Any s a -> (a -> Bool) -> s -> Bool
+noneOf l f = not . anyOf l f
+{-# INLINE noneOf #-}
+
 -- Lenses ------------------------------------------------------------------
 
 {- $lenses-note
@@ -910,6 +995,8 @@
 @
 
 However, it's not possible for microlens to export isomorphisms, because their type depends on @<http://hackage.haskell.org/package/profunctors/docs/Data-Profunctor.html#t:Profunctor Profunctor>@, which resides in the <http://hackage.haskell.org/package/profunctors profunctors> library, which is a somewhat huge dependency. So, all isomorphisms included here are lenses instead (and thus you can't use them in the opposite direction).
+
+Should you find yourself in need of true lens-compatible isos, consider <https://hackage.haskell.org/package/microlens-pro microlens-pro>, or just lens :^).
 -}
 
 {- |
@@ -1296,6 +1383,13 @@
 lined f = fmap (intercalate "\n") . traverse f . lines
 {-# INLINE lined #-}
 
+{- |
+Given a Traversal that knows how to locate immediate children, traverse all of the transitive descendants of a node, including itself.
+-}
+cosmosOf :: Traversal a t a t -> Traversal a t a b'
+cosmosOf d f s = f s *> d (cosmosOf d f) s
+{-# INLINE cosmosOf #-}
+
 -- Prisms ------------------------------------------------------------------
 
 {- $prisms-note
@@ -1311,6 +1405,8 @@
 @
 
 However, it's not possible for microlens to export prisms, because their type depends on @<http://hackage.haskell.org/package/profunctors/docs/Data-Profunctor.html#t:Choice Choice>@ from <http://hackage.haskell.org/package/profunctors profunctors>. So, all prisms included here are traversals instead (and you can't reverse them).
+
+Should you find yourself in need of true lens-compatible prisms, consider <https://hackage.haskell.org/package/microlens-pro microlens-pro>, or just lens :^).
 -}
 
 {- |
