getFragment :: String -> String
getFragment s = case dropWhile (/= '#') s of
  _ : t -> t
  "" -> s
getFragment :: String -> String
getFragment s = case dropWhile (/= '#') s of
  _ : t -> t
  "" -> s
getFragment s = case dropWhile (/= '#') s of
  _ : t -> t
  "" -> s