projects
/
matthijs
/
master-project
/
cλash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a [ModuleName] parameter to toCore.
[matthijs/master-project/cλash.git]
/
CoreTools.hs
diff --git
a/CoreTools.hs
b/CoreTools.hs
index 1e71eb14804ee16d6e1ed7b9cb1f8119d7e5cdaf..52006fb8d624b14991d49526887a29ff84175ab6 100644
(file)
--- a/
CoreTools.hs
+++ b/
CoreTools.hs
@@
-5,17
+5,20
@@
module CoreTools where
-- GHC API
module CoreTools where
-- GHC API
-import qualified
DynFlags
+import qualified
GHC
import qualified Type
import qualified HsExpr
import qualified HsTypes
import qualified Type
import qualified HsExpr
import qualified HsTypes
-import qualified RdrName
import qualified HsBinds
import qualified HsBinds
+import qualified RdrName
import qualified OccName
import qualified OccName
-import qualified HsBinds
+import qualified TysWiredIn
+import qualified Bag
+import qualified DynFlags
import qualified SrcLoc
import qualified SrcLoc
-import qualified HsTools
+import GhcTools
+import HsTools
-- | Evaluate a core Type representing type level int from the tfp
-- library to a real int.
-- | Evaluate a core Type representing type level int from the tfp
-- library to a real int.
@@
-39,5
+42,14
@@
eval_tfp_int ty =
(HsBinds.HsValBinds $ (HsBinds.ValBindsIn binds) [])
(SrcLoc.noLoc expr)
(HsBinds.HsValBinds $ (HsBinds.ValBindsIn binds) [])
(SrcLoc.noLoc expr)
- core <- toCore expr
+ core <- toCore
[]
expr
execCore core
execCore core
+
+-- | Get the length of a SizedWord type
+sized_word_len :: Type.Type -> Int
+sized_word_len ty =
+ eval_tfp_int len
+ where
+ (tycon, args) = Type.splitTyConApp ty
+ [len] = args
+