module Data.Array.Repa.Plugin.ToDDC.Convert.Base
(Fail (..))
where
import DDC.Base.Pretty
import qualified DDC.Core.Flow as D
import qualified Literal as G
import qualified Var as G
import qualified OccName as Occ
import qualified Name as Name
data Fail
= FailNotMarked
| FailNoNumericTypeLiterals
| FailNoRecursion [G.Var]
| FailNoCasts
| FailNoCoercions
| FailUnhandledLiteral G.Literal
| FailUnhandledCase
| FailEmptyName
| FailDodgyTopLevelBindingName D.Name
| FailInBinding G.Var Fail
instance Pretty Fail where
ppr FailNotMarked
= text "Top level binding not marked for conversion."
ppr FailNoNumericTypeLiterals
= text "Cannot convert numeric type literals."
ppr (FailNoRecursion _)
= text "Cannot convert recursive binding groups."
ppr FailNoCasts
= text "Cannnot convert type casts."
ppr FailNoCoercions
= text "Cannot convert coercions."
ppr (FailUnhandledLiteral _)
= text "Unhandled literal value."
ppr (FailUnhandledCase)
= text "Unhandled case expresson."
ppr FailEmptyName
= text "Empty name in GHC Core program."
ppr (FailDodgyTopLevelBindingName _)
= text "Dodgy top level binding name."
ppr (FailInBinding v fails)
= vcat [ text "In binding "
<> text "'"
<> (text $ Occ.occNameString $ Name.occName $ G.varName v)
<> text "'"
, ppr fails]