c2hs-0.28.7: tests/bugs/issue-230/Issue230.chs
module Main where
#include "issue230.h"
import Control.Monad (liftM)
import Foreign.C
cIntConv :: CInt-> Int
cIntConv = fromIntegral
cDblConv :: CDouble -> Double
cDblConv = realToFrac
main :: IO ()
main = do
test1 <- {#call make_test1#}
val1A <- liftM cIntConv $ {#get test1->a#} test1
val1B <- liftM cIntConv $ {#get test1->b#} test1
val1C <- liftM cIntConv $ {#get test1->c#} test1
val1D <- liftM cDblConv $ {#get test1->d#} test1
test2 <- {#call make_test2#}
val2A <- liftM cIntConv $ {#get test2->a#} test2
val2B <- liftM cIntConv $ {#get test2->b#} test2
val2C <- liftM cIntConv $ {#get test2->c#} test2
val2D <- liftM cDblConv $ {#get test2->d#} test2
putStrLn (show val1A)
putStrLn (show val1B)
putStrLn (show val1C)
putStrLn (show val1D)
putStrLn (show val2A)
putStrLn (show val2B)
putStrLn (show $ val2C /= 7)
putStrLn (show val2D)
return ()