fay-0.19: tests/JsFunctionPassing.hs
{-# LANGUAGE EmptyDataDecls #-}
module JsFunctionPassing where
import FFI
data Func
makeFunc0 :: Int -> Func
makeFunc0 = ffi "function() {return %1;}"
callFunc0 :: Func -> Fay Int
callFunc0 = ffi "%1()"
makeFunc1 :: Int -> Func
makeFunc1 = ffi "function(x) {return %1;}"
callFunc1 :: Func -> Fay Int
callFunc1 = ffi "%1(1)"
main = do
callFunc0 (makeFunc0 1) >>= print
callFunc1 (makeFunc1 2) >>= print