camelCase :: Bool -> String -> String
camelCase up s = case s of
  "" -> ""
  c : r -> if elem c "_-" then camelCase True r else
    [(if up then toUpper else toLower) c | isAlphaNum c]
    ++ camelCase False r
camelCase :: Bool -> String -> String
camelCase up s = case s of
  "" -> ""
  c : r -> if elem c "_-" then camelCase True r else
    [(if up then toUpper else toLower) c | isAlphaNum c]
    ++ camelCase False r
camelCase up s = case s of
  "" -> ""
  c : r -> if elem c "_-" then camelCase True r else
    [(if up then toUpper else toLower) c | isAlphaNum c]
    ++ camelCase False r