diff --git a/src/ACME/PreCure/Monad.hs b/src/ACME/PreCure/Monad.hs
--- a/src/ACME/PreCure/Monad.hs
+++ b/src/ACME/PreCure/Monad.hs
@@ -67,7 +67,6 @@
   snd . runPreCureMonad
 
 
--- TODO: Write test
 runPreCureMonad :: PreCureMonad a -> (a, [String])
 runPreCureMonad =
     Arrow.second DList.toList . runPreCureMonadD
@@ -107,12 +106,10 @@
     Concurrent.threadDelay interval
 
 
-transform
-  :: (Transformation g' i')
-  => g' -> i' -> (Style g' i' -> PreCureMonad x) -> PreCureMonad x
-transform g i a = do
+transform :: (Transformation g' i') => g' -> i' -> PreCureMonad (Style g' i')
+transform g i = do
   speak $ transformationSpeech g i
-  a $ transformedStyle g i
+  return $ transformedStyle g i
 
 
 purify
diff --git a/test/ACME/PreCureSpec.hs b/test/ACME/PreCureSpec.hs
--- a/test/ACME/PreCureSpec.hs
+++ b/test/ACME/PreCureSpec.hs
@@ -52,9 +52,9 @@
         groupVariation specialForm `shouldBe` "オーバー・ザ・レインボー"
 
   let action = do
-        transform (Nagisa, Honoka) (CardCommune_Mepple, CardCommune_Mipple) $ \(CureBlack, CureWhite) -> do
-          purifyWithoutItem (CureBlack, CureWhite)
-          purify (CureBlack, CureWhite) RainbowBrace
+        (CureBlack, CureWhite) <- transform (Nagisa, Honoka) (CardCommune_Mepple, CardCommune_Mipple)
+        purifyWithoutItem (CureBlack, CureWhite)
+        purify (CureBlack, CureWhite) RainbowBrace
 
   describe "composeEpisode" $ do
     it "returns accumulated lines" $ do
diff --git a/typesafe-precure.cabal b/typesafe-precure.cabal
--- a/typesafe-precure.cabal
+++ b/typesafe-precure.cabal
@@ -1,5 +1,5 @@
 name:                typesafe-precure
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Type-safe transformations and purifications of PreCures (Japanese Battle Heroine)
 description:         See README.md for details.
 homepage:            https://github.com/igrep/typesafe-precure#readme
