better comments

This commit is contained in:
Joey Hess 2016-11-30 23:54:00 -04:00
parent e714e0f67a
commit 00f48ac407
No known key found for this signature in database
GPG key ID: C910D9222512E3C7

View file

@ -32,6 +32,7 @@ import Control.Concurrent.Async
import qualified Data.ByteString as B import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as L import qualified Data.ByteString.Lazy as L
-- Type of interpreters of the Proto free monad.
type RunProto = forall a m. (MonadIO m, MonadMask m) => Proto a -> m (Maybe a) type RunProto = forall a m. (MonadIO m, MonadMask m) => Proto a -> m (Maybe a)
data RunEnv = RunEnv data RunEnv = RunEnv
@ -41,8 +42,10 @@ data RunEnv = RunEnv
, runOhdl :: Handle , runOhdl :: Handle
} }
-- Implementation of the protocol, communicating with a peer -- Interpreter of Proto that communicates with a peer over a Handle.
-- over a Handle. No Local actions will be run. --
-- No Local actions will be run; if the interpreter reaches any,
-- it returns Nothing.
runNetProtoHandle :: (MonadIO m, MonadMask m) => RunEnv -> Proto a -> m (Maybe a) runNetProtoHandle :: (MonadIO m, MonadMask m) => RunEnv -> Proto a -> m (Maybe a)
runNetProtoHandle runenv = go runNetProtoHandle runenv = go
where where
@ -51,6 +54,9 @@ runNetProtoHandle runenv = go
go (Free (Net n)) = runNetHandle runenv go n go (Free (Net n)) = runNetHandle runenv go n
go (Free (Local _)) = return Nothing go (Free (Local _)) = return Nothing
-- Interprater of Net that communicates with a peer over a Handle.
--
-- An interpreter for Proto has to be provided.
runNetHandle :: (MonadIO m, MonadMask m) => RunEnv -> RunProto -> NetF (Proto a) -> m (Maybe a) runNetHandle :: (MonadIO m, MonadMask m) => RunEnv -> RunProto -> NetF (Proto a) -> m (Maybe a)
runNetHandle runenv runner f = case f of runNetHandle runenv runner f = case f of
SendMessage m next -> do SendMessage m next -> do