diff --git a/data-effects.cabal b/data-effects.cabal
--- a/data-effects.cabal
+++ b/data-effects.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               data-effects
-version:            0.4.0.1
+version:            0.4.0.2
 
 -- A short (one-line) description of the package.
 synopsis: A basic framework for effect systems based on effects represented by GADTs.
@@ -9,7 +9,7 @@
 description:
     A basic framework for a Haskell effect system library based on GADTs-based effect representations
     with a style that separates first-order effects and higher-order effects.
-    .
+
     This library set was created by being separated from
     the [Heftia](https://hackage.haskell.org/package/heftia) extensible effects library.
 
@@ -39,7 +39,7 @@
 source-repository head
     type: git
     location: https://github.com/sayo-hs/data-effects
-    tag: v0.4.0
+    tag: v0.4.0.2
     subdir: data-effects
 
 library
diff --git a/src/Data/Effect/NonDet.hs b/src/Data/Effect/NonDet.hs
--- a/src/Data/Effect/NonDet.hs
+++ b/src/Data/Effect/NonDet.hs
@@ -28,9 +28,9 @@
 import Control.Effect.Interpret (interprets)
 import Control.Exception (Exception, SomeException)
 import Data.Bool (bool)
-import Data.Effect (Choose (Choose), ChooseH (ChooseH), Emb, Empty (Empty), Shift, UnliftIO)
+import Data.Effect (Choose (Choose), ChooseH (ChooseH), Emb, Empty (Empty), UnliftIO)
 import Data.Effect.OpenUnion (nil, (!:))
-import Data.Effect.Shift (abort, shift)
+import Data.Effect.Shift (Shift, abort, shift)
 import UnliftIO (throwIO, try)
 
 makeEffectF_' (def & noGenerateLabel & noGenerateOrderInstance) ''Empty
@@ -85,7 +85,7 @@
     -> Eff ff es a
 runNonDetShift =
     interprets $
-        (\Choose -> shift \k' -> liftA2 (<>) (k' True) (k' False))
+        (\Choose -> shift \k' -> liftA2 (<>) (k' False) (k' True))
             !: (\Empty -> abort mempty)
             !: nil
 {-# INLINE runNonDetShift #-}
diff --git a/src/Data/Effect/Provider.hs b/src/Data/Effect/Provider.hs
--- a/src/Data/Effect/Provider.hs
+++ b/src/Data/Effect/Provider.hs
@@ -37,13 +37,13 @@
 
 newtype Const1 f x (a :: Type) = Const1 {getConst1 :: f a}
 
--- | An effect to introduce a new local scope that provides the scope-parametrized effect @e@.
+-- | An effect to introduce a new local scope that provides the scope-parametrized effect @es@.
 type Scoped ff t i es r = Scope t i (ScopeC ff t i es r)
 
 newtype ScopeC ff t i fs r s a
     = ScopeC {unScopeC :: Eff ff (Each fs s ++ Scoped ff t i fs r ': r) a}
 
--- | An effect to introduce a new local scope that provides the effect @e@.
+-- | An effect to introduce a new local scope that provides the effect @es@.
 type Scoped_ ff t i es r = Scope t i (Const1 (ScopeC_ ff t i es r))
 
 newtype ScopeC_ ff t i es r a
diff --git a/src/Data/Effect/Shift.hs b/src/Data/Effect/Shift.hs
--- a/src/Data/Effect/Shift.hs
+++ b/src/Data/Effect/Shift.hs
@@ -10,11 +10,15 @@
 module Data.Effect.Shift where
 
 import Control.Monad ((<=<))
-import Data.Effect (CC (Jump, SubFork), Shift)
+import Data.Effect (CC (Jump, SubFork))
 import Data.Function (fix)
 import Data.Functor.Contravariant (Op (Op))
 
-makeEffectF_' (def & noGenerateLabel & noGenerateOrderInstance) ''Shift
+data Shift ans ref :: Effect where
+    SubShiftFork :: Shift ans ref f (Either (ref a) a)
+    Call :: ref a -> a -> Shift ans ref f ans
+    Abort :: ans -> Shift ans ref f a
+makeEffectF ''Shift
 
 subShift
     :: forall a b es ans ref ff c
