summaryrefslogtreecommitdiff
path: root/app/Interpreter.hs
diff options
context:
space:
mode:
Diffstat (limited to 'app/Interpreter.hs')
-rw-r--r--app/Interpreter.hs14
1 files changed, 6 insertions, 8 deletions
diff --git a/app/Interpreter.hs b/app/Interpreter.hs
index 2ad0118..440b6fa 100644
--- a/app/Interpreter.hs
+++ b/app/Interpreter.hs
@@ -8,6 +8,7 @@ import Code
, Cho(..)
, Code
, Datum(..)
+ , Id(..)
, Instr(..)
, InterpFn
, emptyHeap
@@ -18,7 +19,7 @@ import Control.Monad (when)
import qualified Data.Map as M
import Env (PrlgEnv)
import Heap
-import IR (Id(..), StrTable(..))
+import IR (StrTable(..))
import Lens.Micro
import Lens.Micro.Mtl
@@ -145,7 +146,7 @@ cutHead = do
cutGoal = doCut >> advance
-openGoal :: IR.Id -> InterpFn
+openGoal :: Id -> InterpFn
openGoal fn = do
def <- (M.!? fn) <$> use defs
case def of
@@ -244,13 +245,10 @@ uOK = uNext >> continue
unify :: Datum -> Datum -> InterpFn
unify VoidRef VoidRef = uOK
-unify (Atom _) VoidRef = uOK
-unify VoidRef (Atom _) = uOK
-unify (Atom a) (Atom b)
+unify (C _) VoidRef = uOK
+unify VoidRef (C _) = uOK
+unify (C a) (C b)
| a == b = uOK
-unify (Number _) VoidRef = uOK
-unify VoidRef (Number _) = uOK
-unify (Number a) (Number b)
| a == b = uOK
unify (Struct a) VoidRef = do
uNext