graph TD
init(" init ")
init --- |"init:{state}<br/>init:[state, effect(s)]<br/>"|j0[ ] --- j1[ ] -->nextState
init --> |"init:Action<br/>init:[Action, payload?]"|Action
domevent("DOM/synthetic <br/>events<br/> (click/myevent) ") --> viewEvent
viewEvent((" view <br/>event")) --> Action
externalEvents("global/external<br/>processes<br/> (window resize) ") --> subscription
subscription(("subscription")) -->Action
Action[" Action <br/>(state change)"] -->|"OtherAction<br/> [OtherAction, payload?]<br/>"|Action
Action --- |"NextState<br/>[NextState, ...Effects]"|j2[ ] ---> nextState
nextState((" next <br/>state")) --- j3[ ]
j3 --> |"view(state)"|newDom(" (re)render <br/> DOM ")
j3 --> |"subscriptions(state)"|recalcSubs(recalc<br/>subscriptions)
j3 --> |"(dispatch, Payload?) -> void"|effect
effect("Effects<br>(impure code)") -.-> |"dispatch"|dispatchAction("Action")
style j0 height:1px;
style j0 width:1px;
style j1 height:1px;
style j1 width:1px;
style j2 height:1px;
style j2 width:1px;
style j3 height:1px;
style j3 width:1px;