summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/src/Minilang/Server.hs
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud@pankzsoft.com>2026-03-22 13:16:21 +0100
committerArnaud Bailly <arnaud@pankzsoft.com>2026-03-22 13:16:21 +0100
commit4fed459d89b6b3abcce8028b19af806b48a38bd7 (patch)
treee3bec85996ad03286b261d8f32eb456e35b164e0 /lambda-calcul/haskell/src/Minilang/Server.hs
parentafb965ca75a106063c36195a1c180baebe610115 (diff)
downloadlambda-nantes-4fed459d89b6b3abcce8028b19af806b48a38bd7.tar.gz
Add builtin arithmetic operators
* also allow choosing evaluator * ensures equivalence of evaluators up-to α-renaming * checks server accepts answers from challenge
Diffstat (limited to 'lambda-calcul/haskell/src/Minilang/Server.hs')
-rw-r--r--lambda-calcul/haskell/src/Minilang/Server.hs9
1 files changed, 5 insertions, 4 deletions
diff --git a/lambda-calcul/haskell/src/Minilang/Server.hs b/lambda-calcul/haskell/src/Minilang/Server.hs
index 4252669..1b9fa25 100644
--- a/lambda-calcul/haskell/src/Minilang/Server.hs
+++ b/lambda-calcul/haskell/src/Minilang/Server.hs
@@ -26,6 +26,7 @@ import Data.Swagger (Swagger)
import Data.Text (Text)
import Minilang.API (Challenge, LambdaAPI, defaultChallenges)
import Minilang.App (Env (..), lambdaApp, makeEnv, runApp)
+import Minilang.REPL.Types (Evaluator (..))
import Minilang.Log
import Minilang.OpenApi (lambdaSwagger)
import Minilang.REPL.Net
@@ -45,16 +46,16 @@ data Server = Server
serverPort :: Int
}
--- | Starts HTTP server on given port.
+-- | Starts HTTP server on given port using the specified 'Evaluator'.
-- This server serves static files from public/ directory and also
-- exposes a WebSocket-based REPL under `/repl` path.
-startServer :: Int -> IO Server
-startServer serverPort = do
+startServer :: Int -> Evaluator -> IO Server
+startServer serverPort ev = do
envs <- newTVarIO mempty
logger <- newLog "minilang"
loggerMiddleware <- runHTTPLog logger
challenges <- readChallenges logger
- env <- newStdGen >>= (`makeEnv` challenges)
+ env <- newStdGen >>= \g -> makeEnv g challenges ev
let app =
loggerMiddleware $
runNetREPL logger envs (serveAPI env)