-- GENERATED by C->Haskell Compiler, version 0.13.13 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Graphics/UI/Gtk/WebKit/DOM/Node.chs" #-}
module Graphics.UI.Gtk.WebKit.DOM.Node(
insertBefore,
replaceChild,
removeChild,
appendChild,
hasChildNodes,
cloneNode,
normalize,
isSupported,
isSameNode,
isEqualNode,
lookupPrefix,
isDefaultNamespace,
lookupNamespaceURI,
compareDocumentPosition,
contains,
pattern ELEMENT_NODE,
pattern ATTRIBUTE_NODE,
pattern TEXT_NODE,
pattern CDATA_SECTION_NODE,
pattern ENTITY_REFERENCE_NODE,
pattern ENTITY_NODE,
pattern PROCESSING_INSTRUCTION_NODE,
pattern COMMENT_NODE,
pattern DOCUMENT_NODE,
pattern DOCUMENT_TYPE_NODE,
pattern DOCUMENT_FRAGMENT_NODE,
pattern NOTATION_NODE,
pattern DOCUMENT_POSITION_DISCONNECTED,
pattern DOCUMENT_POSITION_PRECEDING,
pattern DOCUMENT_POSITION_FOLLOWING,
pattern DOCUMENT_POSITION_CONTAINS,
pattern DOCUMENT_POSITION_CONTAINED_BY,
pattern DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC,
getNodeName,
setNodeValue,
getNodeValue,
getNodeType,
getParentNode,
getChildNodes,
getFirstChild,
getLastChild,
getPreviousSibling,
getNextSibling,
getOwnerDocument,
getNamespaceURI,
setPrefix,
getPrefix,
getLocalName,
getBaseURI,
setTextContent,
getTextContent,
getParentElement,
Node,
castToNode,
gTypeNode,
NodeClass,
toNode,
) where
import Prelude hiding (drop, error, print)
import Data.Typeable (Typeable)
import Foreign.Marshal (maybePeek, maybeWith)
import System.Glib.FFI (maybeNull, withForeignPtr, nullForeignPtr, Ptr, nullPtr, castPtr, Word, Int64, Word64, CChar(..), CInt(..), CUInt(..), CLong(..), CULong(..), CLLong(..), CULLong(..), CShort(..), CUShort(..), CFloat(..), CDouble(..), toBool, fromBool)
import System.Glib.UTFString (GlibString(..), readUTFString)
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Monad.IO.Class (MonadIO(..))
import System.Glib.GError
import Graphics.UI.Gtk.WebKit.DOM.EventTargetClosures
import Graphics.UI.Gtk.WebKit.DOM.EventM
import Graphics.UI.Gtk.WebKit.Types
{-# LINE 71 "./Graphics/UI/Gtk/WebKit/DOM/Node.chs" #-}
import Graphics.UI.Gtk.WebKit.DOM.Enums

 
insertBefore ::
             (MonadIO m, NodeClass self, NodeClass newChild,
              NodeClass refChild) =>
               self -> Maybe newChild -> Maybe refChild -> m (Maybe Node)
insertBefore self newChild refChild
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         (propagateGError $
            \ errorPtr_ ->
              (\(Node arg1) (Node arg2) (Node arg3) arg4 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->withForeignPtr arg3 $ \argPtr3 ->webkit_dom_node_insert_before argPtr1 argPtr2 argPtr3 arg4) (toNode self)
                (maybe (Node nullForeignPtr) toNode newChild)
                (maybe (Node nullForeignPtr) toNode refChild)
                errorPtr_))
 
replaceChild ::
             (MonadIO m, NodeClass self, NodeClass newChild,
              NodeClass oldChild) =>
               self -> Maybe newChild -> Maybe oldChild -> m (Maybe Node)
replaceChild self newChild oldChild
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         (propagateGError $
            \ errorPtr_ ->
              (\(Node arg1) (Node arg2) (Node arg3) arg4 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->withForeignPtr arg3 $ \argPtr3 ->webkit_dom_node_replace_child argPtr1 argPtr2 argPtr3 arg4) (toNode self)
                (maybe (Node nullForeignPtr) toNode newChild)
                (maybe (Node nullForeignPtr) toNode oldChild)
                errorPtr_))
 
removeChild ::
            (MonadIO m, NodeClass self, NodeClass oldChild) =>
              self -> Maybe oldChild -> m (Maybe Node)
removeChild self oldChild
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         (propagateGError $
            \ errorPtr_ ->
              (\(Node arg1) (Node arg2) arg3 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->webkit_dom_node_remove_child argPtr1 argPtr2 arg3) (toNode self)
                (maybe (Node nullForeignPtr) toNode oldChild)
                errorPtr_))
 
appendChild ::
            (MonadIO m, NodeClass self, NodeClass newChild) =>
              self -> Maybe newChild -> m (Maybe Node)
appendChild self newChild
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         (propagateGError $
            \ errorPtr_ ->
              (\(Node arg1) (Node arg2) arg3 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->webkit_dom_node_append_child argPtr1 argPtr2 arg3) (toNode self)
                (maybe (Node nullForeignPtr) toNode newChild)
                errorPtr_))
 
hasChildNodes :: (MonadIO m, NodeClass self) => self -> m Bool
hasChildNodes self
  = liftIO
      (toBool <$>
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_has_child_nodes argPtr1) (toNode self)))
 
cloneNode ::
          (MonadIO m, NodeClass self) => self -> Bool -> m (Maybe Node)
cloneNode self deep
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         ((\(Node arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_clone_node argPtr1 arg2) (toNode self)
            (fromBool deep)))
 
normalize :: (MonadIO m, NodeClass self) => self -> m ()
normalize self
  = liftIO ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_normalize argPtr1) (toNode self))
 
isSupported ::
            (MonadIO m, NodeClass self, GlibString string) =>
              self -> string -> (Maybe string) -> m Bool
isSupported self feature version
  = liftIO
      (toBool <$>
         (maybeWith withUTFString version $
            \ versionPtr ->
              withUTFString feature $
                \ featurePtr ->
                  (\(Node arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_is_supported argPtr1 arg2 arg3) (toNode self) featurePtr
                versionPtr))
 
isSameNode ::
           (MonadIO m, NodeClass self, NodeClass other) =>
             self -> Maybe other -> m Bool
isSameNode self other
  = liftIO
      (toBool <$>
         ((\(Node arg1) (Node arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->webkit_dom_node_is_same_node argPtr1 argPtr2) (toNode self)
            (maybe (Node nullForeignPtr) toNode other)))
 
isEqualNode ::
            (MonadIO m, NodeClass self, NodeClass other) =>
              self -> Maybe other -> m Bool
isEqualNode self other
  = liftIO
      (toBool <$>
         ((\(Node arg1) (Node arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->webkit_dom_node_is_equal_node argPtr1 argPtr2) (toNode self)
            (maybe (Node nullForeignPtr) toNode other)))
 
lookupPrefix ::
             (MonadIO m, NodeClass self, GlibString string) =>
               self -> (Maybe string) -> m (Maybe string)
lookupPrefix self namespaceURI
  = liftIO
      ((maybeWith withUTFString namespaceURI $
          \ namespaceURIPtr ->
            (\(Node arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_lookup_prefix argPtr1 arg2) (toNode self)
              namespaceURIPtr)
         >>=
         maybePeek readUTFString)
 
isDefaultNamespace ::
                   (MonadIO m, NodeClass self, GlibString string) =>
                     self -> (Maybe string) -> m Bool
isDefaultNamespace self namespaceURI
  = liftIO
      (toBool <$>
         (maybeWith withUTFString namespaceURI $
            \ namespaceURIPtr ->
              (\(Node arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_is_default_namespace argPtr1 arg2) (toNode self)
                namespaceURIPtr))
 
lookupNamespaceURI ::
                   (MonadIO m, NodeClass self, GlibString string) =>
                     self -> (Maybe string) -> m (Maybe string)
lookupNamespaceURI self prefix
  = liftIO
      ((maybeWith withUTFString prefix $
          \ prefixPtr ->
            (\(Node arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_lookup_namespace_uri argPtr1 arg2) (toNode self)
              prefixPtr)
         >>=
         maybePeek readUTFString)
 
compareDocumentPosition ::
                        (MonadIO m, NodeClass self, NodeClass other) =>
                          self -> Maybe other -> m Word
compareDocumentPosition self other
  = liftIO
      (fromIntegral <$>
         ((\(Node arg1) (Node arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->webkit_dom_node_compare_document_position argPtr1 argPtr2) (toNode self)
            (maybe (Node nullForeignPtr) toNode other)))
 
contains ::
         (MonadIO m, NodeClass self, NodeClass other) =>
           self -> Maybe other -> m Bool
contains self other
  = liftIO
      (toBool <$>
         ((\(Node arg1) (Node arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->webkit_dom_node_contains argPtr1 argPtr2) (toNode self)
            (maybe (Node nullForeignPtr) toNode other)))
pattern ELEMENT_NODE = 1
pattern ATTRIBUTE_NODE = 2
pattern TEXT_NODE = 3
pattern CDATA_SECTION_NODE = 4
pattern ENTITY_REFERENCE_NODE = 5
pattern ENTITY_NODE = 6
pattern PROCESSING_INSTRUCTION_NODE = 7
pattern COMMENT_NODE = 8
pattern DOCUMENT_NODE = 9
pattern DOCUMENT_TYPE_NODE = 10
pattern DOCUMENT_FRAGMENT_NODE = 11
pattern NOTATION_NODE = 12
pattern DOCUMENT_POSITION_DISCONNECTED = 1
pattern DOCUMENT_POSITION_PRECEDING = 2
pattern DOCUMENT_POSITION_FOLLOWING = 4
pattern DOCUMENT_POSITION_CONTAINS = 8
pattern DOCUMENT_POSITION_CONTAINED_BY = 16
pattern DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32
 
getNodeName ::
            (MonadIO m, NodeClass self, GlibString string) =>
              self -> m (Maybe string)
getNodeName self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_node_name argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
setNodeValue ::
             (MonadIO m, NodeClass self, GlibString string) =>
               self -> (Maybe string) -> m ()
setNodeValue self val
  = liftIO
      (propagateGError $
         \ errorPtr_ ->
           maybeWith withUTFString val $
             \ valPtr ->
               (\(Node arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_set_node_value argPtr1 arg2 arg3) (toNode self) valPtr
             errorPtr_)
 
getNodeValue ::
             (MonadIO m, NodeClass self, GlibString string) =>
               self -> m (Maybe string)
getNodeValue self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_node_value argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
getNodeType :: (MonadIO m, NodeClass self) => self -> m Word
getNodeType self
  = liftIO
      (fromIntegral <$>
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_node_type argPtr1) (toNode self)))
 
getParentNode ::
              (MonadIO m, NodeClass self) => self -> m (Maybe Node)
getParentNode self
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_parent_node argPtr1) (toNode self)))
 
getChildNodes ::
              (MonadIO m, NodeClass self) => self -> m (Maybe NodeList)
getChildNodes self
  = liftIO
      (maybeNull (makeNewGObject mkNodeList)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_child_nodes argPtr1) (toNode self)))
 
getFirstChild ::
              (MonadIO m, NodeClass self) => self -> m (Maybe Node)
getFirstChild self
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_first_child argPtr1) (toNode self)))
 
getLastChild ::
             (MonadIO m, NodeClass self) => self -> m (Maybe Node)
getLastChild self
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_last_child argPtr1) (toNode self)))
 
getPreviousSibling ::
                   (MonadIO m, NodeClass self) => self -> m (Maybe Node)
getPreviousSibling self
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_previous_sibling argPtr1) (toNode self)))
 
getNextSibling ::
               (MonadIO m, NodeClass self) => self -> m (Maybe Node)
getNextSibling self
  = liftIO
      (maybeNull (makeNewGObject mkNode)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_next_sibling argPtr1) (toNode self)))
 
getOwnerDocument ::
                 (MonadIO m, NodeClass self) => self -> m (Maybe Document)
getOwnerDocument self
  = liftIO
      (maybeNull (makeNewGObject mkDocument)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_owner_document argPtr1) (toNode self)))
 
getNamespaceURI ::
                (MonadIO m, NodeClass self, GlibString string) =>
                  self -> m (Maybe string)
getNamespaceURI self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_namespace_uri argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
setPrefix ::
          (MonadIO m, NodeClass self, GlibString string) =>
            self -> (Maybe string) -> m ()
setPrefix self val
  = liftIO
      (propagateGError $
         \ errorPtr_ ->
           maybeWith withUTFString val $
             \ valPtr ->
               (\(Node arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_set_prefix argPtr1 arg2 arg3) (toNode self) valPtr
             errorPtr_)
 
getPrefix ::
          (MonadIO m, NodeClass self, GlibString string) =>
            self -> m (Maybe string)
getPrefix self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_prefix argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
getLocalName ::
             (MonadIO m, NodeClass self, GlibString string) =>
               self -> m (Maybe string)
getLocalName self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_local_name argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
getBaseURI ::
           (MonadIO m, NodeClass self, GlibString string) =>
             self -> m (Maybe string)
getBaseURI self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_base_uri argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
setTextContent ::
               (MonadIO m, NodeClass self, GlibString string) =>
                 self -> (Maybe string) -> m ()
setTextContent self val
  = liftIO
      (propagateGError $
         \ errorPtr_ ->
           maybeWith withUTFString val $
             \ valPtr ->
               (\(Node arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_set_text_content argPtr1 arg2 arg3) (toNode self) valPtr
             errorPtr_)
 
getTextContent ::
               (MonadIO m, NodeClass self, GlibString string) =>
                 self -> m (Maybe string)
getTextContent self
  = liftIO
      (((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_text_content argPtr1) (toNode self)) >>=
         maybePeek readUTFString)
 
getParentElement ::
                 (MonadIO m, NodeClass self) => self -> m (Maybe Element)
getParentElement self
  = liftIO
      (maybeNull (makeNewGObject mkElement)
         ((\(Node arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_node_get_parent_element argPtr1) (toNode self)))

foreign import ccall safe "webkit_dom_node_insert_before"
  webkit_dom_node_insert_before :: ((Ptr Node) -> ((Ptr Node) -> ((Ptr Node) -> ((Ptr (Ptr ())) -> (IO (Ptr Node))))))

foreign import ccall safe "webkit_dom_node_replace_child"
  webkit_dom_node_replace_child :: ((Ptr Node) -> ((Ptr Node) -> ((Ptr Node) -> ((Ptr (Ptr ())) -> (IO (Ptr Node))))))

foreign import ccall safe "webkit_dom_node_remove_child"
  webkit_dom_node_remove_child :: ((Ptr Node) -> ((Ptr Node) -> ((Ptr (Ptr ())) -> (IO (Ptr Node)))))

foreign import ccall safe "webkit_dom_node_append_child"
  webkit_dom_node_append_child :: ((Ptr Node) -> ((Ptr Node) -> ((Ptr (Ptr ())) -> (IO (Ptr Node)))))

foreign import ccall safe "webkit_dom_node_has_child_nodes"
  webkit_dom_node_has_child_nodes :: ((Ptr Node) -> (IO CInt))

foreign import ccall safe "webkit_dom_node_clone_node"
  webkit_dom_node_clone_node :: ((Ptr Node) -> (CInt -> (IO (Ptr Node))))

foreign import ccall safe "webkit_dom_node_normalize"
  webkit_dom_node_normalize :: ((Ptr Node) -> (IO ()))

foreign import ccall safe "webkit_dom_node_is_supported"
  webkit_dom_node_is_supported :: ((Ptr Node) -> ((Ptr CChar) -> ((Ptr CChar) -> (IO CInt))))

foreign import ccall safe "webkit_dom_node_is_same_node"
  webkit_dom_node_is_same_node :: ((Ptr Node) -> ((Ptr Node) -> (IO CInt)))

foreign import ccall safe "webkit_dom_node_is_equal_node"
  webkit_dom_node_is_equal_node :: ((Ptr Node) -> ((Ptr Node) -> (IO CInt)))

foreign import ccall safe "webkit_dom_node_lookup_prefix"
  webkit_dom_node_lookup_prefix :: ((Ptr Node) -> ((Ptr CChar) -> (IO (Ptr CChar))))

foreign import ccall safe "webkit_dom_node_is_default_namespace"
  webkit_dom_node_is_default_namespace :: ((Ptr Node) -> ((Ptr CChar) -> (IO CInt)))

foreign import ccall safe "webkit_dom_node_lookup_namespace_uri"
  webkit_dom_node_lookup_namespace_uri :: ((Ptr Node) -> ((Ptr CChar) -> (IO (Ptr CChar))))

foreign import ccall safe "webkit_dom_node_compare_document_position"
  webkit_dom_node_compare_document_position :: ((Ptr Node) -> ((Ptr Node) -> (IO CUShort)))

foreign import ccall safe "webkit_dom_node_contains"
  webkit_dom_node_contains :: ((Ptr Node) -> ((Ptr Node) -> (IO CInt)))

foreign import ccall safe "webkit_dom_node_get_node_name"
  webkit_dom_node_get_node_name :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_set_node_value"
  webkit_dom_node_set_node_value :: ((Ptr Node) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO ()))))

foreign import ccall safe "webkit_dom_node_get_node_value"
  webkit_dom_node_get_node_value :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_get_node_type"
  webkit_dom_node_get_node_type :: ((Ptr Node) -> (IO CUShort))

foreign import ccall safe "webkit_dom_node_get_parent_node"
  webkit_dom_node_get_parent_node :: ((Ptr Node) -> (IO (Ptr Node)))

foreign import ccall safe "webkit_dom_node_get_child_nodes"
  webkit_dom_node_get_child_nodes :: ((Ptr Node) -> (IO (Ptr NodeList)))

foreign import ccall safe "webkit_dom_node_get_first_child"
  webkit_dom_node_get_first_child :: ((Ptr Node) -> (IO (Ptr Node)))

foreign import ccall safe "webkit_dom_node_get_last_child"
  webkit_dom_node_get_last_child :: ((Ptr Node) -> (IO (Ptr Node)))

foreign import ccall safe "webkit_dom_node_get_previous_sibling"
  webkit_dom_node_get_previous_sibling :: ((Ptr Node) -> (IO (Ptr Node)))

foreign import ccall safe "webkit_dom_node_get_next_sibling"
  webkit_dom_node_get_next_sibling :: ((Ptr Node) -> (IO (Ptr Node)))

foreign import ccall safe "webkit_dom_node_get_owner_document"
  webkit_dom_node_get_owner_document :: ((Ptr Node) -> (IO (Ptr Document)))

foreign import ccall safe "webkit_dom_node_get_namespace_uri"
  webkit_dom_node_get_namespace_uri :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_set_prefix"
  webkit_dom_node_set_prefix :: ((Ptr Node) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO ()))))

foreign import ccall safe "webkit_dom_node_get_prefix"
  webkit_dom_node_get_prefix :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_get_local_name"
  webkit_dom_node_get_local_name :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_get_base_uri"
  webkit_dom_node_get_base_uri :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_set_text_content"
  webkit_dom_node_set_text_content :: ((Ptr Node) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO ()))))

foreign import ccall safe "webkit_dom_node_get_text_content"
  webkit_dom_node_get_text_content :: ((Ptr Node) -> (IO (Ptr CChar)))

foreign import ccall safe "webkit_dom_node_get_parent_element"
  webkit_dom_node_get_parent_element :: ((Ptr Node) -> (IO (Ptr Element)))