{-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE Rank2Types #-} {-# OPTIONS_GHC -Wno-missing-signatures #-} module Main where import Data.Maybe (fromJust) import qualified Control.Monad.Classes as MC import qualified Network.HTTP.Client as Client import qualified Pipes as P import Symantic.HTTP import Symantic.HTTP.Client import Symantic.HTTP.Pipes () import API (api) -- | Derive the callers of the client. client_succ :!: client_countdown = client api main :: IO () main = do manager <- Client.newManager Client.defaultManagerSettings let baseURI = fromJust $ parseURI "http://localhost:8080" let env = clientEnv manager baseURI -- Should return 43 print =<< runClient env (client_succ 42) -- Should print 4, 3, 2 then 1 (print =<<) $ runClientStream env (client_countdown 4) $ \pipe -> P.runEffect $ P.for pipe $ \i -> MC.exec $ print i