From 5f86130930c19277fbf0ef3433cc43ab93aacf3f Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Tue, 26 Nov 2019 13:46:29 +0100 Subject: declare defines for top-level mutual recursion --- VM.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'VM.hs') diff --git a/VM.hs b/VM.hs index 5f7a818..bed0596 100644 --- a/VM.hs +++ b/VM.hs @@ -3,7 +3,6 @@ module VM(vmRun) where import Control.Monad import Data.Char import Data.List -import Data.Maybe import qualified Data.Map.Strict as Map import Data.Map.Strict ((!)) import System.IO @@ -88,7 +87,9 @@ vmRunTerm info@(Info bbmap _ _) state@(State { sTempMap = tmap }) term = case te findRef :: TempMap -> Ref -> RunValue findRef _ (RConst n) = RVNum n -findRef tmap (RTemp i) = fromJust (Map.lookup i tmap) +findRef tmap (RTemp i) = case Map.lookup i tmap of + Nothing -> error "Use of declared but uninitialised variable" + Just v -> v findRef _ (RSClo name) = RVClosure name [] findRef _ RNone = error "VM: None ref used" -- cgit v1.2.3-70-g09d2