yboardMouse ps key Up _ _ = case key of
  MouseButton LeftButton -> setB leftButton
  MouseButton RightButton -> setB rightButton
  MouseButton MiddleButton -> setB middleButton
  MouseButton WheelUp -> get ps >>= \p -> ps $$! p & cameraShift . cRadius
                                          %~ pred
  _ -> return ()
  where
    setB f = get ps >>= \p -> ps $$! p & mouseState . f .~ Up

keyboardMouse ps key Up _ _ = case key of
  MouseButton LeftButton -> setB leftButton
  MouseButton RightButton -> setB rightButton
  MouseButton MiddleButton -> setB middleButton
  MouseButton WheelUp -> get ps >>= \p -> ps $$! p & cameraShift . cRadius
                                          %~ pred
  _ -> return ()
  where
    setB f = get ps >>= \p -> ps $$! p & mouseState . f .~ Up
keyboardMouse ps key Up _ _ = case key of
  MouseButton LeftButton -> setB leftButton
  MouseButton RightButton -> setB rightButton
  MouseButton MiddleButton -> setB middleButton
  MouseButton WheelUp -> get ps >>= \p -> ps $$! p & cameraShift . cRadius
                                          %~ pred
  _ -> return ()
  where
    setB f = get ps >>= \p -> ps $$! p & mouseState . f .~ Up