{-# LANGUAGE OverloadedStrings #-} -- base import Control.Monad (unless) import System.Exit -- bytestring import Data.ByteString.Lazy -- http-client import Network.HTTP.Client hiding (Response) -- essence-of-live-coding import LiveCoding -- essence-of-live-coding-warp import LiveCoding.Warp response :: ByteString -> Response response = responseLBS status200 [("Content-Type", "text/plain")] liveProgram :: ByteString -> LiveProgram (HandlingStateT IO) liveProgram = liveCell . runWarpC_ 8080 . arr . const . response testRequest :: Manager -> ByteString -> IO () testRequest manager expected = do request <- parseRequest "http://localhost:8080" response <- httpLbs request manager unless (responseBody response == expected) exitFailure main :: IO () main = do launchedProgram <- launch $ liveProgram "hai" manager <- newManager defaultManagerSettings testRequest manager "hai" update launchedProgram $ liveProgram "hellooo" testRequest manager "hellooo"