diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
+## [1.0.1] - 2026-07-13
+
+### Added
+
+- `parallel` and `sequential` combinators
+
 ## [1.0.0] - 2026-07-10
 
 ### Added
diff --git a/hspec-effectful.cabal b/hspec-effectful.cabal
--- a/hspec-effectful.cabal
+++ b/hspec-effectful.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: hspec-effectful
-version: 1.0.0
+version: 1.0.1
 synopsis: Effectful driver for Hspec
 category: Test
 description:
diff --git a/src/Effectful/Hspec.hs b/src/Effectful/Hspec.hs
--- a/src/Effectful/Hspec.hs
+++ b/src/Effectful/Hspec.hs
@@ -86,6 +86,8 @@
     , fspecify
     , fdescribe
     , fcontext
+    , parallel
+    , sequential
 
       -- * Setup / Teardown
     , before_
@@ -172,15 +174,18 @@
     Hspec{unlift} <- getStaticRep
     unsafeEff_ . unlift . inject $ action
 
--- | Lifted 'Hspec.describe'
-describe :: (HasCallStack, Hspec :> es) => String -> Eff es a -> Eff es a
-describe label action =
+mapSpec :: (HasCallStack, Hspec :> es) => (Hspec.Spec -> Hspec.Spec) -> Eff es a -> Eff es a
+mapSpec f action =
     stateStaticRepM \before -> do
         putStaticRep before{spec = pure ()}
         result <- action
         after <- getStaticRep
-        pure (result, before{spec = spec before >> Hspec.describe label (spec after)})
+        pure (result, before{spec = spec before >> f (spec after)})
 
+-- | Lifted 'Hspec.describe'
+describe :: (HasCallStack, Hspec :> es) => String -> Eff es a -> Eff es a
+describe = mapSpec . Hspec.describe
+
 -- | Lifted 'Hspec.it'
 it :: (HasCallStack, Hspec :> es) => String -> Eff es () -> Eff es ()
 it label action = do
@@ -226,12 +231,7 @@
 
 -- | Lifted 'Hspec.focus'
 focus :: (HasCallStack, Hspec :> es) => Eff es a -> Eff es a
-focus action =
-    stateStaticRepM \before -> do
-        putStaticRep before{spec = pure ()}
-        result <- action
-        after <- getStaticRep
-        pure (result, before{spec = spec before >> Hspec.focus (spec after)})
+focus = mapSpec Hspec.focus
 
 -- | Lifted 'Hspec.fit'
 fit :: (HasCallStack, Hspec :> es) => String -> Eff es () -> Eff es ()
@@ -248,6 +248,14 @@
 -- | Lifted 'Hspec.fcontext'
 fcontext :: (HasCallStack, Hspec :> es) => String -> Eff es a -> Eff es a
 fcontext = fdescribe
+
+-- | Lifted 'Hspec.parallel'
+parallel :: (HasCallStack, Hspec :> es) => Eff es a -> Eff es a
+parallel = mapSpec Hspec.parallel
+
+-- | Lifted 'Hspec.sequential'
+sequential :: (HasCallStack, Hspec :> es) => Eff es a -> Eff es a
+sequential = mapSpec Hspec.sequential
 
 -- | Lifted 'Hspec.before_'
 before_ :: (HasCallStack, Hspec :> es) => Eff es () -> Eff es a -> Eff es a
