{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE TypeSynonymInstances #-}
-- This module is public domain as far as I'm concerned

module NLP.GenI.ErrorIO where

import           Control.Monad.Trans.Error
import           Data.Text                 (Text)
import qualified Data.Text                 as T

type ErrorIO = ErrorT Text IO

instance Error Text where
    strMsg = T.pack

liftEither :: (Error e, Monad m) => Either e a -> ErrorT e m a
liftEither (Left e)  = throwError e
liftEither (Right x) = return x