blob: 5a29a0eb3be8202f35a1a3bad02579f05c9555d0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
data CList = CNil | CCons Int# CList
mk :: Int# -> CList
mk n = case (n ==# 0#) of
0# -> CNil
_ -> CCons 1# (mk (n `minusInt#` 1#))
clen :: CList -> Int#
clen CNil = 0#
clen (CCons _ cl) = 1# +# (clen cl)
main = case len4_twice of
8# -> "bingo\n"
_ -> "oops\n"
where
list4 = mk 4#
len4 = clen list4
len4_twice = len4 +# len4
|