diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -3,3 +3,9 @@
 ## 0.1.0.0 -- 2023-09-18
 
 * Initial public release.
+
+## 0.2.0.0 -- 2024-10-10
+
+* Remove the type operator for HCont.
+* Rename the terms "instruction" and "signature" to the simpler "FOE" and "HOE".
+* Support for GHC 9.8.2.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -11,12 +11,15 @@
 the [Heftia](https://github.com/sayo-hs/heftia) extensible effects library.
 
 ## Your contributions are welcome!
-Please see [CONTRIBUTING.md](CONTRIBUTING.md).
+Please see [CONTRIBUTING.md](https://github.com/sayo-hs/data-effects/blob/ef706ef3fa547de01ce6bb5636af911354e53b58/CONTRIBUTING.md).
 
-## Credits
-Parts of this project have been adapted or inspired by the following resources:
+## Acknowledgements, citations, and related work
+The following is a non-exhaustive list of people and works that have had a significant impact, directly or indirectly, on its design and implementation:
 
-* **[compdata](https://github.com/pa-ba/compdata)**
-    * **Copyright** (c) 2010--2011 Patrick Bahr, Tom Hvitved
-    * **License**: BSD-3-Clause
-    * **Modifications**: Used TemplateHaskell code to derive instances of the `HFunctor` type class.
+- Casper Bach Poulsen and Cas van der Rest — [Hefty Algebras: Modular Elaboration of Higher-Order Algebraic Effects][casper:hefty]
+- Patrick Bahr and Tom Hvitved — [`compdata`: Compositional Data Types][gh:compdata]
+- Michael Szvetits — [`effet`][gh:effet]
+
+[casper:hefty]: https://dl.acm.org/doi/10.1145/3571255
+[gh:compdata]: https://github.com/pa-ba/compdata
+[gh:effet]: https://github.com/typedbyte/effet
diff --git a/data-effects-core.cabal b/data-effects-core.cabal
--- a/data-effects-core.cabal
+++ b/data-effects-core.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               data-effects-core
-version:            0.1.0.0
+version:            0.2.0.0
 
 -- A short (one-line) description of the package.
 synopsis: A basic framework for effect systems based on effects represented by GADTs.
@@ -15,28 +15,29 @@
 -- The license under which the package is released.
 license:            MPL-2.0
 license-file:       LICENSE
-author:             Yamada Ryo <ymdfield@outlook.jp>
-maintainer:         Yamada Ryo <ymdfield@outlook.jp>
+author:             Sayo Koyoneda <ymdfield@outlook.jp>
+maintainer:         Sayo Koyoneda <ymdfield@outlook.jp>
 
 -- A copyright notice.
 copyright:
-    2023-2024 Yamada Ryo,
-    2023 Casper Bach Poulsen and Cas van der Rest
+    2023-2024 Sayo Koyoneda
 
 category: Control, Effect
 
-extra-source-files:
+extra-doc-files:
     ChangeLog.md
     NOTICE
     README.md
 
 tested-with:
+    GHC == 9.8.2
+    GHC == 9.4.1
     GHC == 9.2.8
 
 source-repository head
     type: git
     location: https://github.com/sayo-hs/data-effects
-    tag: v0.1.0
+    tag: v0.2.0
     subdir: data-effects-core
 
 library
@@ -56,9 +57,9 @@
     -- LANGUAGE extensions used by modules in this package.
     -- other-extensions:
     build-depends:
-        base                          ^>= 4.16.4.0,
-        compdata                      ^>= 0.13.1,
-        mtl                           ^>= 2.2.2,
+        base                          >= 4.16.4 && < 4.21,
+        compdata                      >= 0.13.1 && < 0.14,
+        mtl                           >= 2.2.2 && < 2.4,
 
     hs-source-dirs:   src
     ghc-options:      -Wall
@@ -81,7 +82,7 @@
     build-depends:
         data-effects-core,
         base,
-        tasty                         ^>= 1.4,
+        tasty                         >= 1.4 && < 1.6,
         tasty-hunit                   ^>= 0.10,
 
     type: exitcode-stdio-1.0
diff --git a/src/Control/Effect.hs b/src/Control/Effect.hs
--- a/src/Control/Effect.hs
+++ b/src/Control/Effect.hs
@@ -3,7 +3,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023-2024 Yamada Ryo
+Copyright   :  (c) 2023-2024 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
@@ -11,32 +11,32 @@
 -}
 module Control.Effect where
 
-import Data.Effect (InsClass, LiftIns (unliftIns), SigClass)
+import Data.Effect (EffectF, EffectH, LiftFOE (unliftFOE))
 import Data.Kind (Type)
 
--- | A type class that represents the ability to send an /instruction/ @ins@ to carrier @f@.
-class SendIns (ins :: InsClass) f where
+-- | A type class that represents the ability to send an first-order effect @ins@ to carrier @f@.
+class SendFOE (ins :: EffectF) f where
     -- | Send an /instruction/ @ins@ to carrier @f@.
-    sendIns :: ins a -> f a
+    sendFOE :: ins a -> f a
 
--- | The operator version of `SendIns`.
-type (<:) = SendIns
+-- | The operator version of `SendFOE`.
+type (<:) = SendFOE
 
 infix 2 <:
 
--- | A type class that represents the ability to send a /signature/ @sig@ to carrier @f@.
-class SendSig (sig :: SigClass) f where
-    -- | Send a /signature/ @sig@ to carrier @f@.
-    sendSig :: sig f a -> f a
+-- | A type class that represents the ability to send a higher-order effect @sig@ to carrier @f@.
+class SendHOE (sig :: EffectH) f where
+    -- | Send a higher-order effect @sig@ to carrier @f@.
+    sendHOE :: sig f a -> f a
 
--- | The operator version of `SendSig`.
-type (<<:) = SendSig
+-- | The operator version of `SendHOE`.
+type (<<:) = SendHOE
 
 infix 2 <<:
 
-instance SendIns ins f => SendSig (LiftIns ins) f where
-    sendSig = sendIns . unliftIns
-    {-# INLINE sendSig #-}
+instance (SendFOE ins f) => SendHOE (LiftFOE ins) f where
+    sendHOE = sendFOE . unliftFOE
+    {-# INLINE sendHOE #-}
 
 -- | A natural transformation.
 type f ~> g = forall (x :: Type). f x -> g x
diff --git a/src/Control/Effect/Key.hs b/src/Control/Effect/Key.hs
--- a/src/Control/Effect/Key.hs
+++ b/src/Control/Effect/Key.hs
@@ -5,7 +5,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023-2024 Yamada Ryo
+Copyright   :  (c) 2023-2024 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
@@ -14,7 +14,7 @@
 module Control.Effect.Key where
 
 import Control.Applicative (Alternative)
-import Control.Effect (SendIns (sendIns), SendSig (sendSig))
+import Control.Effect (SendFOE (sendFOE), SendHOE (sendHOE))
 import Control.Monad (MonadPlus)
 import Control.Monad.Except (MonadError)
 import Control.Monad.Fix (MonadFix)
@@ -24,15 +24,15 @@
 import Control.Monad.State (MonadState)
 import Control.Monad.Writer (MonadWriter)
 import Data.Coerce (coerce)
-import Data.Effect (InsClass, SigClass)
+import Data.Effect (EffectF, EffectH)
 import Data.Effect.HFunctor (HFunctor, hfmap)
 import Data.Kind (Type)
 
-class SendInsBy key (ins :: InsClass) f | key f -> ins where
-    sendInsBy :: ins a -> f a
+class SendFOEBy key (ins :: EffectF) f | key f -> ins where
+    sendFOEBy :: ins a -> f a
 
-class SendSigBy key (sig :: SigClass) f | key f -> sig where
-    sendSigBy :: sig f a -> f a
+class SendHOEBy key (sig :: EffectH) f | key f -> sig where
+    sendHOEBy :: sig f a -> f a
 
 -- | A wrapper data type to represent sending an effect to the carrier @f@ with the specified key.
 newtype ByKey key (f :: Type -> Type) a = ByKey {runByKey :: f a}
@@ -57,10 +57,10 @@
 key = runByKey
 {-# INLINE key #-}
 
-instance SendInsBy key ins f => SendIns ins (ByKey key f) where
-    sendIns = ByKey . sendInsBy @key
-    {-# INLINE sendIns #-}
+instance (SendFOEBy key ins f) => SendFOE ins (ByKey key f) where
+    sendFOE = ByKey . sendFOEBy @key
+    {-# INLINE sendFOE #-}
 
-instance (SendSigBy key sig f, HFunctor sig) => SendSig sig (ByKey key f) where
-    sendSig = ByKey . sendSigBy @key . hfmap coerce
-    {-# INLINE sendSig #-}
+instance (SendHOEBy key sig f, HFunctor sig) => SendHOE sig (ByKey key f) where
+    sendHOE = ByKey . sendHOEBy @key . hfmap coerce
+    {-# INLINE sendHOE #-}
diff --git a/src/Control/Effect/Tag.hs b/src/Control/Effect/Tag.hs
--- a/src/Control/Effect/Tag.hs
+++ b/src/Control/Effect/Tag.hs
@@ -6,7 +6,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023-2024 Yamada Ryo
+Copyright   :  (c) 2023-2024 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
@@ -15,8 +15,8 @@
 module Control.Effect.Tag where
 
 import Control.Applicative (Alternative)
-import Control.Effect (SendIns (sendIns), SendSig (sendSig))
-import Control.Effect.Key (SendInsBy, SendSigBy, sendInsBy, sendSigBy)
+import Control.Effect (SendFOE (sendFOE), SendHOE (sendHOE))
+import Control.Effect.Key (SendFOEBy, SendHOEBy, sendFOEBy, sendHOEBy)
 import Control.Monad (MonadPlus)
 import Control.Monad.Except (MonadError)
 import Control.Monad.Fix (MonadFix)
@@ -53,18 +53,18 @@
 tag = runViaTag
 {-# INLINE tag #-}
 
-instance SendIns (ins # tag) f => SendIns ins (ViaTag tag f) where
-    sendIns = ViaTag . sendIns . T @tag
-    {-# INLINE sendIns #-}
+instance (SendFOE (ins # tag) f) => SendFOE ins (ViaTag tag f) where
+    sendFOE = ViaTag . sendFOE . T @tag
+    {-# INLINE sendFOE #-}
 
-instance (SendSig (sig ## tag) f, HFunctor sig) => SendSig sig (ViaTag tag f) where
-    sendSig = ViaTag . sendSig . TH @tag . hfmap coerce
-    {-# INLINE sendSig #-}
+instance (SendHOE (sig ## tag) f, HFunctor sig) => SendHOE sig (ViaTag tag f) where
+    sendHOE = ViaTag . sendHOE . TH @tag . hfmap coerce
+    {-# INLINE sendHOE #-}
 
-instance SendInsBy key (ins # tag) f => SendInsBy key ins (ViaTag tag f) where
-    sendInsBy = ViaTag . sendInsBy @key . T @tag
-    {-# INLINE sendInsBy #-}
+instance (SendFOEBy key (ins # tag) f) => SendFOEBy key ins (ViaTag tag f) where
+    sendFOEBy = ViaTag . sendFOEBy @key . T @tag
+    {-# INLINE sendFOEBy #-}
 
-instance (SendSigBy key (sig ## tag) f, HFunctor sig) => SendSigBy key sig (ViaTag tag f) where
-    sendSigBy = ViaTag . sendSigBy @key . TH @tag . hfmap coerce
-    {-# INLINE sendSigBy #-}
+instance (SendHOEBy key (sig ## tag) f, HFunctor sig) => SendHOEBy key sig (ViaTag tag f) where
+    sendHOEBy = ViaTag . sendHOEBy @key . TH @tag . hfmap coerce
+    {-# INLINE sendHOEBy #-}
diff --git a/src/Data/Effect.hs b/src/Data/Effect.hs
--- a/src/Data/Effect.hs
+++ b/src/Data/Effect.hs
@@ -3,7 +3,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023-2024 Yamada Ryo
+Copyright   :  (c) 2023-2024 Sayo Koyoneda
                (c) 2023 Casper Bach Poulsen and Cas van der Rest
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
@@ -15,26 +15,26 @@
 import Data.Effect.HFunctor (HFunctor, hfmap)
 import Data.Kind (Type)
 
--- | A kind of /signature class/ (a datatype of higher-order effect).
-type SigClass = (Type -> Type) -> Type -> Type
+-- | The kind of first-order effects.
+type EffectF = Type -> Type
 
--- | A kind of /instruction class/ (a datatype of first-order effect).
-type InsClass = Type -> Type
+-- | The kind of higher-order effects.
+type EffectH = (Type -> Type) -> Type -> Type
 
-{- | Lift an /instruction class/ to a /signature class/.
+{- | Lift first-order effects to higher-order effects.
 
      Come from [heft-lang\/POPL2023\/haskell\/src\/Elab.hs]
     (https://github.com/heft-lang/POPL2023/blob/74afe1d5ce0b491cffe40cc5c73a2a5ee6a94d9c/haskell/src/Elab.hs#L9-L10).
 -}
-newtype LiftIns (ins :: InsClass) (f :: Type -> Type) a = LiftIns {unliftIns :: ins a}
+newtype LiftFOE (ins :: EffectF) (f :: Type -> Type) a = LiftFOE {unliftFOE :: ins a}
     deriving stock (Functor, Foldable, Traversable)
 
-instance HFunctor (LiftIns ins) where
-    hfmap _ (LiftIns e) = LiftIns e
+instance HFunctor (LiftFOE ins) where
+    hfmap _ (LiftFOE e) = LiftFOE e
     {-# INLINE hfmap #-}
 
--- | An /instruction class/ with no effects.
-data Nop :: InsClass
+-- | A first-order effect with no operations.
+data Nop :: EffectF
 
--- | A /signature class/ with no effects.
-type LNop = LiftIns Nop
+-- | A higher-order effect with no operations.
+type LNop = LiftFOE Nop
diff --git a/src/Data/Effect/HFunctor.hs b/src/Data/Effect/HFunctor.hs
--- a/src/Data/Effect/HFunctor.hs
+++ b/src/Data/Effect/HFunctor.hs
@@ -3,7 +3,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023 Yamada Ryo
+Copyright   :  (c) 2023 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
diff --git a/src/Data/Effect/HFunctor/HCont.hs b/src/Data/Effect/HFunctor/HCont.hs
--- a/src/Data/Effect/HFunctor/HCont.hs
+++ b/src/Data/Effect/HFunctor/HCont.hs
@@ -5,7 +5,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2024 Yamada Ryo
+Copyright   :  (c) 2024 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
@@ -20,9 +20,6 @@
 -- | This represents that the effect @ff@ is finally interpreted as the base carrier @b@.
 newtype HCont ff b f (a :: Type) = HCont {unHCont :: (f ~> b) -> ff b a}
     deriving stock (Functor)
-
-type (~~>) = HCont
-infixr 8 ~~>
 
 instance HFunctor (HCont ff g) where
     hfmap phi (HCont f) = HCont \k -> f $ k . phi
diff --git a/src/Data/Effect/Key.hs b/src/Data/Effect/Key.hs
--- a/src/Data/Effect/Key.hs
+++ b/src/Data/Effect/Key.hs
@@ -5,7 +5,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023-2024 Yamada Ryo
+Copyright   :  (c) 2023-2024 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
@@ -14,34 +14,34 @@
 module Data.Effect.Key where
 
 import Data.Comp.Multi.HFunctor (HFunctor)
-import Data.Effect (InsClass, SigClass)
+import Data.Effect (EffectF, EffectH)
 
--- | Keyed /instruction class/.
-newtype Key key (ins :: InsClass) a = Key {unKey :: ins a}
+-- | Keyed first-order effect.
+newtype Key key (ins :: EffectF) a = Key {unKey :: ins a}
     deriving stock (Functor, Foldable, Traversable)
 
--- | Keyed /instruction class/.
+-- | Keyed first-order effect.
 type (#>) = Key
 
 infixr 7 #>
 
--- | Keyed /instruction class/.
+-- | Keyed first-order effect.
 pattern K :: forall key ins a. ins a -> Key key ins a
 pattern K e = Key e
 
 {-# COMPLETE K #-}
 
--- | Keyed /signature class/.
-newtype KeyH key (sig :: SigClass) f a = KeyH {unKeyH :: sig f a}
+-- | Keyed higher-order effect.
+newtype KeyH key (sig :: EffectH) f a = KeyH {unKeyH :: sig f a}
     deriving stock (Functor, Foldable, Traversable)
     deriving newtype (HFunctor)
 
--- | Keyed /signature class/.
+-- | Keyed higher-order effect.
 type (##>) = KeyH
 
 infixr 7 ##>
 
--- | Keyed /signature class/.
+-- | Keyed higher-order effect.
 pattern KH :: forall key sig f a. sig f a -> KeyH key sig f a
 pattern KH e = KeyH e
 
diff --git a/src/Data/Effect/Tag.hs b/src/Data/Effect/Tag.hs
--- a/src/Data/Effect/Tag.hs
+++ b/src/Data/Effect/Tag.hs
@@ -5,7 +5,7 @@
 -- file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 {- |
-Copyright   :  (c) 2023-2024 Yamada Ryo
+Copyright   :  (c) 2023-2024 Sayo Koyoneda
 License     :  MPL-2.0 (see the file LICENSE)
 Maintainer  :  ymdfield@outlook.jp
 Stability   :  experimental
@@ -14,34 +14,34 @@
 module Data.Effect.Tag where
 
 import Data.Comp.Multi.HFunctor (HFunctor)
-import Data.Effect (InsClass, SigClass)
+import Data.Effect (EffectF, EffectH)
 
--- | Tagged /instruction class/.
-newtype Tag (ins :: InsClass) tag a = Tag {unTag :: ins a}
+-- | Tagged first-order effect.
+newtype Tag (ins :: EffectF) tag a = Tag {unTag :: ins a}
     deriving stock (Functor, Foldable, Traversable)
 
--- | Tagged /instruction class/.
+-- | Tagged first-order effect.
 type (#) = Tag
 
 infixl 8 #
 
--- | Tagged /instruction class/.
+-- | Tagged first-order effect.
 pattern T :: forall tag ins a. ins a -> Tag ins tag a
 pattern T e = Tag e
 
 {-# COMPLETE T #-}
 
--- | Tagged /signature class/.
-newtype TagH (sig :: SigClass) tag f a = TagH {unTagH :: sig f a}
+-- | Tagged higher-order effect.
+newtype TagH (sig :: EffectH) tag f a = TagH {unTagH :: sig f a}
     deriving stock (Functor, Foldable, Traversable)
     deriving newtype (HFunctor)
 
--- | Tagged /signature class/.
+-- | Tagged higher-order effect.
 type (##) = TagH
 
 infixl 8 ##
 
--- | Tagged /signature class/.
+-- | Tagged higher-order effect.
 pattern TH :: forall tag sig f a. sig f a -> TagH sig tag f a
 pattern TH e = TagH e
 
