-- !!! cc001 -- ccall with standard boxed arguments and results

module ShouldCompile where

-- simple functions

foreign import ccall unsafe "a" a :: IO Int

foreign import ccall unsafe "b" b :: Int -> IO Int

foreign import ccall unsafe "c"
  c :: Int -> Char -> Float -> Double -> IO Float

-- simple monadic code

d =     a               >>= \ x ->
        b x             >>= \ y ->
        c y 'f' 1.0 2.0



