summaryrefslogtreecommitdiff
path: root/ghc/compiler/tests/deSugar/ds035.hs
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