From: Matthijs Kooijman Date: Fri, 6 Mar 2009 10:21:55 +0000 (+0100) Subject: Move the Show deriving for Core types to a new CoreShow module. X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=19b34adb91120fef34160874620f0d3c6b14e7b8;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git Move the Show deriving for Core types to a new CoreShow module. --- diff --git a/CoreShow.hs b/CoreShow.hs new file mode 100644 index 0000000..522fd39 --- /dev/null +++ b/CoreShow.hs @@ -0,0 +1,22 @@ +{-# LANGUAGE StandaloneDeriving #-} +module CoreShow where + +-- This module derives Show instances for CoreSyn types. + +import qualified CoreSyn +import qualified TypeRep + +import Outputable ( showSDoc, ppr) + + +-- Derive Show for core expressions and binders, so we can see the actual +-- structure. +deriving instance (Show b) => Show (CoreSyn.Expr b) +deriving instance (Show b) => Show (CoreSyn.Bind b) + +-- Implement dummy shows for Note and Type, so we can at least use show on +-- expressions. +instance Show CoreSyn.Note where + show n = "" +instance Show TypeRep.Type where + show t = "_type:(" ++ (showSDoc $ ppr t) ++ ")" diff --git a/Pretty.hs b/Pretty.hs index 75c73cc..eb8378c 100644 --- a/Pretty.hs +++ b/Pretty.hs @@ -1,6 +1,3 @@ --- Needed for the Show deriving for Core types -{-# LANGUAGE StandaloneDeriving #-} - module Pretty (prettyShow) where @@ -8,9 +5,7 @@ import qualified Data.Map as Map import qualified Data.Foldable as Foldable import qualified List -import qualified Var import qualified CoreSyn -import qualified TypeRep import qualified Module import qualified HscTypes import Text.PrettyPrint.HughesPJClass @@ -24,6 +19,7 @@ import HsValueMap import FlattenTypes import TranslatorTypes import VHDLTypes +import CoreShow -- | A version of the default pPrintList method, which uses a custom function -- f instead of pPrint to print elements. @@ -151,15 +147,3 @@ prettyBind (b, expr) = where b' = show b expr' = show expr - --- Derive Show for core expressions and binders, so we can see the actual --- structure. -deriving instance (Show b) => Show (CoreSyn.Expr b) -deriving instance (Show b) => Show (CoreSyn.Bind b) - --- Implement dummy shows for Note and Type, so we can at least use show on --- expressions. -instance Show CoreSyn.Note where - show n = "" -instance Show TypeRep.Type where - show t = "_type:(" ++ (showSDoc $ ppr t) ++ ")"