Skip to content

Commit e12c33a

Browse files
committed
update tut index
1 parent a2f767c commit e12c33a

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

docs/src/main/tut/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ yarn add xreact
3030
### Purely Functional, Declarative, and Monadic
3131
In imperatively code, you have to describe verbose of how to process data. With `xreact`, we simply define data transformations, then compose them to form data flow. There are no variables, no intermediate state, and no side effects in your data flow's data composition!
3232

33+
For FP maniac, you will definitely have fun with [FantasyX](https://xreact.oyanglul.us/Fantasy.html), which implemented Functor and Applicative type class instances on top of xReact, with State Monad.
34+
3335
### Typesafe and scalable
3436
xReact is 100% Typescript! Turn your runtime bugs into compile time errors, fail and fix early.
3537

@@ -43,7 +45,7 @@ const plan1_x_plan2_x = compose(x(plan1), x(plan2))
4345
const Counter = plan1_x_plan2_x(CounterView)
4446
```
4547

46-
What really happen behind compose is actually ES6 style mixin, so there won't be any extra layer of HoC and no any performance overhead.
48+
What really happen behind compose is actually ES6 style mixin, so there won't be any extra layer of HoC or any performance overhead.
4749

4850
### Asynchronous made easy
4951
Asynchronous functions, such as Promises, can be converted to a stream and then flat-mapped.

0 commit comments

Comments
 (0)