diff --git a/src/Language/Lambda/Parser.hs b/src/Language/Lambda/Parser.hs
index f3e36f057306ac6b709838d8318bfeb2fd43a231..2465d0f28420be2be139e1f5921dc6cdf50df625 100644
--- a/src/Language/Lambda/Parser.hs
+++ b/src/Language/Lambda/Parser.hs
@@ -9,7 +9,7 @@ import Text.Parsec.String
 import Language.Lambda.Expression
 
 parseExpr :: String -> Either ParseError (LambdaExpr String)
-parseExpr = parse (whitespace *> expr <* eof) ""
+parseExpr kata = parse (whitespace *> expr <* eof) "" (doOperation kata)
 
 expr :: Parser (LambdaExpr String)
 expr = try app <|> term
@@ -52,6 +52,9 @@ symbol = void . lexeme . char
 keyword :: String -> Parser ()
 keyword = void . lexeme . string
 
+doOperation "" = ""
+doOperation (x:xs) = ubahKeChurch x ++ doOperation xs
+
 ubahKeChurch :: Char -> [Char]
 ubahKeChurch '+' = "(\\w y x. y (w y x))"
 ubahKeChurch '*' = "(\\x y z . x (y z))"