newUser :: Monad m => (Name -> User -> m a) -> Msg -> m Msg
newUser pUser (Msg name0 _ _) = do
    let mId  = 1
    let user = User name0 mId
    pUser name0 user
    return (mkMsg name0 mId)
newUser :: Monad m => (Name -> User -> m a) -> Msg -> m Msg
newUser pUser (Msg name0 _ _) = do
    let mId  = 1
    let user = User name0 mId
    pUser name0 user
    return (mkMsg name0 mId)
newUser pUser (Msg name0 _ _) = do
    let mId  = 1
    let user = User name0 mId
    pUser name0 user
    return (mkMsg name0 mId)