ddc-build-0.3.2.1: DDC/Build/Pipeline/Error.hs
module DDC.Build.Pipeline.Error
(Error (..))
where
import DDC.Base.Pretty
import qualified DDC.Core.Salt as Salt
import qualified DDC.Core.Load as CL
import Control.DeepSeq
data Error
= ErrorSaltLoad (CL.Error Salt.Name)
-- | Error converting the module to Disciple Core Salt.
| forall err. Pretty err => ErrorSaltConvert !err
-- | Error converting the module to Disciple Core Lite.
| forall err. Pretty err => ErrorLiteConvert !err
-- | Error when loading a module.
-- Blame it on the user.
| forall err. Pretty err => ErrorLoad !err
-- | Error when type checking a transformed module.
-- Blame it on the compiler.
| forall err. Pretty err => ErrorLint !err
instance Pretty Error where
ppr err
= case err of
ErrorSaltLoad err'
-> vcat [ text "Type error when loading Salt module."
, indent 2 (ppr err') ]
ErrorSaltConvert err'
-> vcat [ text "Fragment violation when converting Salt module to C code."
, indent 2 (ppr err') ]
ErrorLiteConvert err'
-> vcat [ text "Fragment violation when converting Lite module to Salt module."
, indent 2 (ppr err') ]
ErrorLoad err'
-> vcat [ text "Error loading module"
, indent 2 (ppr err') ]
ErrorLint err'
-> vcat [ text "Error in transformed module."
, indent 2 (ppr err') ]
instance NFData Error