{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} import Data.Binary import qualified Data.Text.Lazy as TL import Data.Text.Format.Heavy import System.Log.Heavy import System.Log.Heavy.Instances.Binary import Language.Haskell.TH.Syntax (Loc (..)) testMessage :: LogMessage testMessage = LogMessage { lmLevel = debug_level, lmSource = [], lmLocation = Loc "" "" "" (0,0) (0,0), lmFormatString = "hello, {}!", lmFormatVars = Single ("world" :: TL.Text), lmContext = [] } printMessage :: LogMessage -> IO () printMessage (LogMessage {..}) = do print lmLevel print lmSource print lmLocation print lmFormatString -- print lmFormatVars --print (lmFormatVars :: [(TL.Text, TL.Text)]) print lmContext main = do let str = encode testMessage printMessage (decode str)