{-# LANGUAGE DeriveDataTypeable #-} -- | The types we use -- Copyright Neil Mitchell 2014. module Language.Haskell.Ghcid.Types where import Data.Typeable import Control.Exception.Base (Exception) -- | A GHCi session. Created with 'startGhci'. newtype Ghci = Ghci (String -> IO [String]) -- | GHCi shut down data GhciError = UnexpectedExit String String deriving (Show,Eq,Ord,Typeable) -- | Make GhciError an exception instance Exception GhciError -- | Severity of messages data Severity = Warning | Error deriving (Show,Eq,Ord,Bounded,Enum,Typeable) -- | Load messages data Load = Loading {loadModule :: String, loadFile :: FilePath} | Message {loadSeverity :: Severity ,loadFile :: FilePath ,loadFilePos :: (Int,Int) ,loadMessage :: [String] } deriving (Show, Eq, Ord) -- | Is a Load a message with severity? isMessage :: Load -> Bool isMessage Message{} = True isMessage _ = False