From a discussion with @mlms13
It might be handy to add some helper functions for filtering actions in the reducer that would result in a no-op/unnecessary Update.
One example is if your state is an AsyncData or AsyncResult, and it's currently in an Init state, and you dispatch an action that wants to map a function over your Complete(Ok(a)) value, but you're not in that state, it's better to return a NoUpdate rather than an Update that has no effect.
Example:
Update(AsyncResult.map(v => {...v, someChange}))
vs.
getOk >> fold(NoUpdate, v => Update(...))
There might be some handy helper functions for dealing with this to avoid unnecessary updates - it would be worth thinking about.
From a discussion with @mlms13
It might be handy to add some helper functions for filtering actions in the reducer that would result in a no-op/unnecessary
Update.One example is if your state is an
AsyncDataorAsyncResult, and it's currently in anInitstate, and you dispatch an action that wants to map a function over yourComplete(Ok(a))value, but you're not in that state, it's better to return aNoUpdaterather than anUpdatethat has no effect.Example:
There might be some handy helper functions for dealing with this to avoid unnecessary updates - it would be worth thinking about.