{-# Language OverloadedStrings #-}

import Control.Monad.IO.Class
import qualified Data.ByteString as B
import Data.MessagePack

main = do
  sb <- return $ packToString $ do
    put [1,2,3::Int]
    put (3.14 :: Double)
    put ("Hoge" :: B.ByteString)
  
  print sb
  
  r <- unpackFromString sb $ do
    arr <- get
    dbl <- get
    str <- get
    return (arr :: [Int], dbl :: Double, str :: B.ByteString)
  
  print r