+import GlaExts
+
data CList = CNil | CCons Int# CList
mk :: Int# -> CList
mk n = case (n ==# 0#) of
- 0# -> CNil
- _ -> CCons 1# (mk (n `minusInt#` 1#))
+ False -> CNil
+ _ -> CCons 1# (mk (n -# 1#))
clen :: CList -> Int#
clen CNil = 0#
clen (CCons _ cl) = 1# +# (clen cl)
-main = case len4_twice of
+main = putStr (case len4_twice of
8# -> "bingo\n"
- _ -> "oops\n"
+ _ -> "oops\n")
where
list4 = mk 4#
len4 = clen list4