module Sound.MED.Basic.Pretty where pretty :: String -> String pretty = pretty' 0 pretty' :: Int -> String -> String pretty' _ [] = "\n" pretty' level (c:cs) = case c of ' ' -> pretty' level cs '=' -> " = " ++ pretty' level cs '{' -> "{\n" ++ indent (level+1) ++ pretty' (level+1) cs '}' -> "\n" ++ indent (level-1) ++ "}" ++ pretty' (level-1) cs '[' -> "[\n" ++ indent (level+1) ++ pretty' (level+1) cs ']' -> "\n" ++ indent (level-1) ++ "]" ++ pretty' (level-1) cs '(' -> "(\n" ++ indent (level+1) ++ pretty' (level+1) cs ')' -> "\n" ++ indent (level-1) ++ ")" ++ pretty' (level-1) cs ',' -> ",\n" ++ indent level ++ pretty' level cs _ -> c : pretty' level cs indent :: Int -> String indent level = replicate (level*4) ' '