Don’t you think that carrying a representation of the model through an asynchronous message is a “bad practice”?
To me the model might only be manipulated by the update function and served to this function from only one place. It means that at any moment in the app life cycle, it exists only one source of truth for the model; it is in one state, and there’s no communication of that model or a part of it asynchronously.
I haven’t find a case yet where it was absolutely *needed* to share (even partially) the model through an asynchronous message. I’ve read your previous article about how you build the elm-mdl library and, I am quite sure this sharing could be avoided.
How did you manage to overcome this issue eventually?