addMovements
    :: Functor f
    => Vector2 Widget.R
    -> [Movement]
    -> (Maybe ActiveState -> f ())
    -> Widget.EventHandlers f
addMovements = mconcat
    [ addMovement "Down"  (keysDown  stdDirKeys) (Vector2   0    1)
    , addMovement "Up"    (keysUp    stdDirKeys) (Vector2   0  (-1))
    , addMovement "Right" (keysRight stdDirKeys) (Vector2   1    0)
    , addMovement "Left"  (keysLeft  stdDirKeys) (Vector2 (-1)   0)
    ]
addMovements
    :: Functor f
    => Vector2 Widget.R
    -> [Movement]
    -> (Maybe ActiveState -> f ())
    -> Widget.EventHandlers f
addMovements = mconcat
    [ addMovement "Down"  (keysDown  stdDirKeys) (Vector2   0    1)
    , addMovement "Up"    (keysUp    stdDirKeys) (Vector2   0  (-1))
    , addMovement "Right" (keysRight stdDirKeys) (Vector2   1    0)
    , addMovement "Left"  (keysLeft  stdDirKeys) (Vector2 (-1)   0)
    ]
addMovements = mconcat
    [ addMovement "Down"  (keysDown  stdDirKeys) (Vector2   0    1)
    , addMovement "Up"    (keysUp    stdDirKeys) (Vector2   0  (-1))
    , addMovement "Right" (keysRight stdDirKeys) (Vector2   1    0)
    , addMovement "Left"  (keysLeft  stdDirKeys) (Vector2 (-1)   0)
    ]