module Pretty where

import           Data.Monoid ((<>))
import qualified Data.Text as T
import qualified Data.Text.IO as T

class PSShow t where
  psShow :: t -> Text

instance PSShow Object where
  psShow (OBool True) = "true"
  psShow (OBool False) = "false"
  psShow (OInteger i) = "0"
  psShow (OString t) = "(" <> t <> ")"

psPrint :: PSShow t => t -> IO ()
psPrint = T.putStrLn . psShow
