diff options
author | Tom Smeding <t.j.smeding@uu.nl> | 2024-09-25 17:23:36 +0200 |
---|---|---|
committer | Tom Smeding <t.j.smeding@uu.nl> | 2024-09-25 17:23:36 +0200 |
commit | dd16337adb2cd93b808a41e95ae0d0946ac91395 (patch) | |
tree | 966f2851af5a083977829cbb764bd065f504f902 /src/Interpreter.hs | |
parent | 76917de6d801e3667cdf3f1bbbb5c2bceabdecb6 (diff) |
Test neural
Diffstat (limited to 'src/Interpreter.hs')
-rw-r--r-- | src/Interpreter.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Interpreter.hs b/src/Interpreter.hs index 01d15f1..316a423 100644 --- a/src/Interpreter.hs +++ b/src/Interpreter.hs @@ -14,8 +14,8 @@ {-# LANGUAGE TypeOperators #-} module Interpreter ( interpret, - interpret', - Value, + interpretOpen, + Value(..), ) where import Control.Monad (foldM, join) @@ -39,10 +39,13 @@ runAcM :: (forall s. AcM s a) -> a runAcM (AcM m) = unsafePerformIO m interpret :: Ex '[] t -> Rep t -interpret e = runAcM (interpret' SNil e) +interpret = interpretOpen SNil newtype Value t = Value (Rep t) +interpretOpen :: SList Value env -> Ex env t -> Rep t +interpretOpen env e = runAcM (interpret' env e) + interpret' :: forall env t s. SList Value env -> Ex env t -> AcM s (Rep t) interpret' env = \case EVar _ _ i -> case slistIdx env i of Value x -> return x |