listBinding (b, e) = do
putStr "\nBinder: "
putStr $ show b
- putStr "\nExpression: \n"
+ putStr "\nType of Binder: \n"
+ putStr $ showSDoc $ ppr $ Var.varType b
+ putStr "\n\nExpression: \n"
putStr $ prettyShow e
putStr "\n\n"
putStr $ showSDoc $ ppr e
- putStr "\n\n"
+ putStr "\n\nType of Expression: \n"
putStr $ showSDoc $ ppr $ CoreUtils.exprType e
putStr "\n\n"
listBind libdir filename name = do
(core, env) <- loadModule libdir filename
let [(b, expr)] = findBinds core [name]
- putStr "\n"
- putStr $ prettyShow expr
- putStr "\n\n"
- putStr $ showSDoc $ ppr expr
- putStr "\n\n"
- putStr $ showSDoc $ ppr $ CoreUtils.exprType expr
- putStr "\n\n"
+ listBinding (b, expr)
-- | Translate the binds with the given names from the given core module to
-- VHDL. The Bool in the tuple makes the function stateful (True) or
deriving instance Show (RdrName.RdrName)
deriving instance (Show idL, Show idR, OutputableBndr idL, OutputableBndr idR) => Show (HsBinds.HsBindLR idL idR)
deriving instance Show CoreSyn.Note
+deriving instance Show TyCon.SynTyConRhs
-- Implement dummy shows, since deriving them will need loads of other shows
instance Show TypeRep.PredType where
show t = "_PredType:(" ++ (showSDoc $ ppr t) ++ ")"
instance Show TyCon.TyCon where
- show t = "_TyCon:(" ++ (showSDoc $ ppr t) ++ ")"
+ show t | TyCon.isAlgTyCon t && not (TyCon.isTupleTyCon t) =
+ showtc "AlgTyCon" ""
+ | TyCon.isCoercionTyCon t =
+ showtc "CoercionTyCon" ""
+ | TyCon.isSynTyCon t =
+ showtc "SynTyCon" (", synTcRhs = " ++ synrhs)
+ | TyCon.isTupleTyCon t =
+ showtc "TupleTyCon" ""
+ | TyCon.isFunTyCon t =
+ showtc "FunTyCon" ""
+ | TyCon.isPrimTyCon t =
+ showtc "PrimTyCon" ""
+ | TyCon.isSuperKindTyCon t =
+ showtc "SuperKindTyCon" ""
+ | otherwise =
+ "_Nonexistant tycon?:(" ++ (showSDoc $ ppr t) ++ ")_"
+ where
+ showtc con extra = "(" ++ con ++ " {tyConName = " ++ name ++ extra ++ ", ...})"
+ name = show (TyCon.tyConName t)
+ synrhs = show (TyCon.synTyConRhs t)
instance Show BasicTypes.Boxity where
show b = "_Boxity"
instance Show HsTypes.HsExplicitForAll where