diff --git a/README.md b/README.md
index 7145ded76..0c48b2dd4 100644
--- a/README.md
+++ b/README.md
@@ -503,16 +503,16 @@ const firstTwoMax = ary(Math.max, 2);
[⬆ Back to top](#table-of-contents)
-### call
-
-Given a key and a set of arguments, call them when given a context. Primarily useful in composition.
-
-Use a closure to call a stored key with stored arguments.
-
+### call
+
+Given a key and a set of arguments, call them when given a context. Primarily useful in composition.
+
+Use a closure to call a stored key with stored arguments.
+
```js
const call = (key, ...args) => context => context[key](...args);
-```
-
+```
+
Examples
@@ -524,23 +524,23 @@ const map = call.bind(null, 'map');
Promise.resolve([1, 2, 3])
.then(map(x => 2 * x))
.then(console.log); //[ 2, 4, 6 ]
-```
+```
[⬆ Back to top](#table-of-contents)
-### collectInto
-
-Changes a function that accepts an array into a variadic function.
-
-Given a function, return a closure that collects all inputs into an array-accepting function.
-
+### collectInto
+
+Changes a function that accepts an array into a variadic function.
+
+Given a function, return a closure that collects all inputs into an array-accepting function.
+
```js
const collectInto = fn => (...args) => fn(args);
-```
-
+```
+
Examples
@@ -550,23 +550,23 @@ let p1 = Promise.resolve(1);
let p2 = Promise.resolve(2);
let p3 = new Promise(resolve => setTimeout(resolve, 2000, 3));
Pall(p1, p2, p3).then(console.log); // [1, 2, 3] (after about 2 seconds)
-```
+```
[⬆ Back to top](#table-of-contents)
-### flip
-
-Flip takes a function as an argument, then makes the first argument the last.
-
-Return a closure that takes variadic inputs, and splices the last argument to make it the first argument before applying the rest.
-
+### flip
+
+Flip takes a function as an argument, then makes the first argument the last.
+
+Return a closure that takes variadic inputs, and splices the last argument to make it the first argument before applying the rest.
+
```js
const flip = fn => (first, ...rest) => fn(...rest, first);
-```
-
+```
+
Examples
@@ -578,7 +578,7 @@ let mergePerson = mergeFrom.bind(null, a);
mergePerson(b); // == b
b = {};
Object.assign(b, a); // == b
-```
+```
[⬆ Back to top](#table-of-contents)
-### spreadOver
-
-Takes a variadic function and returns a closure that accepts an array of arguments to map to the inputs of the function.
-
-Use closures and the spread operator (`...`) to map the array of arguments to the inputs of the function.
-
+### spreadOver
+
+Takes a variadic function and returns a closure that accepts an array of arguments to map to the inputs of the function.
+
+Use closures and the spread operator (`...`) to map the array of arguments to the inputs of the function.
+
```js
const spreadOver = fn => argsArr => fn(...argsArr);
-```
-
+```
+
Examples
```js
const arrayMax = spreadOver(Math.max);
arrayMax([1, 2, 3]); // 3
-```
+```
Performs a deep comparison between two values to determine if they are equivalent.
Check if the two values are identical, if they are both Date objects with the same time, using Date.getTime() or if they are both non-object values with an equivalent value (strict comparison). Check if only one value is null or undefined or if their prototypes differ. If none of the above conditions are met, use Object.keys() to check if both values have the same number of keys, then use Array.every() to check if every key in the first value exists in the second one and if they are equivalent by calling this method recursively.
const equals = (a, b) => { if (a === b) return true; if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime(); - if (!a || !b || (typeof a != 'object' && typeof b !== 'object')) return a === b; + if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b; if (a === null || a === undefined || b === null || b === undefined) return false; if (a.prototype !== b.prototype) return false; let keys = Object.keys(a);