fay-0.19: tests/DesugarFFI.hs
module DesugarFFI where
import Prelude
import FFI
-- top-level FFI call with multi type signature
addOne, addTwo :: Int -> Int
addOne = ffi "%1 + 1"
addTwo = ffi "%1 + 2"
-- FFI call in a let binding
addThree :: Int -> Int
addThree x =
let go :: Int -> Int
go = ffi "%1 + 3"
in go x
-- FFI call in a where binding
addFour :: Int -> Int
addFour x = go x
where
go :: Int -> Int
go = ffi "%1 + 4"
main = do
let result = addOne . addTwo . addThree . addFour $ 0
putStrLn $ show result