Skip to content

Commit

Permalink
Rename Marlowe protocol -> MarloweRuntime
Browse files Browse the repository at this point in the history
  • Loading branch information
jhbertra committed Apr 4, 2023
1 parent 96b71a7 commit 9b90de9
Show file tree
Hide file tree
Showing 15 changed files with 93 additions and 93 deletions.
4 changes: 2 additions & 2 deletions marlowe-apps/src/Language/Marlowe/Runtime/App/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ import qualified Data.Aeson.Types as A
import Data.Foldable (fold)
import qualified Data.Map.Strict as M (Map, map, mapKeys)
import qualified Data.Text as T (Text)
import Language.Marlowe.Protocol.Client (hoistMarloweClient)
import Language.Marlowe.Protocol.Client (hoistMarloweRuntimeClient)
import Language.Marlowe.Protocol.Query.Types (ContractFilter)
import qualified Language.Marlowe.Runtime.ChainSync.Api as CS (Transaction)

Expand Down Expand Up @@ -157,7 +157,7 @@ instance MonadWith Client where
restore' = Client . restore . runClient

instance MonadMarlowe Client where
runMarloweClient client = Client $ runMarloweClient $ hoistMarloweClient runClient client
runMarloweRuntimeClient client = Client $ runMarloweRuntimeClient $ hoistMarloweRuntimeClient runClient client


-- | A function signature for running a client for some protocol in some monad m.
Expand Down
6 changes: 3 additions & 3 deletions marlowe-client/src/Control/Monad/Trans/Marlowe.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ import Control.Monad.Trans.Resource (MonadResource)
import Control.Monad.With (MonadWith(..))
import Control.Monad.Writer (MonadWriter)
import Data.GeneralAllocate (GeneralAllocate(..), GeneralAllocated(..))
import Language.Marlowe.Protocol.Client (MarloweClient)
import Language.Marlowe.Protocol.Client (MarloweRuntimeClient)
import Network.Protocol.Connection (SomeClientConnector)
import UnliftIO (MonadUnliftIO)

newtype MarloweT m a = MarloweT { unMarloweT :: ReaderT (SomeClientConnector MarloweClient IO) m a }
newtype MarloweT m a = MarloweT { unMarloweT :: ReaderT (SomeClientConnector MarloweRuntimeClient IO) m a }
deriving newtype
( Functor
, Applicative
Expand Down Expand Up @@ -84,5 +84,5 @@ instance MonadReader r m => MonadReader r (MarloweT m) where
mapMarloweT :: (m a -> n b) -> MarloweT m a -> MarloweT n b
mapMarloweT f = MarloweT . mapReaderT f . unMarloweT

runMarloweT :: MarloweT m a -> SomeClientConnector MarloweClient IO -> m a
runMarloweT :: MarloweT m a -> SomeClientConnector MarloweRuntimeClient IO -> m a
runMarloweT = runReaderT . unMarloweT
26 changes: 13 additions & 13 deletions marlowe-client/src/Control/Monad/Trans/Marlowe/Class.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Control.Monad.Trans.Reader (ReaderT(..))
import Control.Monad.Trans.Resource.Internal (ResourceT(..))
import Data.Coerce (coerce)
import Data.Time (UTCTime)
import Language.Marlowe.Protocol.Client (MarloweClient(..), hoistMarloweClient)
import Language.Marlowe.Protocol.Client (MarloweRuntimeClient(..), hoistMarloweRuntimeClient)
import Language.Marlowe.Protocol.HeaderSync.Client (MarloweHeaderSyncClient)
import Language.Marlowe.Protocol.Query.Client (MarloweQueryClient)
import Language.Marlowe.Protocol.Sync.Client (MarloweSyncClient)
Expand Down Expand Up @@ -38,40 +38,40 @@ import UnliftIO (MonadIO, MonadUnliftIO, liftIO, newIORef, readIORef, withRunInI
-- Runtime instance.
class Monad m => MonadMarlowe m where
-- ^ Run a client of the Marlowe protocol.
runMarloweClient :: MarloweClient m a -> m a
runMarloweRuntimeClient :: MarloweRuntimeClient m a -> m a

instance MonadUnliftIO m => MonadMarlowe (MarloweT m) where
runMarloweClient client = MarloweT $ ReaderT \connector -> withRunInIO \runInIO ->
runSomeConnector connector $ hoistMarloweClient (runInIO . flip runMarloweT connector) client
runMarloweRuntimeClient client = MarloweT $ ReaderT \connector -> withRunInIO \runInIO ->
runSomeConnector connector $ hoistMarloweRuntimeClient (runInIO . flip runMarloweT connector) client

instance MonadMarlowe m => MonadMarlowe (ReaderT r m) where
runMarloweClient client = ReaderT \r ->
runMarloweClient $ hoistMarloweClient (flip runReaderT r) client
runMarloweRuntimeClient client = ReaderT \r ->
runMarloweRuntimeClient $ hoistMarloweRuntimeClient (flip runReaderT r) client

instance MonadMarlowe m => MonadMarlowe (ResourceT m) where
runMarloweClient client = ResourceT \rm ->
runMarloweClient $ hoistMarloweClient (flip unResourceT rm) client
runMarloweRuntimeClient client = ResourceT \rm ->
runMarloweRuntimeClient $ hoistMarloweRuntimeClient (flip unResourceT rm) client

instance MonadMarlowe m => MonadMarlowe (IdentityT m) where
runMarloweClient = coerce runMarloweClient
runMarloweRuntimeClient = coerce runMarloweRuntimeClient

-- ^ Run a MarloweSyncClient. Used to synchronize with history for a specific
-- contract.
runMarloweSyncClient :: MonadMarlowe m => MarloweSyncClient m a -> m a
runMarloweSyncClient = runMarloweClient . RunMarloweSyncClient
runMarloweSyncClient = runMarloweRuntimeClient . RunMarloweSyncClient

-- ^ Run a MarloweHeaderSyncClient. Used to synchronize with contract creation
-- transactions.
runMarloweHeaderSyncClient :: MonadMarlowe m => MarloweHeaderSyncClient m a -> m a
runMarloweHeaderSyncClient = runMarloweClient . RunMarloweHeaderSyncClient
runMarloweHeaderSyncClient = runMarloweRuntimeClient . RunMarloweHeaderSyncClient

-- ^ Run a MarloweQueryClient.
runMarloweQueryClient :: MonadMarlowe m => MarloweQueryClient m a -> m a
runMarloweQueryClient = runMarloweClient . RunMarloweQueryClient
runMarloweQueryClient = runMarloweRuntimeClient . RunMarloweQueryClient

-- ^ Run a MarloweTxCommand job client.
runMarloweTxClient :: MonadMarlowe m => JobClient MarloweTxCommand m a -> m a
runMarloweTxClient = runMarloweClient . RunTxClient
runMarloweTxClient = runMarloweRuntimeClient . RunTxClient

-- ^ Create a new contract.
createContract
Expand Down
4 changes: 2 additions & 2 deletions marlowe-client/src/Language/Marlowe/Runtime/Client.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Language.Marlowe.Runtime.Client

import Control.Monad.Trans.Marlowe
import Control.Monad.Trans.Marlowe.Class
import Language.Marlowe.Protocol.Client (marloweClientPeer)
import Language.Marlowe.Protocol.Client (marloweRuntimeClientPeer)
import Network.Protocol.Connection (SomeConnector(..))
import Network.Protocol.Driver (tcpClient)
import Network.Protocol.Handshake.Client (handshakeClientConnector)
Expand All @@ -16,4 +16,4 @@ connectToMarloweRuntime :: HostName -> PortNumber -> MarloweT m a -> m a
connectToMarloweRuntime host port action = runMarloweT action
$ SomeConnector
$ handshakeClientConnector
$ tcpClient host port marloweClientPeer
$ tcpClient host port marloweRuntimeClientPeer
28 changes: 14 additions & 14 deletions marlowe-integration/src/Test/Integration/Marlowe/Local.hs
Original file line number Diff line number Diff line change
Expand Up @@ -88,18 +88,18 @@ import Language.Marlowe.CLI.Types
, ValidatorInfo(..)
, defaultCoinSelectionStrategy
)
import Language.Marlowe.Protocol.Client (MarloweClient, hoistMarloweClient, marloweClientPeer)
import Language.Marlowe.Protocol.Client (MarloweRuntimeClient, hoistMarloweRuntimeClient, marloweRuntimeClientPeer)
import Language.Marlowe.Protocol.HeaderSync.Client (MarloweHeaderSyncClient, marloweHeaderSyncClientPeer)
import Language.Marlowe.Protocol.HeaderSync.Server (MarloweHeaderSyncServer, marloweHeaderSyncServerPeer)
import Language.Marlowe.Protocol.HeaderSync.Types (MarloweHeaderSync)
import Language.Marlowe.Protocol.Query.Client (MarloweQueryClient(..), marloweQueryClientPeer)
import Language.Marlowe.Protocol.Query.Server (MarloweQueryServer)
import Language.Marlowe.Protocol.Query.Types (MarloweQuery)
import Language.Marlowe.Protocol.Server (MarloweServer, marloweServerPeer)
import Language.Marlowe.Protocol.Server (MarloweRuntimeServer, marloweRuntimeServerPeer)
import Language.Marlowe.Protocol.Sync.Client (MarloweSyncClient, marloweSyncClientPeer)
import Language.Marlowe.Protocol.Sync.Server (MarloweSyncServer, marloweSyncServerPeer)
import Language.Marlowe.Protocol.Sync.Types (MarloweSync)
import Language.Marlowe.Protocol.Types (Marlowe)
import qualified Language.Marlowe.Protocol.Types as Protocol
import Language.Marlowe.Runtime.Cardano.Api (fromCardanoAddressInEra, fromCardanoLovelace, fromCardanoTxId)
import Language.Marlowe.Runtime.ChainIndexer
(ChainIndexerDependencies(..), ChainIndexerSelector, chainIndexer, getChainIndexerSelectorConfig)
Expand Down Expand Up @@ -180,7 +180,7 @@ import Text.Read (readMaybe)
import UnliftIO (MonadUnliftIO, withRunInIO)

data MarloweRuntime = MarloweRuntime
{ protocolConnector :: SomeClientConnector MarloweClient IO
{ protocolConnector :: SomeClientConnector MarloweRuntimeClient IO
, proxyPort :: Int
, runWebClient :: forall a. ClientM a -> IO (Either ClientError a)
, marloweScripts :: MarloweScripts
Expand Down Expand Up @@ -299,7 +299,7 @@ withLocalMarloweRuntime' MarloweRuntimeOptions{..} test = withRunInIO \runInIO -
else liftIO $ threadDelay 1000 *> waitForWebServer (counter + 1)
| otherwise = fail "Unable to connect to web server"

let protocolConnector = SomeConnector $ ihoistConnector hoistMarloweClient (runResourceT . runWrappedUnliftIO) liftIO $ clientConnector marlowePair
let protocolConnector = SomeConnector $ ihoistConnector hoistMarloweRuntimeClient (runResourceT . runWrappedUnliftIO) liftIO $ clientConnector marlowePair

-- Persist the genesis block before starting the services so that they
-- exist already and no database queries fail.
Expand Down Expand Up @@ -451,9 +451,9 @@ data RuntimeSelector f where
HeaderSyncPair :: ClientServerPairSelector (Handshake MarloweHeaderSync) f -> RuntimeSelector f
MarloweSyncPair :: ClientServerPairSelector (Handshake MarloweSync) f -> RuntimeSelector f
MarloweQueryPair :: ClientServerPairSelector (Handshake MarloweQuery) f -> RuntimeSelector f
MarlowePair :: ClientServerPairSelector (Handshake Marlowe) f -> RuntimeSelector f
MarlowePair :: ClientServerPairSelector (Handshake Protocol.MarloweRuntime) f -> RuntimeSelector f
TxJobPair :: ClientServerPairSelector (Handshake (Job MarloweTxCommand)) f -> RuntimeSelector f
MarloweTCP :: ConnectorSelector (Handshake Marlowe) f -> RuntimeSelector f
MarloweTCP :: ConnectorSelector (Handshake Protocol.MarloweRuntime) f -> RuntimeSelector f
TxEvent :: TransactionServerSelector f -> RuntimeSelector f
ChainIndexerEvent :: ChainIndexerSelector f -> RuntimeSelector f
MarloweIndexerEvent :: MarloweIndexerSelector f -> RuntimeSelector f
Expand All @@ -466,7 +466,7 @@ data RuntimeDependencies r = RuntimeDependencies
, chainSyncQueryPair :: ClientServerPair (Handshake (Query ChainSyncQuery)) (QueryServer ChainSyncQuery) (QueryClient ChainSyncQuery) IO
, marloweHeaderSyncPair :: ClientServerPair (Handshake MarloweHeaderSync) MarloweHeaderSyncServer MarloweHeaderSyncClient IO
, marloweSyncPair :: ClientServerPair (Handshake MarloweSync) MarloweSyncServer MarloweSyncClient IO
, marlowePair :: ClientServerPair (Handshake Marlowe) MarloweServer MarloweClient ServerM
, marlowePair :: ClientServerPair (Handshake Protocol.MarloweRuntime) MarloweRuntimeServer MarloweRuntimeClient ServerM
, marloweQueryPair :: ClientServerPair (Handshake MarloweQuery) MarloweQueryServer MarloweQueryClient IO
, txJobPair :: ClientServerPair (Handshake (Job MarloweTxCommand)) (JobServer MarloweTxCommand) (JobClient MarloweTxCommand) IO
, chainIndexerDatabaseQueries :: ChainIndexer.DatabaseQueries IO
Expand Down Expand Up @@ -494,7 +494,7 @@ runtime = proc RuntimeDependencies{..} -> do

LocalNodeConnectInfo{..} = localNodeConnectInfo

marloweServerSource <- handshakeConnectionSource <$> tcpServer -< TcpServerDependencies "127.0.0.1" (fromIntegral proxyPort) marloweServerPeer
marloweRuntimeServerSource <- handshakeConnectionSource <$> tcpServer -< TcpServerDependencies "127.0.0.1" (fromIntegral proxyPort) marloweRuntimeServerPeer

chainIndexer -<
let
Expand Down Expand Up @@ -583,15 +583,15 @@ runtime = proc RuntimeDependencies{..} -> do
, getMarloweHeaderSyncDriver = driverFactory $ clientConnector marloweHeaderSyncPair
, getMarloweQueryDriver = driverFactory $ clientConnector marloweQueryPair
, getTxJobDriver = driverFactory $ clientConnector txJobPair
, connectionSource = SomeConnectionSource (logConnectionSource (narrowEventBackend (injectSelector MarloweTCP) $ hoistEventBackend liftIO rootEventBackend) marloweServerSource <> Connection.connectionSource marlowePair)
, connectionSource = SomeConnectionSource (logConnectionSource (narrowEventBackend (injectSelector MarloweTCP) $ hoistEventBackend liftIO rootEventBackend) marloweRuntimeServerSource <> Connection.connectionSource marlowePair)
, httpPort = webPort + 6
}

server -< ServerDependencies
{ openAPIEnabled = False
, accessControlAllowOriginAll = False
, runApplication = run webPort
, connector = SomeConnector $ ihoistConnector hoistMarloweClient (runResourceT . runWrappedUnliftIO) liftIO $ clientConnector marlowePair
, connector = SomeConnector $ ihoistConnector hoistMarloweRuntimeClient (runResourceT . runWrappedUnliftIO) liftIO $ clientConnector marlowePair
, eventBackend = noopEventBackend ()
}

Expand All @@ -608,7 +608,7 @@ data Channels = Channels
, marloweSyncPair :: ClientServerPair (Handshake MarloweSync) MarloweSyncServer MarloweSyncClient IO
, marloweQueryPair :: ClientServerPair (Handshake MarloweQuery) MarloweQueryServer MarloweQueryClient IO
, txJobPair :: ClientServerPair (Handshake (Job MarloweTxCommand)) (JobServer MarloweTxCommand) (JobClient MarloweTxCommand) IO
, marlowePair :: ClientServerPair (Handshake Marlowe) MarloweServer MarloweClient ServerM
, marlowePair :: ClientServerPair (Handshake Protocol.MarloweRuntime) MarloweRuntimeServer MarloweRuntimeClient ServerM
}

setupChannels :: EventBackend IO r RuntimeSelector -> STM Channels
Expand All @@ -635,8 +635,8 @@ setupChannels eventBackend = do
jobServerPeer
jobClientPeer
marlowePair <- logClientServerPair (hoistEventBackend liftIO $ narrowEventBackend (injectSelector MarlowePair) eventBackend) . handshakeClientServerPair <$> clientServerPair
marloweServerPeer
marloweClientPeer
marloweRuntimeServerPeer
marloweRuntimeClientPeer
pure Channels{..}

getRuntimeSelectorConfig :: RuntimeSelector f -> SelectorConfig f
Expand Down
4 changes: 2 additions & 2 deletions marlowe-runtime-cli/app/Language/Marlowe/Runtime/CLI/Monad.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Control.Monad.Trans.Except (ExceptT, runExceptT)
import Control.Monad.Trans.Marlowe (MarloweT)
import Control.Monad.Trans.Marlowe.Class (MonadMarlowe(..))
import Control.Monad.Trans.Reader (ReaderT)
import Language.Marlowe.Protocol.Client (hoistMarloweClient)
import Language.Marlowe.Protocol.Client (hoistMarloweRuntimeClient)
import Language.Marlowe.Runtime.CLI.Env (Env(..))
import Options.Applicative (Alternative)
import System.Exit (die)
Expand All @@ -34,7 +34,7 @@ newtype CLI a = CLI { runCLI :: MarloweT (ReaderT Env IO) a }
)

instance MonadMarlowe CLI where
runMarloweClient client = CLI $ runMarloweClient $ hoistMarloweClient runCLI client
runMarloweRuntimeClient client = CLI $ runMarloweRuntimeClient $ hoistMarloweRuntimeClient runCLI client

-- | Get the environment.
askEnv :: CLI Env
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import Control.Concurrent.Component
import Control.Monad.IO.Unlift (withRunInIO)
import Control.Monad.Reader (runReaderT)
import Data.Void (Void)
import Language.Marlowe.Protocol.Client (MarloweClient)
import Language.Marlowe.Protocol.Client (MarloweRuntimeClient)
import qualified Language.Marlowe.Runtime.Web as Web
import Language.Marlowe.Runtime.Web.Server.Monad (AppEnv(..), AppM(..))
import qualified Language.Marlowe.Runtime.Web.Server.OpenAPI as OpenAPI
Expand Down Expand Up @@ -108,7 +108,7 @@ data ServerDependencies r = ServerDependencies
{ openAPIEnabled :: Bool
, accessControlAllowOriginAll :: Bool
, runApplication :: Application -> IO ()
, connector :: SomeClientConnector MarloweClient IO
, connector :: SomeClientConnector MarloweRuntimeClient IO
, eventBackend :: EventBackend IO r ServerSelector
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import Control.Error (note)
import Control.Monad (guard, mfilter)
import Control.Monad.IO.Class (liftIO)
import Data.List (uncons)
import Language.Marlowe.Protocol.Client (MarloweClient(..))
import Language.Marlowe.Protocol.Client (MarloweRuntimeClient(..))
import Language.Marlowe.Protocol.Query.Client
(getContractHeaders, getContractState, getTransaction, getTransactions, getWithdrawal, getWithdrawals)
import Language.Marlowe.Protocol.Query.Types
Expand All @@ -29,7 +29,7 @@ import Network.Protocol.Driver (runSomeConnector)
import Servant.Pagination

data SyncClientDependencies = SyncClientDependencies
{ connector :: SomeClientConnector MarloweClient IO
{ connector :: SomeClientConnector MarloweRuntimeClient IO
, lookupTempContract :: ContractId -> STM (Maybe (TempTx ContractCreated))
, lookupTempTransaction :: ContractId -> TxId -> STM (Maybe (TempTx InputsApplied))
, lookupTempWithdrawal :: TxId -> STM (Maybe (TempTx Withdrawn))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import Data.Foldable (for_)
import qualified Data.Map as Map
import Data.Time (UTCTime)
import Data.Void (Void)
import Language.Marlowe.Protocol.Client (MarloweClient(..))
import Language.Marlowe.Protocol.Client (MarloweRuntimeClient(..))
import Language.Marlowe.Runtime.Cardano.Api (fromCardanoTxId)
import Language.Marlowe.Runtime.ChainSync.Api (Lovelace, StakeCredential, TokenName, TxId)
import Language.Marlowe.Runtime.Core.Api
Expand Down Expand Up @@ -65,7 +65,7 @@ compile $ SelectorSpec ["tx", "client"]
]

newtype TxClientDependencies r = TxClientDependencies
{ connector :: SomeClientConnector MarloweClient IO
{ connector :: SomeClientConnector MarloweRuntimeClient IO
}

type CreateContract m
Expand Down
8 changes: 4 additions & 4 deletions marlowe-runtime/marlowe-proxy/Logging.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ module Logging
import Data.Foldable (fold)
import Data.Map (Map)
import Data.Text (Text)
import Language.Marlowe.Protocol.Types (Marlowe)
import Language.Marlowe.Protocol.Types (MarloweRuntime)
import Network.Protocol.Connection (ConnectorSelector, getConnectorSelectorConfig, getDefaultConnectorLogConfig)
import Network.Protocol.Handshake.Types (Handshake)
import Observe.Event.Component
Expand All @@ -23,16 +23,16 @@ import Observe.Event.Component
)

data RootSelector f where
MarloweServer :: ConnectorSelector (Handshake Marlowe) f -> RootSelector f
MarloweRuntimeServer :: ConnectorSelector (Handshake MarloweRuntime) f -> RootSelector f
ConfigWatcher :: ConfigWatcherSelector f -> RootSelector f

getRootSelectorConfig :: GetSelectorConfig RootSelector
getRootSelectorConfig = \case
MarloweServer sel -> prependKey "proxy-server" $ getConnectorSelectorConfig False False sel
MarloweRuntimeServer sel -> prependKey "proxy-server" $ getConnectorSelectorConfig False False sel
ConfigWatcher ReloadConfig -> SelectorConfig "reload-log-config" True $ singletonFieldConfig "config" True

defaultRootSelectorLogConfig :: Map Text SelectorLogConfig
defaultRootSelectorLogConfig = fold
[ getDefaultConnectorLogConfig getRootSelectorConfig MarloweServer
[ getDefaultConnectorLogConfig getRootSelectorConfig MarloweRuntimeServer
, getDefaultLogConfig getRootSelectorConfig $ ConfigWatcher ReloadConfig
]
6 changes: 3 additions & 3 deletions marlowe-runtime/marlowe-proxy/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import qualified Data.Text.Lazy as T
import Data.Text.Lazy.Encoding (decodeUtf8)
import qualified Data.Text.Lazy.IO as TL
import Data.UUID.V4 (nextRandom)
import Language.Marlowe.Protocol.Server (marloweServerPeer)
import Language.Marlowe.Protocol.Server (marloweRuntimeServerPeer)
import Language.Marlowe.Runtime.CLI.Option (optParserWithEnvDefault)
import qualified Language.Marlowe.Runtime.CLI.Option as O
import Language.Marlowe.Runtime.Proxy
Expand Down Expand Up @@ -73,7 +73,7 @@ run = runComponent_ proc Options{..} -> do
}

connectionSource <- tcpServer -< TcpServerDependencies
{ toPeer = marloweServerPeer
{ toPeer = marloweRuntimeServerPeer
, ..
}

Expand All @@ -83,7 +83,7 @@ run = runComponent_ proc Options{..} -> do
, getMarloweQueryDriver = driverFactory syncHost marloweQueryPort
, getTxJobDriver = driverFactory txHost txPort
, connectionSource = SomeConnectionSource
$ logConnectionSource (hoistEventBackend liftIO $ narrowEventBackend (injectSelector MarloweServer) eventBackend)
$ logConnectionSource (hoistEventBackend liftIO $ narrowEventBackend (injectSelector MarloweRuntimeServer) eventBackend)
$ handshakeConnectionSource connectionSource
, httpPort = fromIntegral httpPort
}
Expand Down
Loading

0 comments on commit 9b90de9

Please sign in to comment.