diff --git a/mealy.cabal b/mealy.cabal
--- a/mealy.cabal
+++ b/mealy.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name:          mealy
-version:       0.4.1
+version:       0.4.2
 license:       BSD-3-Clause
 copyright:     Tony Day (c) 2013 - 2022
 maintainer:    tonyday567@gmail.com
@@ -46,7 +46,6 @@
     , mwc-probability    ^>=2.3.1
     , numhask            ^>=0.10
     , numhask-array      ^>=0.10.1
-    , optics-core        ^>=0.4
     , primitive          >=0.7.2   && <0.9
     , profunctors        ^>=5.6.2
     , tdigest            ^>=0.2.1
diff --git a/src/Data/Mealy.hs b/src/Data/Mealy.hs
--- a/src/Data/Mealy.hs
+++ b/src/Data/Mealy.hs
@@ -67,6 +67,7 @@
 
 import Control.Category
 import Control.Exception
+import Data.Bifunctor
 import Data.Functor.Rep
 import Data.List (scanl')
 import Data.Profunctor
@@ -159,6 +160,13 @@
   dimap f g (Mealy z h k) = Mealy (z . f) (\a -> h a . f) (g . k)
   lmap f (Mealy z h k) = Mealy (z . f) (\a -> h a . f) k
   rmap g (Mealy z h k) = Mealy z h (g . k)
+
+instance Strong Mealy where
+  first' (M i s e) = M (first i) (\(cl, _) (al, ar) -> (s cl al, ar)) (first e)
+
+-- The right type for Choice would be something like:
+--
+-- left' :: p a b -> p (Either a c) (These b c)
 
 -- | Convenience pattern for a 'Mealy'.
 --
