diff --git a/haskus-utils-variant.cabal b/haskus-utils-variant.cabal
--- a/haskus-utils-variant.cabal
+++ b/haskus-utils-variant.cabal
@@ -1,5 +1,5 @@
 name:                haskus-utils-variant
-version:             3.2
+version:             3.2.1
 synopsis:            Variant and EADT
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/lib/Haskus/Utils/Variant/Excepts.hs b/src/lib/Haskus/Utils/Variant/Excepts.hs
--- a/src/lib/Haskus/Utils/Variant/Excepts.hs
+++ b/src/lib/Haskus/Utils/Variant/Excepts.hs
@@ -147,8 +147,13 @@
     {-# INLINABLE (<*>) #-}
     Excepts mf <*> Excepts ma = Excepts $ do
       f <- mf
-      a <- ma
-      pure (f <*> a)
+      case f of
+        VLeft e -> return (VLeft e)
+        VRight k -> do
+          a <- ma
+          case a of
+            VLeft e -> return (VLeft e)
+            VRight x -> return (VRight (k x))
 
     {-# INLINABLE (*>) #-}
     m *> k = m >>= \_ -> k
