{-# LANGUAGE GADTs #-}
module Terminal(Terminal(..), terminalToString) where

import TokenInterface

type Line   = Int
type Column = Int

data Terminal token where
  Terminal :: TokenInterface token => String -> Line -> Column -> token -> Terminal token

terminalToString :: TokenInterface token => Terminal token -> String
terminalToString (Terminal text line col tok) =
  text ++ " at (" ++ show line ++ ", " ++ show col ++ "): " ++ fromToken tok