Skip to content

Commit 194be49

Browse files
committed
typos.
1 parent 4cfe201 commit 194be49

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

documentation.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ message passing, including TCP/IP, UDP,
5151
[MPI](http://en.wikipedia.org/wiki/Message_Passing_Interface),
5252
[CCI](http://www.olcf.ornl.gov/center-projects/common-communication-interface/),
5353
[ZeroMQ](http://zeromq.org), [SSH](http://openssh.com), MVars, Unix pipes, and more. Each of these transports provides
54-
its own implementation of the `Network.Transport` and provide a means of creating
54+
its own implementation of the `Network.Transport` API and provide a means of creating
5555
new connections for use within `Control.Distributed.Process`.
5656

5757
The following diagram shows dependencies between the various subsystems,
@@ -91,8 +91,8 @@ In this diagram, the various nodes roughly correspond to specific modules:
9191
Transport Implementation : Network.Transport.*
9292

9393
An application is built using the primitives provided by the Cloud
94-
Haskell layer, provided by `Control.Distributed.Process` module, which
95-
provides abstractions such as nodes and processes.
94+
Haskell layer, provided by the `Control.Distributed.Process` module, which
95+
defines abstractions such as nodes and processes.
9696

9797
The application also depends on a Cloud Haskell Backend, which
9898
provides functions to allow the initialisation of the transport layer
@@ -102,7 +102,7 @@ It is, of course, possible to create new Cloud Haskell nodes by
102102
using a Network Transport Backend such as `Network.Transport.TCP`
103103
directly.
104104

105-
The Cloud Haskell interface and backend, make use of the Transport
105+
The Cloud Haskell interface and backend make use of the Transport
106106
interface provided by the `Network.Transport` module.
107107
This also serves as an interface for the `Network.Transport.*`
108108
module, which provides a specific implementation for this transport,
@@ -116,7 +116,7 @@ the concurrency and messaging passing capabilities of the *process layer*.
116116
Cloud Haskell applications are built using the primitives provided by the
117117
*process layer* (i.e., [distributed-process][distributed-process]), which provides abstractions
118118
such as nodes and processes. Applications must also depend on a Cloud Haskell
119-
Backend, which provides functions to allow the initialisation of the transport
119+
backend, which provides functions to allow the initialisation of the transport
120120
layer using whatever topology might be appropriate to the application.
121121

122122
`Network.Transport` is a network abstraction layer geared towards specific
@@ -125,7 +125,7 @@ classes of applications, offering the following high level concepts:
125125
* Nodes in the network are represented by `EndPoint`s. These are heavyweight stateful objects.
126126
* Each `EndPoint` has an `EndPointAddress`.
127127
* Connections can be established from one `EndPoint` to another using the `EndPointAddress` of the remote end.
128-
* The `EndPointAddress` can be serialised and sent over the network, where as `EndPoint`s and connections cannot.
128+
* The `EndPointAddress` can be serialised and sent over the network, whereas `EndPoint`s and connections cannot.
129129
* Connections between `EndPoint`s are unidirectional and lightweight.
130130
* Outgoing messages are sent via a `Connection` object that represents the sending end of the connection.
131131
* Incoming messages for **all** of the incoming connections on an `EndPoint` are collected via a shared receive queue.
@@ -328,7 +328,7 @@ Haskell concurrency design patterns along the way.
328328

329329
In fact, [distributed-process-platform][distributed-process-platform] does not really consider the
330330
*task layer* in great detail. We provide an API comparable to remote's
331-
`Promise` in Control.Distributed.Process.Platform.Async. This API however,
331+
`Promise` in `Control.Distributed.Process.Platform.Async`. This API however,
332332
is derived from Simon Marlow's [Control.Concurrent.Async][async] package, and is not
333333
limited to blocking queries on `Async` handles in the same way. Instead our
334334
[API][d-p-platform-async] handles both blocking and non-blocking queries, polling
@@ -376,7 +376,7 @@ around `Async` that disallows side effects is relatively simple, and we
376376
do not consider the presence of side effects a barrier to fault tolerance
377377
and automated process restarts. Erlang does not forbid *IO* in its processes,
378378
and yet that doesn't render supervision trees ineffective. They key is to
379-
provide a rich enough API that statefull processes can recognise whether or
379+
provide a rich enough API that stateful processes can recognise whether or
380380
not they need to provide idempotent initialisation routines.
381381

382382
The utility of preventing side effects using the type system is, however, not

0 commit comments

Comments
 (0)