M s.t. 'a Value.t M.t == 'a Computation.t?

Let’s start with blender. Then let’s remove the 3D rendering part. What we are left with is a bunch of 2d windows, panels, forms, trees, etc …

I think part of the struggle is this.

  1. Most are familiar with model-view-controller

  2. Most are familiar with React’s data → Vdom.t

Because of the above, the Model.t, Action.t, apply: Model.t → Action.t → Model.t are very familiar.

So now we have this issue of how do we build bigger things from smaller things.

  1. If the answer is: bigger state machines from smaller state machines – the I’m missing something obvious, see the struggle in How to Compose Janestreet/Bonsai components?

  2. If instead, the answer is not: bigger state machines from smaller state machines, it seems like we are deviating off the path of model-view-controller or react’s data → vdom.t ; it’s a bit unfortunate that just as we leave the familiar analogies, the documentation / guide ends. :slight_smile:

That said, it is entirely possible I am missing something very obvious, as it appears no one else is struggling with this / bonsai.