module Language.Fay.FFI
(Fay
,Foreign
,Nullable (..)
,Defined (..)
,ffi)
where
import Language.Fay.Types
import Prelude (Bool, Char, Double, Int, Maybe, String,
error)
class Foreign a
instance Foreign ()
instance Foreign Double
instance Foreign Int
instance Foreign Char
instance Foreign Bool
instance Foreign a => Foreign [a]
instance (Foreign a, Foreign b) => Foreign (a,b)
instance (Foreign a, Foreign b, Foreign c) => Foreign (a,b,c)
instance (Foreign a, Foreign b, Foreign c, Foreign d) => Foreign (a,b,c,d)
instance (Foreign a, Foreign b, Foreign c, Foreign d,
Foreign e) => Foreign (a,b,c,d,e)
instance (Foreign a, Foreign b, Foreign c, Foreign d,
Foreign e, Foreign f) => Foreign (a,b,c,d,e,f)
instance (Foreign a, Foreign b, Foreign c, Foreign d,
Foreign e, Foreign f, Foreign g) => Foreign (a,b,c,d,e,f,g)
instance Foreign a => Foreign (Fay a)
instance (Foreign a,Foreign b) => Foreign (a -> b)
instance Foreign a => Foreign (Maybe a)
data Nullable a = Nullable a | Null
instance Foreign a => Foreign (Nullable a)
data Defined a = Defined a | Undefined
instance Foreign a => Foreign (Defined a)
ffi
:: Foreign a
=> String
-> a
ffi = error "Language.Fay.FFI.foreignFay: Used foreign function not in a JS engine context."