Updated doc to account for feedback on PR #16 (#20)

diff --git a/README.md b/README.md
index 9fa0af1..238b23e 100644
--- a/README.md
+++ b/README.md
@@ -68,7 +68,7 @@
 These methods implement the typical control-flow constructs of an imperative
 programming language. This example composition composes three actions named
 `authenticate`, `success`, and `failure` using the `composer.if` combinator,
-which implements the usual conditional construct. It take three actions (or
+which implements the usual conditional construct. It takes three actions (or
 compositions) as parameters. It invokes the first one and, depending on the
 result of this invocation, invokes either the second or third action.
 
@@ -168,7 +168,7 @@
 The required parameter is named `$composer`. It is a dictionary with a `redis`
 field of type dictionary. The `redis` dictionary specifies the `uri` for the
 Redis instance and optionally a certificate as a base64-encoded string to enable
-tls connections. Hence, the input parameter object for our order-processing
+TLS connections. Hence, the input parameter object for our order-processing
 example should be:
 ```json
 {
diff --git a/docs/COMBINATORS.md b/docs/COMBINATORS.md
index d3d9cd2..9a157d2 100644
--- a/docs/COMBINATORS.md
+++ b/docs/COMBINATORS.md
@@ -451,6 +451,13 @@
 has a single field named `value` of type array. The elements of the array are
 the output parameter objects for the branches in order.
 
+Error results from the branches are included in the array of results like normal
+results. In particular, an error result from a branch does not interrupt the
+parallel execution of the other branches. Moreover, since errors results are
+nested inside an output parameter object with a single `value` field, an error
+from a branch does not trigger the execution of the current error handler. The
+caller should walk the array and decide if and how to handle errors.
+
 The `composer.let` variables in scope at the `parallel` combinator are in scope
 in the branches. But each branch has its own copy of the execution context.
 Variable mutations in one branch are not reflected in other branches or in the
@@ -475,6 +482,13 @@
 type array. The elements of the array are the output parameter objects for the
 branches in order.
 
+Error results from the branches are included in the array of results like normal
+results. In particular, an error result from a branch does not interrupt the
+parallel execution of the other branches. Moreover, since errors results are
+nested inside an output parameter object with a single `value` field, an error
+from a branch does not trigger the execution of the current error handler. The
+caller should walk the array and decide if and how to handle errors.
+
 The `composer.let` variables in scope at the `map` combinator are in scope in
 the branches. But each branch has its own copy of the execution context.
 Variable mutations in one branch are not reflected in other branches or in the