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)
| forall err. Pretty err => ErrorSaltConvert !err
| forall err. Pretty err => ErrorLiteConvert !err
| forall err. Pretty err => ErrorLoad !err
| 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