aboutsummaryrefslogtreecommitdiff
path: root/ABC/Misc.icl
blob: 15e5b9d391ea4c94cb6220c1714ea0369dca986b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
implementation module ABC.Misc

import StdEnv

abortn :: String -> a
abortn s = abort (s +++ "\n")

(<+) infixl 5 :: a b -> String | toString a & toString b
(<+) a b = toString a +++ toString b

(<++) infixl 5 :: a (g, [b]) -> String | toString a & toString b & toString g
(<++) a (g,xs) = a <+ printersperse g xs

printersperse :: a [b] -> String | toString a & toString b
printersperse g []     = ""
printersperse g [x]    = toString x
printersperse g [x:xs] = x <+ g <++ (g, xs)