What's wrong with using Html.map?

So this implies using a single Msg type through your app, you still have hierarchy inside of it? Seems that any reasonably-sized app should have some form of hierarchal structure.

Something like that:

type Msg = 
  | CommonAppRelated
  | PartRelated (DoSomethingWithPart | DoSomethingElseWithPart)
  | OtherPartRelated (DoSomethingWithOtherPart | DoSomethingElseWithOtherPart)
  

?