implementation module StringUtils import StdEnv strlen :: String -> Int strlen s = length s` where s` :: [Char] s` = fromString s pad_right :: String Int -> String pad_right s l | strlen s >= l = s | otherwise = s +++ toString (repeatn (l - strlen s) ' ') pad_left :: String Int -> String pad_left s l | strlen s >= l = s | otherwise = toString (repeatn (l - strlen s) ' ') +++ s join :: String [String] -> String join glue [] = "" join glue [s] = s join glue [s:ss] = s +++ glue +++ join glue ss