[project @ 1998-04-30 20:13:44 by sof]
[ghc-hetmet.git] / ghc / tests / codeGen / should_run / cg015.hs
1 module Main ( main ) where
2
3 import PrelBase
4
5 data CList = CNil | CCons Int# CList
6
7 mk :: Int# -> CList
8 mk n  = if (n ==# 0#)
9         then CNil
10         else CCons 1# (mk (n -# 1#))
11
12 clen :: CList -> Int#
13 clen CNil = 0#
14 clen (CCons _ cl) = 1# +# (clen cl)
15
16 main = case (clen list4) of
17                 len4 ->
18                   case (len4 +# len4) of
19                     8# -> finish 65#    -- 'A'
20                     _  -> finish 66#    -- 'B'
21       where
22       list4     = mk 4#
23
24 finish :: Int# -> IO ()
25 finish n = _ccall_ putchar (C# (chr# n)) >> return ()