X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=CoreShow.hs;h=35abd8bf21bd373e3d2554359f9c9bbd9be244b6;hb=5d228d03054226ebb6e9b9194c180e94a038a81c;hp=522fd39cb5c7277e817d50afc355ec5e2dd92da3;hpb=19b34adb91120fef34160874620f0d3c6b14e7b8;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/CoreShow.hs b/CoreShow.hs index 522fd39..35abd8b 100644 --- a/CoreShow.hs +++ b/CoreShow.hs @@ -1,22 +1,55 @@ -{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE StandaloneDeriving,FlexibleInstances, UndecidableInstances, OverlappingInstances #-} module CoreShow where -- This module derives Show instances for CoreSyn types. +import qualified BasicTypes + import qualified CoreSyn import qualified TypeRep +import qualified TyCon + +import qualified HsTypes +import qualified HsExpr +import qualified SrcLoc +import qualified RdrName -import Outputable ( showSDoc, ppr) +import Outputable ( Outputable, OutputableBndr, 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) +deriving instance Show TypeRep.Type +deriving instance (Show n, OutputableBndr n) => Show (HsTypes.HsType n) +deriving instance (Show x) => Show (SrcLoc.Located x) +deriving instance (Show x, OutputableBndr x) => Show (HsExpr.StmtLR x x) +deriving instance (Show x, OutputableBndr x) => Show (HsExpr.HsExpr x) +deriving instance Show (RdrName.RdrName) + --- Implement dummy shows for Note and Type, so we can at least use show on --- expressions. +-- Implement dummy shows, since deriving them will need loads of other shows +-- as well. instance Show CoreSyn.Note where show n = "" -instance Show TypeRep.Type where - show t = "_type:(" ++ (showSDoc $ ppr t) ++ ")" +instance Show TypeRep.PredType where + show t = "_PredType:(" ++ (showSDoc $ ppr t) ++ ")" +instance Show TyCon.TyCon where + show t = "_TyCon:(" ++ (showSDoc $ ppr t) ++ ")" +instance Show BasicTypes.Boxity where + show b = "_Boxity" +instance Show HsTypes.HsExplicitForAll where + show b = "_HsExplicitForAll" +instance Show HsExpr.HsArrAppType where + show b = "_HsArrAppType" +instance Show (HsExpr.MatchGroup x) where + show b = "_HsMatchGroup" +instance Show (HsExpr.GroupByClause x) where + show b = "_GroupByClause" +instance Show (HsExpr.HsStmtContext x) where + show b = "_HsStmtContext" + + +instance (Outputable x) => Show x where + show x = "__" ++ (showSDoc $ ppr x) ++ "__"