к
type Compnent =
( msg : Type
, state : Type
, initialStae : state
, update :: msg -> state -> state
, view : state -> HTML
)
combine : Component -> Component -> Component
combine a b = ((a.msg, b.msg), ... )
и можно спокойно композировать компоненты без бойлерплейта