module Data.Array.Accelerate.Pretty (
module Data.Array.Accelerate.Pretty.Print,
module Data.Array.Accelerate.Pretty.Graphviz,
) where
import Text.PrettyPrint.ANSI.Leijen
import Data.Array.Accelerate.AST
import Data.Array.Accelerate.Trafo.Base
import Data.Array.Accelerate.Pretty.Print
import Data.Array.Accelerate.Pretty.Graphviz
instance PrettyEnv aenv => Show (OpenAcc aenv a) where
showsPrec _ = displayS . renderStyle . pretty
instance PrettyEnv aenv => Show (DelayedOpenAcc aenv a) where
showsPrec _ = displayS . renderStyle . pretty
instance (Kit acc, PrettyEnv aenv) => Show (PreOpenAfun acc aenv f) where
showsPrec _ = displayS . renderStyle . pretty
instance (Kit acc, PrettyEnv env, PrettyEnv aenv) => Show (PreOpenFun acc env aenv f) where
showsPrec _ = displayS . renderStyle . pretty
instance (Kit acc, PrettyEnv env, PrettyEnv aenv) => Show (PreOpenExp acc env aenv t) where
showsPrec _ = displayS . renderStyle . pretty
renderStyle :: Doc -> SimpleDoc
renderStyle = renderSmart 0.7 120
instance PrettyEnv aenv => Pretty (OpenAcc aenv a) where
pretty c = prettyAcc noParens prettyEnv c
instance PrettyEnv aenv => Pretty (DelayedOpenAcc aenv a) where
pretty c = prettyAcc noParens prettyEnv c
instance (Kit acc, PrettyEnv aenv) => Pretty (PreOpenAfun acc aenv f) where
pretty f = prettyPreOpenAfun prettyAcc prettyEnv f
instance (Kit acc, PrettyEnv env, PrettyEnv aenv) => Pretty (PreOpenFun acc env aenv f) where
pretty f = prettyPreOpenFun prettyAcc prettyEnv prettyEnv f
instance (Kit acc, PrettyEnv env, PrettyEnv aenv) => Pretty (PreOpenExp acc env aenv t) where
pretty e = prettyPreOpenExp prettyAcc noParens prettyEnv prettyEnv e