First, consider the following type aliases
type alias Init options state = options -> state
-- type alias Init option state = Vector -> options -> state
-- alternative version if using inline styles
type alias Update action state = action -> state -> state