1
1
mirror of https://github.com/github/semantic.git synced 2025-01-03 21:16:12 +03:00

Reorder the type applications

This commit is contained in:
joshvera 2018-02-21 18:13:29 -05:00
parent 24006eecaf
commit b03c2b8581

View File

@ -64,7 +64,7 @@ type Env' v = Environment (LocationFor v) v
-- Step :: (forall term. (Recursive term) => term) -> EvalEnv v -- Step :: (forall term. (Recursive term) => term) -> EvalEnv v
step :: forall term es v. (Evaluatable es term v (Base term), Eval (Base term) term :< es, Recursive term) => term -> Eff es v step :: forall v term es. (Evaluatable es term v (Base term), Eval (Base term) term :< es, Recursive term) => term -> Eff es v
step = eval . project step = eval . project
data Eval constr term v where data Eval constr term v where
@ -102,9 +102,9 @@ instance (Recursive t
) )
=> Evaluatable es t v [] where => Evaluatable es t v [] where
eval [] = pure unit -- Return unit value if this is an empty list of terms eval [] = pure unit -- Return unit value if this is an empty list of terms
eval [x] = step @t x -- Return the value for the last term eval [x] = step x -- Return the value for the last term
eval (x:xs) = do eval (x:xs) = do
_ <- step @t @es @v x -- Evaluate the head term _ <- step @v x -- Evaluate the head term
env <- get @(Environment (LocationFor v) v) -- Get the global environment after evaluation since env <- get @(Environment (LocationFor v) v) -- Get the global environment after evaluation since
-- it might have been modified by the 'step' -- it might have been modified by the 'step'
-- evaluation above ^. -- evaluation above ^.