unEsc x
  | "&lt;" `isPrefixOf` x = '<' : unEsc (drop 4 x)
  | "&gt;" `isPrefixOf` x = '>' : unEsc (drop 4 x)
  | otherwise = head x : unEsc (tail x)
unEsc x
  | "&lt;" `isPrefixOf` x = '<' : unEsc (drop 4 x)
  | "&gt;" `isPrefixOf` x = '>' : unEsc (drop 4 x)
  | otherwise = head x : unEsc (tail x)
unEsc x
  | "&lt;" `isPrefixOf` x = '<' : unEsc (drop 4 x)
  | "&gt;" `isPrefixOf` x = '>' : unEsc (drop 4 x)
  | otherwise = head x : unEsc (tail x)