move
  :: Position -- ^ Initial `Position`
  -> Char -- ^ Movement directive (any of "UDLR")
  -> Position -- ^ New `Position`
move (x, y) c =
  case c of
    'U' -> (x, y - 1)
    'R' -> (x + 1, y)
    'D' -> (x, y + 1)
    'L' -> (x - 1, y)
    _ -> (x, y)
move
  :: Position -- ^ Initial `Position`
  -> Char -- ^ Movement directive (any of "UDLR")
  -> Position
move (x, y) c =
  case c of
    'U' -> (x, y - 1)
    'R' -> (x + 1, y)
    'D' -> (x, y + 1)
    'L' -> (x - 1, y)
    _ -> (x, y)
move (x, y) c =
  case c of
    'U' -> (x, y - 1)
    'R' -> (x + 1, y)
    'D' -> (x, y + 1)
    'L' -> (x - 1, y)
    _ -> (x, y)