Основной бойлерплейт - проброс ивентов во вложенных update. Это можно бороть, но всё равно такое себе занятие.
И, как уже выше сказали, написание декодеров и энкодеров. Во взрослых языках декодеры/энкодеры, а также куча всего другого выводятся компилятором, а в Elm - Do Repeat Yourself.