#ifndef __GHCJS__
#endif
module React.GHCJS
( currentDocument
, Document
, Element
, JSAny
, documentGetElementById
#ifdef __GHCJS__
, module X
#else
, ForeignRetention(..)
, JSRef(..)
, JSFun
, JSArray
, JSString
, FromJSString(..)
, ToJSString(..)
, FromJSRef(..)
, ToJSRef(..)
, castRef
, newObj
, setProp
, eqRef
, toArray
, setProp
, syncCallback1
, syncCallback2
#endif
) where
import qualified Data.Aeson as Aeson
import Data.String
import Data.Text (Text)
#ifdef __GHCJS__
import GHCJS.Foreign as X
import GHCJS.Marshal as X
import GHCJS.Types as X
import GHCJS.DOM (currentDocument)
import GHCJS.DOM.Types (Document, Element)
import GHCJS.DOM.Document (documentGetElementById)
#else
data Document
data Element
data JSRef a = JSRef
data JSString_
type JSFun = JSRef
type JSArray = JSRef
type JSString = JSRef JSString_
class ToJSString a where
toJSString :: a -> JSString
class FromJSString a where
fromJSString :: JSString -> a
class FromJSRef a where
fromJSRef :: JSRef a -> IO (Maybe a)
class ToJSRef a where
toJSRef :: a -> IO (JSRef a)
instance FromJSRef Aeson.Value
instance FromJSRef Int
instance (FromJSRef a, FromJSRef b) => FromJSRef (a, b)
instance FromJSRef (JSRef ())
instance ToJSRef Int
instance ToJSRef Aeson.Value
instance ToJSRef a => ToJSRef (Maybe a)
instance ToJSRef (JSRef a)
instance FromJSString String
instance FromJSString Text
instance FromJSString JSString
instance ToJSString String
instance ToJSString Text
instance ToJSString JSString
instance IsString JSString
currentDocument :: IO (Maybe Document)
currentDocument = undefined
documentGetElementById ::
self -> elementId -> IO (Maybe Element)
documentGetElementById = undefined
castRef :: JSRef a -> JSRef b
castRef _ = JSRef
newObj :: IO (JSRef a)
newObj = undefined
data ForeignRetention
= NeverRetain
| AlwaysRetain
| DomRetain (forall a. JSRef a)
eqRef :: JSRef a -> JSRef a -> Bool
eqRef = undefined
toArray :: [JSRef a] -> IO (JSArray a)
toArray = undefined
setProp :: ToJSString a => a -> JSRef b -> JSRef c -> IO ()
setProp = undefined
syncCallback1 :: ForeignRetention
-> Bool
-> (JSRef a -> IO b)
-> IO (JSFun (JSRef a -> IO b))
syncCallback1 = undefined
syncCallback2 :: ForeignRetention
-> Bool
-> (JSRef a -> JSRef b -> IO c)
-> IO (JSFun (JSRef a -> JSRef b -> IO c))
syncCallback2 = undefined
#endif
type JSAny = JSRef ()