init should return (Model, Cmd Msg), not (Msg, Cmd Msg). For some reason the compiler error got a bit confusing.
init
(Model, Cmd Msg)
(Msg, Cmd Msg)