Fay:无法解析合格的名字ffi?

时间:2014-01-25 17:49:32

标签: haskell fay

我已安装:

  • 仙女-0.19.0.1
  • 仙女碱基0.19

我正在尝试编译

-- test.hs
module Main where

import FFI

main = ffi "alert('hello world');"

fay test.hs

获得

fay: unable to resolve qualified names ffi

请注意,我能够使用fay-jquery,fay-text等编译内容。完整的源文件可以编译和运行(使用fay-base)并执行我希望它们在执行时执行的操作。但是当我尝试在任何一个中使用ffi时,我会收到此错误。

使用ffi的fay-jquery,fay-dom和其他软件包在我导入时似乎表现得很好。

我不确定还有什么要提的?我正在使用ghc 7.6.3,运行Ubuntu。

帮助将不胜感激:)

1 个答案:

答案 0 :(得分:3)

导入Prelude并使用FFI为任何内容添加类型签名。

module Console (main) where

import Prelude
import FFI

main :: Fay ()
main = putStrLn (showInt (fib 10))

fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)

showInt :: Int -> String
showInt = ffi "%1+''"

编译。

评论import Prelude会返回错误:src/console.hs:7:8: Not in scope: putStrLn'等。

评论showInt :: Int -> String会返回错误:fay: your FFI declaration needs a type signature: showInt = ffi "%1+''"

解决这些问题并再次发挥作用。

我们的Fay苏维埃的光荣领袖告诉我,如果你的劳工护照上有正确的印章,import Prelude就不再需要了。