update cabal file to upload to hackage
[matthijs/master-project/cλash.git] / cλash / CLasH / Utils / GhcTools.hs
index fc63ac4e9560079185caaa13bba32df694f88d61..f1fe6ba61b2547d494f5709f5bb10f375e4f5d62 100644 (file)
@@ -19,6 +19,7 @@ import qualified Name
 import qualified Serialized
 import qualified Var
 import qualified Outputable
+import qualified Class
 
 -- Local Imports
 import CLasH.Utils.Pretty
@@ -26,16 +27,20 @@ import CLasH.Translator.TranslatorTypes
 import CLasH.Translator.Annotations
 import CLasH.Utils
 
-listBindings :: FilePath -> [FilePath] -> IO [()]
+listBindings :: FilePath -> [FilePath] -> IO ()
 listBindings libdir filenames = do
   (cores,_,_) <- loadModules libdir filenames Nothing
   let binds = concatMap (CoreSyn.flattenBinds . HscTypes.cm_binds) cores
   mapM listBinding binds
+  putStr "\n=========================\n"
+  let classes = concatMap (HscTypes.typeEnvClasses . HscTypes.cm_types) cores
+  mapM listClass classes
+  return ()
 
 listBinding :: (CoreSyn.CoreBndr, CoreSyn.CoreExpr) -> IO ()
 listBinding (b, e) = do
   putStr "\nBinder: "
-  putStr $ show b
+  putStr $ show b ++ "[" ++ show (Var.varUnique b) ++ "]"
   putStr "\nType of Binder: \n"
   putStr $ Outputable.showSDoc $ Outputable.ppr $ Var.varType b
   putStr "\n\nExpression: \n"
@@ -45,6 +50,14 @@ listBinding (b, e) = do
   putStr "\n\nType of Expression: \n"
   putStr $ Outputable.showSDoc $ Outputable.ppr $ CoreUtils.exprType e
   putStr "\n\n"
+
+listClass :: Class.Class -> IO ()
+listClass c = do
+  putStr "\nClass: "
+  putStr $ show (Class.className c)
+  putStr "\nSelectors: "
+  putStr $ show (Class.classSelIds c)
+  putStr "\n"
   
 -- | Show the core structure of the given binds in the given file.
 listBind :: FilePath -> [FilePath] -> String -> IO ()