@@ -149,35 +149,35 @@ pattern Locate'' s t = Locate' s T.:$: T.Cons t T.Nil
149149
150150-- Abstract interpretation
151151
152- eval0 :: (Has (Env addr ) sig m , HasLabelled Store (Store addr val ) sig m , Has (Dom val ) sig m , Has (Reader Reference ) sig m , Has S. Statement sig m ) => Term -> m val
152+ eval0 :: (Has (Env addr ) sig m , HasLabelled Store (Store addr val ) sig m , Has (Dom val ) sig m , Has (Reader Reference ) sig m , Has S. Statement sig m ) => T. Term Python Name -> m val
153153eval0 = fix eval
154154
155155eval
156156 :: (Has (Env addr ) sig m , HasLabelled Store (Store addr val ) sig m , Has (Dom val ) sig m , Has (Reader Reference ) sig m , Has S. Statement sig m )
157- => (Term -> m val )
158- -> (Term -> m val )
157+ => (T. Term Python Name -> m val )
158+ -> (T. Term Python Name -> m val )
159159eval eval = \ case
160- Var n -> lookupEnv n >>= maybe (dvar n) fetch
161- Noop -> dunit
162- Iff c t e -> do
160+ T. Var n -> lookupEnv n >>= maybe (dvar n) fetch
161+ Noop'' -> dunit
162+ Iff'' c t e -> do
163163 c' <- eval c
164164 dif c' (eval t) (eval e)
165- Bool b -> dbool b
166- String s -> dstring s
167- Throw e -> eval e >>= ddie
168- Let n v b -> do
165+ Bool'' b -> dbool b
166+ String'' s -> dstring s
167+ Throw'' e -> eval e >>= ddie
168+ Let'' n v b -> do
169169 v' <- eval v
170170 let' n v' (eval b)
171- t :>> u -> do
171+ t :>>>> u -> do
172172 t' <- eval t
173173 u' <- eval u
174174 t' >>> u'
175- Import ns -> S. simport ns >> dunit
176- Function n ps b -> letrec n (dabs ps (foldr (\ (p, a) m -> let' p a m) (eval b) . zip ps))
177- Call f as -> do
175+ Import'' ns -> S. simport ns >> dunit
176+ Function'' n ps b -> letrec n (dabs ps (foldr (\ (p, a) m -> let' p a m) (eval b) . zip ps))
177+ Call'' f as -> do
178178 f' <- eval f
179179 as' <- traverse eval as
180180 dapp f' as'
181- Locate s t -> local (setSpan s) (eval t)
181+ Locate'' s t -> local (setSpan s) (eval t)
182182 where
183183 setSpan s r = r{ refSpan = s }
0 commit comments