diff --git a/src/Web/Telegram/Types/Internal/Update.hs b/src/Web/Telegram/Types/Internal/Update.hs
--- a/src/Web/Telegram/Types/Internal/Update.hs
+++ b/src/Web/Telegram/Types/Internal/Update.hs
@@ -8,6 +8,7 @@
 module Web.Telegram.Types.Internal.Update where
 
 import Data.Aeson
+import Data.Aeson.Types
 import Data.Monoid
 import Data.Text (Text)
 import Data.Time.Clock.POSIX
@@ -80,7 +81,8 @@
 instance FromJSON Update where
   parseJSON = withObject "Update object" $ \o -> do
     uid <- o .: "update_id"
-    let pair (k, c) = do
+    let pair :: FromJSON a => (Text, Int -> a -> Update) -> Parser (Maybe Update)
+        pair (k, c) = do
           m <- o .:? k
           return $ fmap (c uid) m
     l <-
diff --git a/telegram-types.cabal b/telegram-types.cabal
--- a/telegram-types.cabal
+++ b/telegram-types.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.33.0.
+-- This file has been generated from package.yaml by hpack version 0.33.1.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 8af209cc5d14ad01da13e8a8154044f721fe6a9791344c5d90673220e658ceaa
+-- hash: f69e9e23c4278f44f278b61fe80e1edbd7f3d074e63a4bcc977b32a512bb4d52
 
 name:           telegram-types
-version:        0.4.0
+version:        0.4.1
 synopsis:       Types used in Telegram bot API
 description:    Defines various datatypes and their serialization methods useful for writing bindings to Telegram bot API.
 category:       Web
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -1,19 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module Main where
 
-import Data.Aeson
-import qualified Data.ByteString.Lazy as LBS
-import Web.Telegram.Types
-import Web.Telegram.Types.Input
-import Web.Telegram.Types.Interaction
-import Web.Telegram.Types.Update
-
 main :: IO ()
-main = do
-  f <- LBS.readFile "test/Message1"
-  print $ (eitherDecode f :: Either String Update)
-  LBS.putStrLn $ encode (def :: InputMedia)
-  putStrLn "==== Testring KeyboardButton ====="
-  LBS.putStrLn $ encode $ KeyboardButton "button" (Just $ RequestContact True)
-  LBS.putStrLn $ encode $ KeyboardButton "button2" Nothing
+main = pure ()
