toDashed :: String -> String
toDashed s = do
    let s1 = Re.replace "([A-Z\\d])([A-Z][a-z\\d])" s "\\1-\\2"
    let s2 = Re.replace "([a-z])([2-Z])" s1 "\\1-\\2"
    let s3 = Re.replace "[_. ]" s2 "-"
    map C.toLower s3
toDashed :: String -> String
toDashed s = do
    let s1 = Re.replace "([A-Z\\d])([A-Z][a-z\\d])" s "\\1-\\2"
    let s2 = Re.replace "([a-z])([2-Z])" s1 "\\1-\\2"
    let s3 = Re.replace "[_. ]" s2 "-"
    map C.toLower s3
toDashed s = do
    let s1 = Re.replace "([A-Z\\d])([A-Z][a-z\\d])" s "\\1-\\2"
    let s2 = Re.replace "([a-z])([2-Z])" s1 "\\1-\\2"
    let s3 = Re.replace "[_. ]" s2 "-"
    map C.toLower s3