packages feed

jsaddle-dom 0.7.0.0 → 0.7.0.1

raw patch · 3 files changed

+24306/−23118 lines, 3 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ JSDOM: currentDocumentUnchecked :: MonadDOM m => m Document
+ JSDOM: currentWindowUnchecked :: MonadDOM m => m Window

Files

jsaddle-dom.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-dom-version: 0.7.0.0+version: 0.7.0.1 cabal-version: >=1.22 build-type: Simple license: MIT
src/JSDOM.hs view
@@ -1,7 +1,9 @@ {-# LANGUAGE OverloadedStrings, PatternSynonyms #-} module JSDOM (   currentWindow+, currentWindowUnchecked , currentDocument+, currentDocumentUnchecked , syncPoint , syncAfter , waitForAnimationFrame@@ -20,6 +22,12 @@ currentWindow :: MonadDOM m => m (Maybe Window) currentWindow = liftDOM $ jsg ("window" :: String) >>= fromJSVal +currentWindowUnchecked :: MonadDOM m => m Window+currentWindowUnchecked = liftDOM $ jsg ("window" :: String) >>= fromJSValUnchecked+ currentDocument :: MonadDOM m => m (Maybe Document) currentDocument = liftDOM $ jsg ("document" :: String) >>= fromJSVal++currentDocumentUnchecked :: MonadDOM m => m Document+currentDocumentUnchecked = liftDOM $ jsg ("document" :: String) >>= fromJSValUnchecked 
src/JSDOM/Types.hs view
@@ -828,23123 +828,24303 @@ instance FromJSVal GObject where   fromJSVal val = fmap GObject <$> maybeNullOrUndefined val   {-# INLINE fromJSVal #-}----instance IsGObject o => PToJSVal o where---  pToJSVal = unGObject . toGObject---  {-# INLINE pToJSVal #-}------instance IsGObject o => PFromJSVal o where---  pFromJSVal = unsafeCastGObject . GObject . castRef---  {-# INLINE pFromJSVal #-}------instance IsGObject o => ToJSVal o where---  toJSVal = return . unGObject . toGObject---  {-# INLINE toJSVal #-}------instance IsGObject o => FromJSVal o where---  fromJSVal = return . fmap (unsafeCastGObject . GObject . castRef) . maybeJSNullOrUndefined---  {-# INLINE fromJSVal #-}--instance IsGObject GObject where-  typeGType _ = gTypeGObject-  {-# INLINE typeGType #-}--#ifdef ghcjs_HOST_OS-foreign import javascript unsafe "Object" gTypeGObject :: IO GType-#else-gTypeGObject :: JSM GType-gTypeGObject = GType . Object <$> jsg "Object"-#endif--objectToString :: (IsGObject self, FromJSString result) => self -> JSM result-objectToString self = fromJSValUnchecked (unGObject $ toGObject self)---- | Fastest string type to use when you just---   want to take a string from the DOM then---   give it back as is.-type DOMString = JSString--fromJSStringArray :: FromJSString s => JSVal -> JSM [s]-fromJSStringArray a = do-    l <- a ^. js "length" >>= valToNumber-    mapM (\i -> fromJSString <$> (a !! i >>= valToStr)) [0..round l - 1]--toMaybeJSString :: ToJSString a => Maybe a -> JSM JSVal-toMaybeJSString Nothing = return valNull-toMaybeJSString (Just a) = toJSVal (toJSString a)-{-# INLINE toMaybeJSString #-}--fromMaybeJSString :: FromJSString a => JSVal -> JSM (Maybe a)-fromMaybeJSString = maybeNullOrUndefined' (fmap fromJSString . valToStr)-{-# INLINE fromMaybeJSString #-}--integralToDoubleToJSVal :: Integral a => a -> JSM JSVal-integralToDoubleToJSVal a = toJSVal (fromIntegral a :: Double)--integralFromDoubleFromJSVal :: Integral a => JSVal -> JSM (Maybe a)-integralFromDoubleFromJSVal = fmap (fmap round) . (fromJSVal :: JSVal -> JSM (Maybe Double))--integralFromDoubleFromJSValUnchecked :: Integral a => JSVal -> JSM a-integralFromDoubleFromJSValUnchecked = fmap round . (fromJSValUnchecked :: JSVal -> JSM Double)--type ToDOMString s = ToJSString s-type FromDOMString s = FromJSString s-type IsDOMString s = (ToDOMString s, FromDOMString s)---- Callbacks-newtype Callback a = Callback Function--withCallback :: (MonadDOM m, Coercible c Function)-             => JSM c -> (c -> JSM a) -> m a-withCallback aquire f = do-    jsCtx <- askJSM-    liftIO $ bracket-        (runJSM aquire jsCtx)-        ((`runJSM` jsCtx) . freeFunction . coerce)-        (\t -> runJSM (f t) jsCtx)--newtype AudioBufferCallback = AudioBufferCallback (Callback (JSVal -> IO ()))-instance ToJSVal AudioBufferCallback where toJSVal (AudioBufferCallback (Callback r)) = toJSVal r-newtype DatabaseCallback = DatabaseCallback (Callback (JSVal -> IO ()))-instance ToJSVal DatabaseCallback where toJSVal (DatabaseCallback (Callback r)) = toJSVal r-newtype MediaQueryListListener = MediaQueryListListener (Callback (JSVal -> IO ()))-instance ToJSVal MediaQueryListListener where toJSVal (MediaQueryListListener (Callback r)) = toJSVal r-newtype MediaStreamTrackSourcesCallback = MediaStreamTrackSourcesCallback (Callback (JSVal -> IO ()))-instance ToJSVal MediaStreamTrackSourcesCallback where toJSVal (MediaStreamTrackSourcesCallback (Callback r)) = toJSVal r-newtype NavigatorUserMediaErrorCallback = NavigatorUserMediaErrorCallback (Callback (JSVal -> IO ()))-instance ToJSVal NavigatorUserMediaErrorCallback where toJSVal (NavigatorUserMediaErrorCallback (Callback r)) = toJSVal r-newtype NavigatorUserMediaSuccessCallback = NavigatorUserMediaSuccessCallback (Callback (JSVal -> IO ()))-instance ToJSVal NavigatorUserMediaSuccessCallback where toJSVal (NavigatorUserMediaSuccessCallback (Callback r)) = toJSVal r-newtype NotificationPermissionCallback permissions = NotificationPermissionCallback (Callback (JSVal -> IO ()))-instance ToJSVal (NotificationPermissionCallback permissions) where toJSVal (NotificationPermissionCallback (Callback r)) = toJSVal r-newtype PositionCallback = PositionCallback (Callback (JSVal -> IO ()))-instance ToJSVal PositionCallback where toJSVal (PositionCallback (Callback r)) = toJSVal r-newtype PositionErrorCallback = PositionErrorCallback (Callback (JSVal -> IO ()))-instance ToJSVal PositionErrorCallback where toJSVal (PositionErrorCallback (Callback r)) = toJSVal r-newtype RequestAnimationFrameCallback = RequestAnimationFrameCallback (Callback (JSVal -> IO ()))-instance ToJSVal RequestAnimationFrameCallback where toJSVal (RequestAnimationFrameCallback (Callback r)) = toJSVal r-newtype RTCPeerConnectionErrorCallback = RTCPeerConnectionErrorCallback (Callback (JSVal -> IO ()))-instance ToJSVal RTCPeerConnectionErrorCallback where toJSVal (RTCPeerConnectionErrorCallback (Callback r)) = toJSVal r-newtype RTCSessionDescriptionCallback = RTCSessionDescriptionCallback (Callback (JSVal -> IO ()))-instance ToJSVal RTCSessionDescriptionCallback where toJSVal (RTCSessionDescriptionCallback (Callback r)) = toJSVal r-newtype RTCStatsCallback = RTCStatsCallback (Callback (JSVal -> IO ()))-instance ToJSVal RTCStatsCallback where toJSVal (RTCStatsCallback (Callback r)) = toJSVal r-newtype SQLStatementCallback = SQLStatementCallback (Callback (JSVal -> JSVal -> IO ()))-instance ToJSVal SQLStatementCallback where toJSVal (SQLStatementCallback (Callback r)) = toJSVal r-newtype SQLStatementErrorCallback = SQLStatementErrorCallback (Callback (JSVal -> JSVal -> IO ()))-instance ToJSVal SQLStatementErrorCallback where toJSVal (SQLStatementErrorCallback (Callback r)) = toJSVal r-newtype SQLTransactionCallback = SQLTransactionCallback (Callback (JSVal -> IO ()))-instance ToJSVal SQLTransactionCallback where toJSVal (SQLTransactionCallback (Callback r)) = toJSVal r-newtype SQLTransactionErrorCallback = SQLTransactionErrorCallback (Callback (JSVal -> IO ()))-instance ToJSVal SQLTransactionErrorCallback where toJSVal (SQLTransactionErrorCallback (Callback r)) = toJSVal r-newtype StorageErrorCallback = StorageErrorCallback (Callback (JSVal -> IO ()))-instance ToJSVal StorageErrorCallback where toJSVal (StorageErrorCallback (Callback r)) = toJSVal r-newtype StorageQuotaCallback = StorageQuotaCallback (Callback (JSVal -> IO ()))-instance ToJSVal StorageQuotaCallback where toJSVal (StorageQuotaCallback (Callback r)) = toJSVal r-newtype StorageUsageCallback = StorageUsageCallback (Callback (JSVal -> JSVal -> IO ()))-instance ToJSVal StorageUsageCallback where toJSVal (StorageUsageCallback (Callback r)) = toJSVal r-newtype StringCallback s = StringCallback (Callback (JSVal -> IO ()))-instance ToJSVal (StringCallback s) where toJSVal (StringCallback (Callback r)) = toJSVal r-newtype VoidCallback = VoidCallback (Callback (IO ()))-instance ToJSVal VoidCallback where toJSVal (VoidCallback (Callback r)) = toJSVal r---- Custom types-#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype SerializedScriptValue = SerializedScriptValue { unSerializedScriptValue :: JSVal }--instance PToJSVal SerializedScriptValue where-  pToJSVal = unSerializedScriptValue-  {-# INLINE pToJSVal #-}--instance PFromJSVal SerializedScriptValue where-  pFromJSVal = SerializedScriptValue-  {-# INLINE pFromJSVal #-}--instance ToJSVal SerializedScriptValue where-  toJSVal = return . unSerializedScriptValue-  {-# INLINE toJSVal #-}--instance FromJSVal SerializedScriptValue where-  fromJSVal v = fmap SerializedScriptValue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsSerializedScriptValue o-toSerializedScriptValue :: IsSerializedScriptValue o => o -> SerializedScriptValue-toSerializedScriptValue = SerializedScriptValue . coerce--instance IsSerializedScriptValue SerializedScriptValue-instance IsGObject SerializedScriptValue where-  typeGType _ = error "Unable to get the JavaScript type of SerializedScriptValue"-#else--- TODO work out how we can support SerializedScriptValue in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype PositionOptions = PositionOptions { unPositionOptions :: JSVal }--instance PToJSVal PositionOptions where-  pToJSVal = unPositionOptions-  {-# INLINE pToJSVal #-}--instance PFromJSVal PositionOptions where-  pFromJSVal = PositionOptions-  {-# INLINE pFromJSVal #-}--instance ToJSVal PositionOptions where-  toJSVal = return . unPositionOptions-  {-# INLINE toJSVal #-}--instance FromJSVal PositionOptions where-  fromJSVal v = fmap PositionOptions <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsPositionOptions o-toPositionOptions :: IsPositionOptions o => o -> PositionOptions-toPositionOptions = PositionOptions . coerce--instance IsPositionOptions PositionOptions-instance IsGObject PositionOptions where-  typeGType _ = error "Unable to get the JavaScript type of PositionOptions"-#else--- TODO work out how we can support PositionOptions in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Dictionary = Dictionary { unDictionary :: JSVal }--instance PToJSVal Dictionary where-  pToJSVal = unDictionary-  {-# INLINE pToJSVal #-}--instance PFromJSVal Dictionary where-  pFromJSVal = Dictionary-  {-# INLINE pFromJSVal #-}--instance ToJSVal Dictionary where-  toJSVal = return . unDictionary-  {-# INLINE toJSVal #-}--instance FromJSVal Dictionary where-  fromJSVal v = fmap Dictionary <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsDictionary o-toDictionary :: IsDictionary o => o -> Dictionary-toDictionary = Dictionary . coerce--instance IsDictionary Dictionary-instance IsGObject Dictionary where-  typeGType _ = error "Unable to get the JavaScript type of Dictionary"-#else--- TODO work out how we can support Dictionary in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype BlobPropertyBag = BlobPropertyBag { unBlobPropertyBag :: JSVal }--instance PToJSVal BlobPropertyBag where-  pToJSVal = unBlobPropertyBag-  {-# INLINE pToJSVal #-}--instance PFromJSVal BlobPropertyBag where-  pFromJSVal = BlobPropertyBag-  {-# INLINE pFromJSVal #-}--instance ToJSVal BlobPropertyBag where-  toJSVal = return . unBlobPropertyBag-  {-# INLINE toJSVal #-}--instance FromJSVal BlobPropertyBag where-  fromJSVal v = fmap BlobPropertyBag <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsBlobPropertyBag o-toBlobPropertyBag :: IsBlobPropertyBag o => o -> BlobPropertyBag-toBlobPropertyBag = BlobPropertyBag . coerce--instance IsBlobPropertyBag BlobPropertyBag-instance IsGObject BlobPropertyBag where-  typeGType _ = error "Unable to get the JavaScript type of BlobPropertyBag"-#else--- TODO work out how we can support BlobPropertyBag in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype MutationCallback = MutationCallback { unMutationCallback :: JSVal }--instance PToJSVal MutationCallback where-  pToJSVal = unMutationCallback-  {-# INLINE pToJSVal #-}--instance PFromJSVal MutationCallback where-  pFromJSVal = MutationCallback-  {-# INLINE pFromJSVal #-}--instance ToJSVal MutationCallback where-  toJSVal = return . unMutationCallback-  {-# INLINE toJSVal #-}--instance FromJSVal MutationCallback where-  fromJSVal v = fmap MutationCallback <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsMutationCallback o-toMutationCallback :: IsMutationCallback o => o -> MutationCallback-toMutationCallback = MutationCallback . coerce--instance IsMutationCallback MutationCallback-instance IsGObject MutationCallback where-  typeGType _ = error "Unable to get the JavaScript type of MutationCallback"-#else--- TODO work out how we can support MutationCallback in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Promise = Promise { unPromise :: JSVal }--instance PToJSVal Promise where-  pToJSVal = unPromise-  {-# INLINE pToJSVal #-}--instance PFromJSVal Promise where-  pFromJSVal = Promise-  {-# INLINE pFromJSVal #-}--instance ToJSVal Promise where-  toJSVal = return . unPromise-  {-# INLINE toJSVal #-}--instance FromJSVal Promise where-  fromJSVal v = fmap Promise <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsPromise o-toPromise :: IsPromise o => o -> Promise-toPromise = Promise . coerce--instance IsPromise Promise-instance IsGObject Promise where-    typeGType _ = gTypePromise--gTypePromise :: JSM GType-gTypePromise = GType . Object <$> jsg "Promise"-#else--- TODO work out how we can support Promise in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype ArrayBuffer = ArrayBuffer { unArrayBuffer :: JSVal }--instance PToJSVal ArrayBuffer where-  pToJSVal = unArrayBuffer-  {-# INLINE pToJSVal #-}--instance PFromJSVal ArrayBuffer where-  pFromJSVal = ArrayBuffer-  {-# INLINE pFromJSVal #-}--instance ToJSVal ArrayBuffer where-  toJSVal = return . unArrayBuffer-  {-# INLINE toJSVal #-}--instance FromJSVal ArrayBuffer where-  fromJSVal v = fmap ArrayBuffer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsArrayBuffer o-toArrayBuffer :: IsArrayBuffer o => o -> ArrayBuffer-toArrayBuffer = ArrayBuffer . coerce--instance IsArrayBuffer ArrayBuffer-instance IsGObject ArrayBuffer where-    typeGType _ = gTypeArrayBuffer--gTypeArrayBuffer :: JSM GType-gTypeArrayBuffer = GType . Object <$> jsg "ArrayBuffer"-#else--- TODO work out how we can support ArrayBuffer in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Float32Array = Float32Array { unFloat32Array :: JSVal }--instance PToJSVal Float32Array where-  pToJSVal = unFloat32Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Float32Array where-  pFromJSVal = Float32Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Float32Array where-  toJSVal = return . unFloat32Array-  {-# INLINE toJSVal #-}--instance FromJSVal Float32Array where-  fromJSVal v = fmap Float32Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsFloat32Array o-toFloat32Array :: IsFloat32Array o => o -> Float32Array-toFloat32Array = Float32Array . coerce--instance IsFloat32Array Float32Array-instance IsGObject Float32Array where-        typeGType _ = gTypeFloat32Array--gTypeFloat32Array :: JSM GType-gTypeFloat32Array = GType . Object <$> jsg "Float32Array"-#else--- TODO work out how we can support Float32Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Float64Array = Float64Array { unFloat64Array :: JSVal }--instance PToJSVal Float64Array where-  pToJSVal = unFloat64Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Float64Array where-  pFromJSVal = Float64Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Float64Array where-  toJSVal = return . unFloat64Array-  {-# INLINE toJSVal #-}--instance FromJSVal Float64Array where-  fromJSVal v = fmap Float64Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsFloat64Array o-toFloat64Array :: IsFloat64Array o => o -> Float64Array-toFloat64Array = Float64Array . coerce--instance IsFloat64Array Float64Array-instance IsGObject Float64Array where-    typeGType _ = gTypeFloat64Array--gTypeFloat64Array :: JSM GType-gTypeFloat64Array = GType . Object <$> jsg "Float64Array"-#else--- TODO work out how we can support Float64Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Uint8Array = Uint8Array { unUint8Array :: JSVal }--instance PToJSVal Uint8Array where-  pToJSVal = unUint8Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Uint8Array where-  pFromJSVal = Uint8Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Uint8Array where-  toJSVal = return . unUint8Array-  {-# INLINE toJSVal #-}--instance FromJSVal Uint8Array where-  fromJSVal v = fmap Uint8Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsUint8Array o-toUint8Array :: IsUint8Array o => o -> Uint8Array-toUint8Array = Uint8Array . coerce--instance IsUint8Array Uint8Array-instance IsGObject Uint8Array where-    typeGType _ = gTypeUint8Array--gTypeUint8Array :: JSM GType-gTypeUint8Array = GType . Object <$> jsg "Uint8Array"-#else--- TODO work out how we can support Uint8Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Uint8ClampedArray = Uint8ClampedArray { unUint8ClampedArray :: JSVal }--instance PToJSVal Uint8ClampedArray where-  pToJSVal = unUint8ClampedArray-  {-# INLINE pToJSVal #-}--instance PFromJSVal Uint8ClampedArray where-  pFromJSVal = Uint8ClampedArray-  {-# INLINE pFromJSVal #-}--instance ToJSVal Uint8ClampedArray where-  toJSVal = return . unUint8ClampedArray-  {-# INLINE toJSVal #-}--instance FromJSVal Uint8ClampedArray where-  fromJSVal v = fmap Uint8ClampedArray <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsUint8ClampedArray o-toUint8ClampedArray :: IsUint8ClampedArray o => o -> Uint8ClampedArray-toUint8ClampedArray = Uint8ClampedArray . coerce--instance IsUint8ClampedArray Uint8ClampedArray-instance IsGObject Uint8ClampedArray where-    typeGType _ = gTypeUint8ClampedArray--gTypeUint8ClampedArray :: JSM GType-gTypeUint8ClampedArray = GType . Object <$> jsg "Uint8ClampedArray"-#else--- TODO work out how we can support Uint8ClampedArray in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Uint16Array = Uint16Array { unUint16Array :: JSVal }--instance PToJSVal Uint16Array where-  pToJSVal = unUint16Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Uint16Array where-  pFromJSVal = Uint16Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Uint16Array where-  toJSVal = return . unUint16Array-  {-# INLINE toJSVal #-}--instance FromJSVal Uint16Array where-  fromJSVal v = fmap Uint16Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsUint16Array o-toUint16Array :: IsUint16Array o => o -> Uint16Array-toUint16Array = Uint16Array . coerce--instance IsUint16Array Uint16Array-instance IsGObject Uint16Array where-    typeGType _ = gTypeUint16Array--gTypeUint16Array :: JSM GType-gTypeUint16Array = GType . Object <$> jsg "Uint16Array"-#else--- TODO work out how we can support Uint16Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Uint32Array = Uint32Array { unUint32Array :: JSVal }--instance PToJSVal Uint32Array where-  pToJSVal = unUint32Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Uint32Array where-  pFromJSVal = Uint32Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Uint32Array where-  toJSVal = return . unUint32Array-  {-# INLINE toJSVal #-}--instance FromJSVal Uint32Array where-  fromJSVal v = fmap Uint32Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsUint32Array o-toUint32Array :: IsUint32Array o => o -> Uint32Array-toUint32Array = Uint32Array . coerce--instance IsUint32Array Uint32Array-instance IsGObject Uint32Array where-    typeGType _ = gTypeUint32Array--gTypeUint32Array :: JSM GType-gTypeUint32Array = GType . Object <$> jsg "Uint32Array"-#else--- TODO work out how we can support Uint32Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Int8Array = Int8Array { unInt8Array :: JSVal }--instance PToJSVal Int8Array where-  pToJSVal = unInt8Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Int8Array where-  pFromJSVal = Int8Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Int8Array where-  toJSVal = return . unInt8Array-  {-# INLINE toJSVal #-}--instance FromJSVal Int8Array where-  fromJSVal v = fmap Int8Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsInt8Array o-toInt8Array :: IsInt8Array o => o -> Int8Array-toInt8Array = Int8Array . coerce--instance IsInt8Array Int8Array-instance IsGObject Int8Array where-    typeGType _ = gTypeInt8Array--gTypeInt8Array :: JSM GType-gTypeInt8Array = GType . Object <$> jsg "Int8Array"-#else--- TODO work out how we can support Int8Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Int16Array = Int16Array { unInt16Array :: JSVal }--instance PToJSVal Int16Array where-  pToJSVal = unInt16Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Int16Array where-  pFromJSVal = Int16Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Int16Array where-  toJSVal = return . unInt16Array-  {-# INLINE toJSVal #-}--instance FromJSVal Int16Array where-  fromJSVal v = fmap Int16Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsInt16Array o-toInt16Array :: IsInt16Array o => o -> Int16Array-toInt16Array = Int16Array . coerce--instance IsInt16Array Int16Array-instance IsGObject Int16Array where-    typeGType _ = gTypeInt16Array--gTypeInt16Array :: JSM GType-gTypeInt16Array = GType . Object <$> jsg "Int16Array"-#else--- TODO work out how we can support Int16Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Int32Array = Int32Array { unInt32Array :: JSVal }--instance PToJSVal Int32Array where-  pToJSVal = unInt32Array-  {-# INLINE pToJSVal #-}--instance PFromJSVal Int32Array where-  pFromJSVal = Int32Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Int32Array where-  toJSVal = return . unInt32Array-  {-# INLINE toJSVal #-}--instance FromJSVal Int32Array where-  fromJSVal v = fmap Int32Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsInt32Array o-toInt32Array :: IsInt32Array o => o -> Int32Array-toInt32Array = Int32Array . coerce--instance IsInt32Array Int32Array-instance IsGObject Int32Array where-    typeGType _ = gTypeInt32Array--gTypeInt32Array :: JSM GType-gTypeInt32Array = GType . Object <$> jsg "Int32Array"-#else--- TODO work out how we can support Int32Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype ObjectArray = ObjectArray { unObjectArray :: JSVal }--instance PToJSVal ObjectArray where-  pToJSVal = unObjectArray-  {-# INLINE pToJSVal #-}--instance PFromJSVal ObjectArray where-  pFromJSVal = ObjectArray-  {-# INLINE pFromJSVal #-}--instance ToJSVal ObjectArray where-  toJSVal = return . unObjectArray-  {-# INLINE toJSVal #-}--instance FromJSVal ObjectArray where-  fromJSVal v = fmap ObjectArray <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsObjectArray o-toObjectArray :: IsObjectArray o => o -> ObjectArray-toObjectArray = ObjectArray . coerce--instance IsObjectArray ObjectArray-instance IsGObject ObjectArray where-  typeGType _ = error "Unable to get the JavaScript type of ObjectArray"-#else--- TODO work out how we can support ObjectArray in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype ArrayBufferView = ArrayBufferView { unArrayBufferView :: JSVal }--instance PToJSVal ArrayBufferView where-  pToJSVal = unArrayBufferView-  {-# INLINE pToJSVal #-}--instance PFromJSVal ArrayBufferView where-  pFromJSVal = ArrayBufferView-  {-# INLINE pFromJSVal #-}--instance ToJSVal ArrayBufferView where-  toJSVal = return . unArrayBufferView-  {-# INLINE toJSVal #-}--instance FromJSVal ArrayBufferView where-  fromJSVal v = fmap ArrayBufferView <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsArrayBufferView o-toArrayBufferView :: IsArrayBufferView o => o -> ArrayBufferView-toArrayBufferView = ArrayBufferView . coerce--instance IsArrayBufferView ArrayBufferView-instance IsGObject ArrayBufferView where-  typeGType _ = error "Unable to get the JavaScript type of ArrayBufferView"-#else--- TODO work out how we can support ArrayBufferView in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Array = Array { unArray :: JSVal }--instance PToJSVal Array where-  pToJSVal = unArray-  {-# INLINE pToJSVal #-}--instance PFromJSVal Array where-  pFromJSVal = Array-  {-# INLINE pFromJSVal #-}--instance ToJSVal Array where-  toJSVal = return . unArray-  {-# INLINE toJSVal #-}--instance FromJSVal Array where-  fromJSVal v = fmap Array <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsArray o-toArray :: IsArray o => o -> Array-toArray = Array . coerce--instance IsArray Array-instance IsGObject Array where-    typeGType _ = gTypeArray--gTypeArray :: JSM GType-gTypeArray = GType . Object <$> jsg "Array"-#else--- TODO work out how we can support Array in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Date = Date { unDate :: JSVal }--instance PToJSVal Date where-  pToJSVal = unDate-  {-# INLINE pToJSVal #-}--instance PFromJSVal Date where-  pFromJSVal = Date-  {-# INLINE pFromJSVal #-}--instance ToJSVal Date where-  toJSVal = return . unDate-  {-# INLINE toJSVal #-}--instance FromJSVal Date where-  fromJSVal v = fmap Date <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsDate o-toDate :: IsDate o => o -> Date-toDate = Date . coerce--instance IsDate Date-instance IsGObject Date where-    typeGType _ = gTypeDate--gTypeDate :: JSM GType-gTypeDate = GType . Object <$> jsg "Date"-#else--- TODO work out how we can support Date in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Acceleration = Acceleration { unAcceleration :: JSVal }--instance PToJSVal Acceleration where-  pToJSVal = unAcceleration-  {-# INLINE pToJSVal #-}--instance PFromJSVal Acceleration where-  pFromJSVal = Acceleration-  {-# INLINE pFromJSVal #-}--instance ToJSVal Acceleration where-  toJSVal = return . unAcceleration-  {-# INLINE toJSVal #-}--instance FromJSVal Acceleration where-  fromJSVal v = fmap Acceleration <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsAcceleration o-toAcceleration :: IsAcceleration o => o -> Acceleration-toAcceleration = Acceleration . coerce--instance IsAcceleration Acceleration-instance IsGObject Acceleration where-  typeGType _ = error "Unable to get the JavaScript type of Acceleration"-#else--- TODO work out how we can support Acceleration in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype RotationRate = RotationRate { unRotationRate :: JSVal }--instance PToJSVal RotationRate where-  pToJSVal = unRotationRate-  {-# INLINE pToJSVal #-}--instance PFromJSVal RotationRate where-  pFromJSVal = RotationRate-  {-# INLINE pFromJSVal #-}--instance ToJSVal RotationRate where-  toJSVal = return . unRotationRate-  {-# INLINE toJSVal #-}--instance FromJSVal RotationRate where-  fromJSVal v = fmap RotationRate <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsRotationRate o-toRotationRate :: IsRotationRate o => o -> RotationRate-toRotationRate = RotationRate . coerce--instance IsRotationRate RotationRate-instance IsGObject RotationRate where-  typeGType _ = error "Unable to get the JavaScript type of RotationRate"-#else--- TODO work out how we can support RotationRate in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype Algorithm = Algorithm { unAlgorithm :: JSVal }--instance PToJSVal Algorithm where-  pToJSVal = unAlgorithm-  {-# INLINE pToJSVal #-}--instance PFromJSVal Algorithm where-  pFromJSVal = Algorithm-  {-# INLINE pFromJSVal #-}--instance ToJSVal Algorithm where-  toJSVal = return . unAlgorithm-  {-# INLINE toJSVal #-}--instance FromJSVal Algorithm where-  fromJSVal v = fmap Algorithm <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsAlgorithm o-toAlgorithm :: IsAlgorithm o => o -> Algorithm-toAlgorithm = Algorithm . coerce--instance IsAlgorithm Algorithm-instance IsGObject Algorithm where-  typeGType _ = error "Unable to get the JavaScript type of Algorithm"-#else--- TODO work out how we can support Algorithm in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype CryptoOperationData = CryptoOperationData { unCryptoOperationData :: JSVal }--instance PToJSVal CryptoOperationData where-  pToJSVal = unCryptoOperationData-  {-# INLINE pToJSVal #-}--instance PFromJSVal CryptoOperationData where-  pFromJSVal = CryptoOperationData-  {-# INLINE pFromJSVal #-}--instance ToJSVal CryptoOperationData where-  toJSVal = return . unCryptoOperationData-  {-# INLINE toJSVal #-}--instance FromJSVal CryptoOperationData where-  fromJSVal v = fmap CryptoOperationData <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsCryptoOperationData o-toCryptoOperationData :: IsCryptoOperationData o => o -> CryptoOperationData-toCryptoOperationData = CryptoOperationData . coerce--instance IsCryptoOperationData CryptoOperationData-instance IsGObject CryptoOperationData where-  typeGType _ = error "Unable to get the JavaScript type of CryptoOperationData"-instance IsCryptoOperationData ArrayBuffer-instance IsCryptoOperationData ArrayBufferView-#else--- TODO work out how we can support CryptoOperationData in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype CanvasStyle = CanvasStyle { unCanvasStyle :: JSVal }--instance PToJSVal CanvasStyle where-  pToJSVal = unCanvasStyle-  {-# INLINE pToJSVal #-}--instance PFromJSVal CanvasStyle where-  pFromJSVal = CanvasStyle-  {-# INLINE pFromJSVal #-}--instance ToJSVal CanvasStyle where-  toJSVal = return . unCanvasStyle-  {-# INLINE toJSVal #-}--instance FromJSVal CanvasStyle where-  fromJSVal v = fmap CanvasStyle <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsCanvasStyle o-toCanvasStyle :: IsCanvasStyle o => o -> CanvasStyle-toCanvasStyle = CanvasStyle . coerce--instance IsCanvasStyle CanvasStyle-instance IsGObject CanvasStyle where-  typeGType _ = error "Unable to get the JavaScript type of CanvasStyle"-instance IsCanvasStyle CanvasGradient-instance IsCanvasStyle CanvasPattern-#else--- TODO work out how we can support CanvasStyle in native code-#endif--#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)-newtype DOMException = DOMException { unDOMException :: JSVal }--instance PToJSVal DOMException where-  pToJSVal = unDOMException-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMException where-  pFromJSVal = DOMException-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMException where-  toJSVal = return . unDOMException-  {-# INLINE toJSVal #-}--instance FromJSVal DOMException where-  fromJSVal v = fmap DOMException <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--class IsGObject o => IsDOMException o-toDOMException :: IsDOMException o => o -> DOMException-toDOMException = DOMException . coerce--instance IsDOMException DOMException-instance IsGObject DOMException where-  typeGType _ = error "Unable to get the JavaScript type of DOMException"-#else--- TODO work out how we can support DOMException in native code-#endif--type GLenum = Word32-type GLboolean = Bool-type GLbitfield = Word32-type GLbyte = Int8-type GLshort = Int16-type GLint = Int32-type GLint64 = Int64-type GLsizei = Int32-type GLintptr = Int64-type GLsizeiptr = Int64-type GLubyte = Word8-type GLushort = Word16-type GLuint = Word32-type GLuint64 = Word64-type GLfloat = Double-type GLclampf = Double---- AUTO GENERATION STARTS HERE--- The remainder of this file is generated from IDL files using domconv-webkit-jsffi-#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ANGLEInstancedArrays".------ <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays Mozilla ANGLEInstancedArrays documentation>-newtype ANGLEInstancedArrays = ANGLEInstancedArrays { unANGLEInstancedArrays :: JSVal }--instance PToJSVal ANGLEInstancedArrays where-  pToJSVal = unANGLEInstancedArrays-  {-# INLINE pToJSVal #-}--instance PFromJSVal ANGLEInstancedArrays where-  pFromJSVal = ANGLEInstancedArrays-  {-# INLINE pFromJSVal #-}--instance ToJSVal ANGLEInstancedArrays where-  toJSVal = return . unANGLEInstancedArrays-  {-# INLINE toJSVal #-}--instance FromJSVal ANGLEInstancedArrays where-  fromJSVal v = fmap ANGLEInstancedArrays <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ANGLEInstancedArrays where-  makeObject = makeObject . unANGLEInstancedArrays--instance IsGObject ANGLEInstancedArrays where-  typeGType _ = gTypeANGLEInstancedArrays-  {-# INLINE typeGType #-}--gTypeANGLEInstancedArrays :: JSM GType-gTypeANGLEInstancedArrays = GType . Object <$> jsg "ANGLEInstancedArrays"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AbstractView".------ <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView Mozilla AbstractView documentation>-newtype AbstractView = AbstractView { unAbstractView :: JSVal }--instance PToJSVal AbstractView where-  pToJSVal = unAbstractView-  {-# INLINE pToJSVal #-}--instance PFromJSVal AbstractView where-  pFromJSVal = AbstractView-  {-# INLINE pFromJSVal #-}--instance ToJSVal AbstractView where-  toJSVal = return . unAbstractView-  {-# INLINE toJSVal #-}--instance FromJSVal AbstractView where-  fromJSVal v = fmap AbstractView <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AbstractView where-  makeObject = makeObject . unAbstractView--instance IsGObject AbstractView where-  typeGType _ = gTypeAbstractView-  {-# INLINE typeGType #-}--gTypeAbstractView :: JSM GType-gTypeAbstractView = GType . Object <$> jsg "AbstractView"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AbstractWorker".------ <https://developer.mozilla.org/en-US/docs/Web/API/AbstractWorker Mozilla AbstractWorker documentation>-newtype AbstractWorker = AbstractWorker { unAbstractWorker :: JSVal }--instance PToJSVal AbstractWorker where-  pToJSVal = unAbstractWorker-  {-# INLINE pToJSVal #-}--instance PFromJSVal AbstractWorker where-  pFromJSVal = AbstractWorker-  {-# INLINE pFromJSVal #-}--instance ToJSVal AbstractWorker where-  toJSVal = return . unAbstractWorker-  {-# INLINE toJSVal #-}--instance FromJSVal AbstractWorker where-  fromJSVal v = fmap AbstractWorker <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AbstractWorker where-  makeObject = makeObject . unAbstractWorker--instance IsGObject AbstractWorker where-  typeGType _ = gTypeAbstractWorker-  {-# INLINE typeGType #-}--gTypeAbstractWorker :: JSM GType-gTypeAbstractWorker = GType . Object <$> jsg "AbstractWorker"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AllAudioCapabilities".--- Base interface functions are in:------     * "JSDOM.MediaStreamCapabilities"------ <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities Mozilla AllAudioCapabilities documentation>-newtype AllAudioCapabilities = AllAudioCapabilities { unAllAudioCapabilities :: JSVal }--instance PToJSVal AllAudioCapabilities where-  pToJSVal = unAllAudioCapabilities-  {-# INLINE pToJSVal #-}--instance PFromJSVal AllAudioCapabilities where-  pFromJSVal = AllAudioCapabilities-  {-# INLINE pFromJSVal #-}--instance ToJSVal AllAudioCapabilities where-  toJSVal = return . unAllAudioCapabilities-  {-# INLINE toJSVal #-}--instance FromJSVal AllAudioCapabilities where-  fromJSVal v = fmap AllAudioCapabilities <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AllAudioCapabilities where-  makeObject = makeObject . unAllAudioCapabilities--instance IsMediaStreamCapabilities AllAudioCapabilities-instance IsGObject AllAudioCapabilities where-  typeGType _ = gTypeAllAudioCapabilities-  {-# INLINE typeGType #-}--gTypeAllAudioCapabilities :: JSM GType-gTypeAllAudioCapabilities = GType . Object <$> jsg "AllAudioCapabilities"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AllVideoCapabilities".--- Base interface functions are in:------     * "JSDOM.MediaStreamCapabilities"------ <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities Mozilla AllVideoCapabilities documentation>-newtype AllVideoCapabilities = AllVideoCapabilities { unAllVideoCapabilities :: JSVal }--instance PToJSVal AllVideoCapabilities where-  pToJSVal = unAllVideoCapabilities-  {-# INLINE pToJSVal #-}--instance PFromJSVal AllVideoCapabilities where-  pFromJSVal = AllVideoCapabilities-  {-# INLINE pFromJSVal #-}--instance ToJSVal AllVideoCapabilities where-  toJSVal = return . unAllVideoCapabilities-  {-# INLINE toJSVal #-}--instance FromJSVal AllVideoCapabilities where-  fromJSVal v = fmap AllVideoCapabilities <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AllVideoCapabilities where-  makeObject = makeObject . unAllVideoCapabilities--instance IsMediaStreamCapabilities AllVideoCapabilities-instance IsGObject AllVideoCapabilities where-  typeGType _ = gTypeAllVideoCapabilities-  {-# INLINE typeGType #-}--gTypeAllVideoCapabilities :: JSM GType-gTypeAllVideoCapabilities = GType . Object <$> jsg "AllVideoCapabilities"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AnalyserNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode Mozilla AnalyserNode documentation>-newtype AnalyserNode = AnalyserNode { unAnalyserNode :: JSVal }--instance PToJSVal AnalyserNode where-  pToJSVal = unAnalyserNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal AnalyserNode where-  pFromJSVal = AnalyserNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal AnalyserNode where-  toJSVal = return . unAnalyserNode-  {-# INLINE toJSVal #-}--instance FromJSVal AnalyserNode where-  fromJSVal v = fmap AnalyserNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AnalyserNode where-  makeObject = makeObject . unAnalyserNode--instance IsAudioNode AnalyserNode-instance IsEventTarget AnalyserNode-instance IsGObject AnalyserNode where-  typeGType _ = gTypeAnalyserNode-  {-# INLINE typeGType #-}--gTypeAnalyserNode :: JSM GType-gTypeAnalyserNode = GType . Object <$> jsg "AnalyserNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AnimationEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent Mozilla AnimationEvent documentation>-newtype AnimationEvent = AnimationEvent { unAnimationEvent :: JSVal }--instance PToJSVal AnimationEvent where-  pToJSVal = unAnimationEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal AnimationEvent where-  pFromJSVal = AnimationEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal AnimationEvent where-  toJSVal = return . unAnimationEvent-  {-# INLINE toJSVal #-}--instance FromJSVal AnimationEvent where-  fromJSVal v = fmap AnimationEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AnimationEvent where-  makeObject = makeObject . unAnimationEvent--instance IsEvent AnimationEvent-instance IsGObject AnimationEvent where-  typeGType _ = gTypeAnimationEvent-  {-# INLINE typeGType #-}--gTypeAnimationEvent :: JSM GType-gTypeAnimationEvent = GType . Object <$> jsg "AnimationEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ApplicationCache".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache Mozilla ApplicationCache documentation>-newtype ApplicationCache = ApplicationCache { unApplicationCache :: JSVal }--instance PToJSVal ApplicationCache where-  pToJSVal = unApplicationCache-  {-# INLINE pToJSVal #-}--instance PFromJSVal ApplicationCache where-  pFromJSVal = ApplicationCache-  {-# INLINE pFromJSVal #-}--instance ToJSVal ApplicationCache where-  toJSVal = return . unApplicationCache-  {-# INLINE toJSVal #-}--instance FromJSVal ApplicationCache where-  fromJSVal v = fmap ApplicationCache <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ApplicationCache where-  makeObject = makeObject . unApplicationCache--instance IsEventTarget ApplicationCache-instance IsGObject ApplicationCache where-  typeGType _ = gTypeApplicationCache-  {-# INLINE typeGType #-}--gTypeApplicationCache :: JSM GType-gTypeApplicationCache = GType . Object <$> jsg "ApplicationCache"-#else-type IsApplicationCache o = ApplicationCacheClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Attr".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Attr Mozilla Attr documentation>-newtype Attr = Attr { unAttr :: JSVal }--instance PToJSVal Attr where-  pToJSVal = unAttr-  {-# INLINE pToJSVal #-}--instance PFromJSVal Attr where-  pFromJSVal = Attr-  {-# INLINE pFromJSVal #-}--instance ToJSVal Attr where-  toJSVal = return . unAttr-  {-# INLINE toJSVal #-}--instance FromJSVal Attr where-  fromJSVal v = fmap Attr <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Attr where-  makeObject = makeObject . unAttr--instance IsNode Attr-instance IsEventTarget Attr-instance IsGObject Attr where-  typeGType _ = gTypeAttr-  {-# INLINE typeGType #-}--gTypeAttr :: JSM GType-gTypeAttr = GType . Object <$> jsg "Attr"-#else-type IsAttr o = AttrClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioBuffer".------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer Mozilla AudioBuffer documentation>-newtype AudioBuffer = AudioBuffer { unAudioBuffer :: JSVal }--instance PToJSVal AudioBuffer where-  pToJSVal = unAudioBuffer-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioBuffer where-  pFromJSVal = AudioBuffer-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioBuffer where-  toJSVal = return . unAudioBuffer-  {-# INLINE toJSVal #-}--instance FromJSVal AudioBuffer where-  fromJSVal v = fmap AudioBuffer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioBuffer where-  makeObject = makeObject . unAudioBuffer--instance IsGObject AudioBuffer where-  typeGType _ = gTypeAudioBuffer-  {-# INLINE typeGType #-}--gTypeAudioBuffer :: JSM GType-gTypeAudioBuffer = GType . Object <$> jsg "AudioBuffer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioBufferSourceNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode Mozilla AudioBufferSourceNode documentation>-newtype AudioBufferSourceNode = AudioBufferSourceNode { unAudioBufferSourceNode :: JSVal }--instance PToJSVal AudioBufferSourceNode where-  pToJSVal = unAudioBufferSourceNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioBufferSourceNode where-  pFromJSVal = AudioBufferSourceNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioBufferSourceNode where-  toJSVal = return . unAudioBufferSourceNode-  {-# INLINE toJSVal #-}--instance FromJSVal AudioBufferSourceNode where-  fromJSVal v = fmap AudioBufferSourceNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioBufferSourceNode where-  makeObject = makeObject . unAudioBufferSourceNode--instance IsAudioNode AudioBufferSourceNode-instance IsEventTarget AudioBufferSourceNode-instance IsGObject AudioBufferSourceNode where-  typeGType _ = gTypeAudioBufferSourceNode-  {-# INLINE typeGType #-}--gTypeAudioBufferSourceNode :: JSM GType-gTypeAudioBufferSourceNode = GType . Object <$> jsg "AudioBufferSourceNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioContext".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext Mozilla AudioContext documentation>-newtype AudioContext = AudioContext { unAudioContext :: JSVal }--instance PToJSVal AudioContext where-  pToJSVal = unAudioContext-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioContext where-  pFromJSVal = AudioContext-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioContext where-  toJSVal = return . unAudioContext-  {-# INLINE toJSVal #-}--instance FromJSVal AudioContext where-  fromJSVal v = fmap AudioContext <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioContext where-  makeObject = makeObject . unAudioContext--class IsEventTarget o => IsAudioContext o-toAudioContext :: IsAudioContext o => o -> AudioContext-toAudioContext = AudioContext . coerce--instance IsAudioContext AudioContext-instance IsEventTarget AudioContext-instance IsGObject AudioContext where-  typeGType _ = gTypeAudioContext-  {-# INLINE typeGType #-}--gTypeAudioContext :: JSM GType-gTypeAudioContext = GType . Object <$> jsg "AudioContext"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioDestinationNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioDestinationNode Mozilla AudioDestinationNode documentation>-newtype AudioDestinationNode = AudioDestinationNode { unAudioDestinationNode :: JSVal }--instance PToJSVal AudioDestinationNode where-  pToJSVal = unAudioDestinationNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioDestinationNode where-  pFromJSVal = AudioDestinationNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioDestinationNode where-  toJSVal = return . unAudioDestinationNode-  {-# INLINE toJSVal #-}--instance FromJSVal AudioDestinationNode where-  fromJSVal v = fmap AudioDestinationNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioDestinationNode where-  makeObject = makeObject . unAudioDestinationNode--instance IsAudioNode AudioDestinationNode-instance IsEventTarget AudioDestinationNode-instance IsGObject AudioDestinationNode where-  typeGType _ = gTypeAudioDestinationNode-  {-# INLINE typeGType #-}--gTypeAudioDestinationNode :: JSM GType-gTypeAudioDestinationNode = GType . Object <$> jsg "AudioDestinationNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioListener".------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener Mozilla AudioListener documentation>-newtype AudioListener = AudioListener { unAudioListener :: JSVal }--instance PToJSVal AudioListener where-  pToJSVal = unAudioListener-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioListener where-  pFromJSVal = AudioListener-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioListener where-  toJSVal = return . unAudioListener-  {-# INLINE toJSVal #-}--instance FromJSVal AudioListener where-  fromJSVal v = fmap AudioListener <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioListener where-  makeObject = makeObject . unAudioListener--instance IsGObject AudioListener where-  typeGType _ = gTypeAudioListener-  {-# INLINE typeGType #-}--gTypeAudioListener :: JSM GType-gTypeAudioListener = GType . Object <$> jsg "AudioListener"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioNode".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode Mozilla AudioNode documentation>-newtype AudioNode = AudioNode { unAudioNode :: JSVal }--instance PToJSVal AudioNode where-  pToJSVal = unAudioNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioNode where-  pFromJSVal = AudioNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioNode where-  toJSVal = return . unAudioNode-  {-# INLINE toJSVal #-}--instance FromJSVal AudioNode where-  fromJSVal v = fmap AudioNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioNode where-  makeObject = makeObject . unAudioNode--class IsEventTarget o => IsAudioNode o-toAudioNode :: IsAudioNode o => o -> AudioNode-toAudioNode = AudioNode . coerce--instance IsAudioNode AudioNode-instance IsEventTarget AudioNode-instance IsGObject AudioNode where-  typeGType _ = gTypeAudioNode-  {-# INLINE typeGType #-}--gTypeAudioNode :: JSM GType-gTypeAudioNode = GType . Object <$> jsg "AudioNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioParam".------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam Mozilla AudioParam documentation>-newtype AudioParam = AudioParam { unAudioParam :: JSVal }--instance PToJSVal AudioParam where-  pToJSVal = unAudioParam-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioParam where-  pFromJSVal = AudioParam-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioParam where-  toJSVal = return . unAudioParam-  {-# INLINE toJSVal #-}--instance FromJSVal AudioParam where-  fromJSVal v = fmap AudioParam <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioParam where-  makeObject = makeObject . unAudioParam--instance IsGObject AudioParam where-  typeGType _ = gTypeAudioParam-  {-# INLINE typeGType #-}--gTypeAudioParam :: JSM GType-gTypeAudioParam = GType . Object <$> jsg "AudioParam"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioProcessingEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent Mozilla AudioProcessingEvent documentation>-newtype AudioProcessingEvent = AudioProcessingEvent { unAudioProcessingEvent :: JSVal }--instance PToJSVal AudioProcessingEvent where-  pToJSVal = unAudioProcessingEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioProcessingEvent where-  pFromJSVal = AudioProcessingEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioProcessingEvent where-  toJSVal = return . unAudioProcessingEvent-  {-# INLINE toJSVal #-}--instance FromJSVal AudioProcessingEvent where-  fromJSVal v = fmap AudioProcessingEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioProcessingEvent where-  makeObject = makeObject . unAudioProcessingEvent--instance IsEvent AudioProcessingEvent-instance IsGObject AudioProcessingEvent where-  typeGType _ = gTypeAudioProcessingEvent-  {-# INLINE typeGType #-}--gTypeAudioProcessingEvent :: JSM GType-gTypeAudioProcessingEvent = GType . Object <$> jsg "AudioProcessingEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioStreamTrack".--- Base interface functions are in:------     * "JSDOM.MediaStreamTrack"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioStreamTrack Mozilla AudioStreamTrack documentation>-newtype AudioStreamTrack = AudioStreamTrack { unAudioStreamTrack :: JSVal }--instance PToJSVal AudioStreamTrack where-  pToJSVal = unAudioStreamTrack-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioStreamTrack where-  pFromJSVal = AudioStreamTrack-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioStreamTrack where-  toJSVal = return . unAudioStreamTrack-  {-# INLINE toJSVal #-}--instance FromJSVal AudioStreamTrack where-  fromJSVal v = fmap AudioStreamTrack <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioStreamTrack where-  makeObject = makeObject . unAudioStreamTrack--instance IsMediaStreamTrack AudioStreamTrack-instance IsEventTarget AudioStreamTrack-instance IsGObject AudioStreamTrack where-  typeGType _ = gTypeAudioStreamTrack-  {-# INLINE typeGType #-}--gTypeAudioStreamTrack :: JSM GType-gTypeAudioStreamTrack = GType . Object <$> jsg "AudioStreamTrack"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioTrack".------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack Mozilla AudioTrack documentation>-newtype AudioTrack = AudioTrack { unAudioTrack :: JSVal }--instance PToJSVal AudioTrack where-  pToJSVal = unAudioTrack-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioTrack where-  pFromJSVal = AudioTrack-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioTrack where-  toJSVal = return . unAudioTrack-  {-# INLINE toJSVal #-}--instance FromJSVal AudioTrack where-  fromJSVal v = fmap AudioTrack <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioTrack where-  makeObject = makeObject . unAudioTrack--instance IsGObject AudioTrack where-  typeGType _ = gTypeAudioTrack-  {-# INLINE typeGType #-}--gTypeAudioTrack :: JSM GType-gTypeAudioTrack = GType . Object <$> jsg "AudioTrack"-#else-#ifndef USE_OLD_WEBKIT-type IsAudioTrack o = AudioTrackClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AudioTrackList".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList Mozilla AudioTrackList documentation>-newtype AudioTrackList = AudioTrackList { unAudioTrackList :: JSVal }--instance PToJSVal AudioTrackList where-  pToJSVal = unAudioTrackList-  {-# INLINE pToJSVal #-}--instance PFromJSVal AudioTrackList where-  pFromJSVal = AudioTrackList-  {-# INLINE pFromJSVal #-}--instance ToJSVal AudioTrackList where-  toJSVal = return . unAudioTrackList-  {-# INLINE toJSVal #-}--instance FromJSVal AudioTrackList where-  fromJSVal v = fmap AudioTrackList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AudioTrackList where-  makeObject = makeObject . unAudioTrackList--instance IsEventTarget AudioTrackList-instance IsGObject AudioTrackList where-  typeGType _ = gTypeAudioTrackList-  {-# INLINE typeGType #-}--gTypeAudioTrackList :: JSM GType-gTypeAudioTrackList = GType . Object <$> jsg "AudioTrackList"-#else-#ifndef USE_OLD_WEBKIT-type IsAudioTrackList o = AudioTrackListClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.AutocompleteErrorEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/AutocompleteErrorEvent Mozilla AutocompleteErrorEvent documentation>-newtype AutocompleteErrorEvent = AutocompleteErrorEvent { unAutocompleteErrorEvent :: JSVal }--instance PToJSVal AutocompleteErrorEvent where-  pToJSVal = unAutocompleteErrorEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal AutocompleteErrorEvent where-  pFromJSVal = AutocompleteErrorEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal AutocompleteErrorEvent where-  toJSVal = return . unAutocompleteErrorEvent-  {-# INLINE toJSVal #-}--instance FromJSVal AutocompleteErrorEvent where-  fromJSVal v = fmap AutocompleteErrorEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject AutocompleteErrorEvent where-  makeObject = makeObject . unAutocompleteErrorEvent--instance IsEvent AutocompleteErrorEvent-instance IsGObject AutocompleteErrorEvent where-  typeGType _ = gTypeAutocompleteErrorEvent-  {-# INLINE typeGType #-}--gTypeAutocompleteErrorEvent :: JSM GType-gTypeAutocompleteErrorEvent = GType . Object <$> jsg "AutocompleteErrorEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.BarProp".------ <https://developer.mozilla.org/en-US/docs/Web/API/BarProp Mozilla BarProp documentation>-newtype BarProp = BarProp { unBarProp :: JSVal }--instance PToJSVal BarProp where-  pToJSVal = unBarProp-  {-# INLINE pToJSVal #-}--instance PFromJSVal BarProp where-  pFromJSVal = BarProp-  {-# INLINE pFromJSVal #-}--instance ToJSVal BarProp where-  toJSVal = return . unBarProp-  {-# INLINE toJSVal #-}--instance FromJSVal BarProp where-  fromJSVal v = fmap BarProp <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject BarProp where-  makeObject = makeObject . unBarProp--instance IsGObject BarProp where-  typeGType _ = gTypeBarProp-  {-# INLINE typeGType #-}--gTypeBarProp :: JSM GType-gTypeBarProp = GType . Object <$> jsg "BarProp"-#else-#ifndef USE_OLD_WEBKIT-type IsBarProp o = BarPropClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.BatteryManager".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager Mozilla BatteryManager documentation>-newtype BatteryManager = BatteryManager { unBatteryManager :: JSVal }--instance PToJSVal BatteryManager where-  pToJSVal = unBatteryManager-  {-# INLINE pToJSVal #-}--instance PFromJSVal BatteryManager where-  pFromJSVal = BatteryManager-  {-# INLINE pFromJSVal #-}--instance ToJSVal BatteryManager where-  toJSVal = return . unBatteryManager-  {-# INLINE toJSVal #-}--instance FromJSVal BatteryManager where-  fromJSVal v = fmap BatteryManager <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject BatteryManager where-  makeObject = makeObject . unBatteryManager--instance IsEventTarget BatteryManager-instance IsGObject BatteryManager where-  typeGType _ = gTypeBatteryManager-  {-# INLINE typeGType #-}--gTypeBatteryManager :: JSM GType-gTypeBatteryManager = GType . Object <$> jsg "BatteryManager"-#else-#ifndef USE_OLD_WEBKIT-type IsBatteryManager o = BatteryManagerClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.BeforeLoadEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEvent Mozilla BeforeLoadEvent documentation>-newtype BeforeLoadEvent = BeforeLoadEvent { unBeforeLoadEvent :: JSVal }--instance PToJSVal BeforeLoadEvent where-  pToJSVal = unBeforeLoadEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal BeforeLoadEvent where-  pFromJSVal = BeforeLoadEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal BeforeLoadEvent where-  toJSVal = return . unBeforeLoadEvent-  {-# INLINE toJSVal #-}--instance FromJSVal BeforeLoadEvent where-  fromJSVal v = fmap BeforeLoadEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject BeforeLoadEvent where-  makeObject = makeObject . unBeforeLoadEvent--instance IsEvent BeforeLoadEvent-instance IsGObject BeforeLoadEvent where-  typeGType _ = gTypeBeforeLoadEvent-  {-# INLINE typeGType #-}--gTypeBeforeLoadEvent :: JSM GType-gTypeBeforeLoadEvent = GType . Object <$> jsg "BeforeLoadEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.BeforeUnloadEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent Mozilla BeforeUnloadEvent documentation>-newtype BeforeUnloadEvent = BeforeUnloadEvent { unBeforeUnloadEvent :: JSVal }--instance PToJSVal BeforeUnloadEvent where-  pToJSVal = unBeforeUnloadEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal BeforeUnloadEvent where-  pFromJSVal = BeforeUnloadEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal BeforeUnloadEvent where-  toJSVal = return . unBeforeUnloadEvent-  {-# INLINE toJSVal #-}--instance FromJSVal BeforeUnloadEvent where-  fromJSVal v = fmap BeforeUnloadEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject BeforeUnloadEvent where-  makeObject = makeObject . unBeforeUnloadEvent--instance IsEvent BeforeUnloadEvent-instance IsGObject BeforeUnloadEvent where-  typeGType _ = gTypeBeforeUnloadEvent-  {-# INLINE typeGType #-}--gTypeBeforeUnloadEvent :: JSM GType-gTypeBeforeUnloadEvent = GType . Object <$> jsg "BeforeUnloadEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.BiquadFilterNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode Mozilla BiquadFilterNode documentation>-newtype BiquadFilterNode = BiquadFilterNode { unBiquadFilterNode :: JSVal }--instance PToJSVal BiquadFilterNode where-  pToJSVal = unBiquadFilterNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal BiquadFilterNode where-  pFromJSVal = BiquadFilterNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal BiquadFilterNode where-  toJSVal = return . unBiquadFilterNode-  {-# INLINE toJSVal #-}--instance FromJSVal BiquadFilterNode where-  fromJSVal v = fmap BiquadFilterNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject BiquadFilterNode where-  makeObject = makeObject . unBiquadFilterNode--instance IsAudioNode BiquadFilterNode-instance IsEventTarget BiquadFilterNode-instance IsGObject BiquadFilterNode where-  typeGType _ = gTypeBiquadFilterNode-  {-# INLINE typeGType #-}--gTypeBiquadFilterNode :: JSM GType-gTypeBiquadFilterNode = GType . Object <$> jsg "BiquadFilterNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Blob".------ <https://developer.mozilla.org/en-US/docs/Web/API/Blob Mozilla Blob documentation>-newtype Blob = Blob { unBlob :: JSVal }--instance PToJSVal Blob where-  pToJSVal = unBlob-  {-# INLINE pToJSVal #-}--instance PFromJSVal Blob where-  pFromJSVal = Blob-  {-# INLINE pFromJSVal #-}--instance ToJSVal Blob where-  toJSVal = return . unBlob-  {-# INLINE toJSVal #-}--instance FromJSVal Blob where-  fromJSVal v = fmap Blob <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Blob where-  makeObject = makeObject . unBlob--class IsGObject o => IsBlob o-toBlob :: IsBlob o => o -> Blob-toBlob = Blob . coerce--instance IsBlob Blob-instance IsGObject Blob where-  typeGType _ = gTypeBlob-  {-# INLINE typeGType #-}--gTypeBlob :: JSM GType-gTypeBlob = GType . Object <$> jsg "Blob"-#else-type IsBlob o = BlobClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CDATASection".--- Base interface functions are in:------     * "JSDOM.Text"---     * "JSDOM.CharacterData"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/CDATASection Mozilla CDATASection documentation>-newtype CDATASection = CDATASection { unCDATASection :: JSVal }--instance PToJSVal CDATASection where-  pToJSVal = unCDATASection-  {-# INLINE pToJSVal #-}--instance PFromJSVal CDATASection where-  pFromJSVal = CDATASection-  {-# INLINE pFromJSVal #-}--instance ToJSVal CDATASection where-  toJSVal = return . unCDATASection-  {-# INLINE toJSVal #-}--instance FromJSVal CDATASection where-  fromJSVal v = fmap CDATASection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CDATASection where-  makeObject = makeObject . unCDATASection--instance IsText CDATASection-instance IsCharacterData CDATASection-instance IsNode CDATASection-instance IsEventTarget CDATASection-instance IsGObject CDATASection where-  typeGType _ = gTypeCDATASection-  {-# INLINE typeGType #-}--gTypeCDATASection :: JSM GType-gTypeCDATASection = GType . Object <$> jsg "CDATASection"-#else-type IsCDATASection o = CDATASectionClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSS".------ <https://developer.mozilla.org/en-US/docs/Web/API/CSS Mozilla CSS documentation>-newtype CSS = CSS { unCSS :: JSVal }--instance PToJSVal CSS where-  pToJSVal = unCSS-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSS where-  pFromJSVal = CSS-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSS where-  toJSVal = return . unCSS-  {-# INLINE toJSVal #-}--instance FromJSVal CSS where-  fromJSVal v = fmap CSS <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSS where-  makeObject = makeObject . unCSS--instance IsGObject CSS where-  typeGType _ = gTypeCSS-  {-# INLINE typeGType #-}--gTypeCSS :: JSM GType-gTypeCSS = GType . Object <$> jsg "CSS"-#else-#ifndef USE_OLD_WEBKIT-type IsCSS o = CSSClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSCharsetRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule Mozilla CSSCharsetRule documentation>-newtype CSSCharsetRule = CSSCharsetRule { unCSSCharsetRule :: JSVal }--instance PToJSVal CSSCharsetRule where-  pToJSVal = unCSSCharsetRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSCharsetRule where-  pFromJSVal = CSSCharsetRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSCharsetRule where-  toJSVal = return . unCSSCharsetRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSCharsetRule where-  fromJSVal v = fmap CSSCharsetRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSCharsetRule where-  makeObject = makeObject . unCSSCharsetRule--instance IsCSSRule CSSCharsetRule-instance IsGObject CSSCharsetRule where-  typeGType _ = gTypeCSSCharsetRule-  {-# INLINE typeGType #-}--gTypeCSSCharsetRule :: JSM GType-gTypeCSSCharsetRule = GType . Object <$> jsg "CSSCharsetRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSFontFaceLoadEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent Mozilla CSSFontFaceLoadEvent documentation>-newtype CSSFontFaceLoadEvent = CSSFontFaceLoadEvent { unCSSFontFaceLoadEvent :: JSVal }--instance PToJSVal CSSFontFaceLoadEvent where-  pToJSVal = unCSSFontFaceLoadEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSFontFaceLoadEvent where-  pFromJSVal = CSSFontFaceLoadEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSFontFaceLoadEvent where-  toJSVal = return . unCSSFontFaceLoadEvent-  {-# INLINE toJSVal #-}--instance FromJSVal CSSFontFaceLoadEvent where-  fromJSVal v = fmap CSSFontFaceLoadEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSFontFaceLoadEvent where-  makeObject = makeObject . unCSSFontFaceLoadEvent--instance IsEvent CSSFontFaceLoadEvent-instance IsGObject CSSFontFaceLoadEvent where-  typeGType _ = gTypeCSSFontFaceLoadEvent-  {-# INLINE typeGType #-}--gTypeCSSFontFaceLoadEvent :: JSM GType-gTypeCSSFontFaceLoadEvent = GType . Object <$> jsg "CSSFontFaceLoadEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSFontFaceRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule Mozilla CSSFontFaceRule documentation>-newtype CSSFontFaceRule = CSSFontFaceRule { unCSSFontFaceRule :: JSVal }--instance PToJSVal CSSFontFaceRule where-  pToJSVal = unCSSFontFaceRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSFontFaceRule where-  pFromJSVal = CSSFontFaceRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSFontFaceRule where-  toJSVal = return . unCSSFontFaceRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSFontFaceRule where-  fromJSVal v = fmap CSSFontFaceRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSFontFaceRule where-  makeObject = makeObject . unCSSFontFaceRule--instance IsCSSRule CSSFontFaceRule-instance IsGObject CSSFontFaceRule where-  typeGType _ = gTypeCSSFontFaceRule-  {-# INLINE typeGType #-}--gTypeCSSFontFaceRule :: JSM GType-gTypeCSSFontFaceRule = GType . Object <$> jsg "CSSFontFaceRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSImportRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule Mozilla CSSImportRule documentation>-newtype CSSImportRule = CSSImportRule { unCSSImportRule :: JSVal }--instance PToJSVal CSSImportRule where-  pToJSVal = unCSSImportRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSImportRule where-  pFromJSVal = CSSImportRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSImportRule where-  toJSVal = return . unCSSImportRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSImportRule where-  fromJSVal v = fmap CSSImportRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSImportRule where-  makeObject = makeObject . unCSSImportRule--instance IsCSSRule CSSImportRule-instance IsGObject CSSImportRule where-  typeGType _ = gTypeCSSImportRule-  {-# INLINE typeGType #-}--gTypeCSSImportRule :: JSM GType-gTypeCSSImportRule = GType . Object <$> jsg "CSSImportRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSKeyframeRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule Mozilla CSSKeyframeRule documentation>-newtype CSSKeyframeRule = CSSKeyframeRule { unCSSKeyframeRule :: JSVal }--instance PToJSVal CSSKeyframeRule where-  pToJSVal = unCSSKeyframeRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSKeyframeRule where-  pFromJSVal = CSSKeyframeRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSKeyframeRule where-  toJSVal = return . unCSSKeyframeRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSKeyframeRule where-  fromJSVal v = fmap CSSKeyframeRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSKeyframeRule where-  makeObject = makeObject . unCSSKeyframeRule--instance IsCSSRule CSSKeyframeRule-instance IsGObject CSSKeyframeRule where-  typeGType _ = gTypeCSSKeyframeRule-  {-# INLINE typeGType #-}--gTypeCSSKeyframeRule :: JSM GType-gTypeCSSKeyframeRule = GType . Object <$> jsg "CSSKeyframeRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSKeyframesRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule Mozilla CSSKeyframesRule documentation>-newtype CSSKeyframesRule = CSSKeyframesRule { unCSSKeyframesRule :: JSVal }--instance PToJSVal CSSKeyframesRule where-  pToJSVal = unCSSKeyframesRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSKeyframesRule where-  pFromJSVal = CSSKeyframesRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSKeyframesRule where-  toJSVal = return . unCSSKeyframesRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSKeyframesRule where-  fromJSVal v = fmap CSSKeyframesRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSKeyframesRule where-  makeObject = makeObject . unCSSKeyframesRule--instance IsCSSRule CSSKeyframesRule-instance IsGObject CSSKeyframesRule where-  typeGType _ = gTypeCSSKeyframesRule-  {-# INLINE typeGType #-}--gTypeCSSKeyframesRule :: JSM GType-gTypeCSSKeyframesRule = GType . Object <$> jsg "CSSKeyframesRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSMediaRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule Mozilla CSSMediaRule documentation>-newtype CSSMediaRule = CSSMediaRule { unCSSMediaRule :: JSVal }--instance PToJSVal CSSMediaRule where-  pToJSVal = unCSSMediaRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSMediaRule where-  pFromJSVal = CSSMediaRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSMediaRule where-  toJSVal = return . unCSSMediaRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSMediaRule where-  fromJSVal v = fmap CSSMediaRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSMediaRule where-  makeObject = makeObject . unCSSMediaRule--instance IsCSSRule CSSMediaRule-instance IsGObject CSSMediaRule where-  typeGType _ = gTypeCSSMediaRule-  {-# INLINE typeGType #-}--gTypeCSSMediaRule :: JSM GType-gTypeCSSMediaRule = GType . Object <$> jsg "CSSMediaRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSPageRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule Mozilla CSSPageRule documentation>-newtype CSSPageRule = CSSPageRule { unCSSPageRule :: JSVal }--instance PToJSVal CSSPageRule where-  pToJSVal = unCSSPageRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSPageRule where-  pFromJSVal = CSSPageRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSPageRule where-  toJSVal = return . unCSSPageRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSPageRule where-  fromJSVal v = fmap CSSPageRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSPageRule where-  makeObject = makeObject . unCSSPageRule--instance IsCSSRule CSSPageRule-instance IsGObject CSSPageRule where-  typeGType _ = gTypeCSSPageRule-  {-# INLINE typeGType #-}--gTypeCSSPageRule :: JSM GType-gTypeCSSPageRule = GType . Object <$> jsg "CSSPageRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSPrimitiveValue".--- Base interface functions are in:------     * "JSDOM.CSSValue"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue Mozilla CSSPrimitiveValue documentation>-newtype CSSPrimitiveValue = CSSPrimitiveValue { unCSSPrimitiveValue :: JSVal }--instance PToJSVal CSSPrimitiveValue where-  pToJSVal = unCSSPrimitiveValue-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSPrimitiveValue where-  pFromJSVal = CSSPrimitiveValue-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSPrimitiveValue where-  toJSVal = return . unCSSPrimitiveValue-  {-# INLINE toJSVal #-}--instance FromJSVal CSSPrimitiveValue where-  fromJSVal v = fmap CSSPrimitiveValue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSPrimitiveValue where-  makeObject = makeObject . unCSSPrimitiveValue--instance IsCSSValue CSSPrimitiveValue-instance IsGObject CSSPrimitiveValue where-  typeGType _ = gTypeCSSPrimitiveValue-  {-# INLINE typeGType #-}--gTypeCSSPrimitiveValue :: JSM GType-gTypeCSSPrimitiveValue = GType . Object <$> jsg "CSSPrimitiveValue"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSRule".------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule Mozilla CSSRule documentation>-newtype CSSRule = CSSRule { unCSSRule :: JSVal }--instance PToJSVal CSSRule where-  pToJSVal = unCSSRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSRule where-  pFromJSVal = CSSRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSRule where-  toJSVal = return . unCSSRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSRule where-  fromJSVal v = fmap CSSRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSRule where-  makeObject = makeObject . unCSSRule--class IsGObject o => IsCSSRule o-toCSSRule :: IsCSSRule o => o -> CSSRule-toCSSRule = CSSRule . coerce--instance IsCSSRule CSSRule-instance IsGObject CSSRule where-  typeGType _ = gTypeCSSRule-  {-# INLINE typeGType #-}--gTypeCSSRule :: JSM GType-gTypeCSSRule = GType . Object <$> jsg "CSSRule"-#else-type IsCSSRule o = CSSRuleClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSRuleList".------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList Mozilla CSSRuleList documentation>-newtype CSSRuleList = CSSRuleList { unCSSRuleList :: JSVal }--instance PToJSVal CSSRuleList where-  pToJSVal = unCSSRuleList-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSRuleList where-  pFromJSVal = CSSRuleList-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSRuleList where-  toJSVal = return . unCSSRuleList-  {-# INLINE toJSVal #-}--instance FromJSVal CSSRuleList where-  fromJSVal v = fmap CSSRuleList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSRuleList where-  makeObject = makeObject . unCSSRuleList--instance IsGObject CSSRuleList where-  typeGType _ = gTypeCSSRuleList-  {-# INLINE typeGType #-}--gTypeCSSRuleList :: JSM GType-gTypeCSSRuleList = GType . Object <$> jsg "CSSRuleList"-#else-type IsCSSRuleList o = CSSRuleListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSStyleDeclaration".------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration Mozilla CSSStyleDeclaration documentation>-newtype CSSStyleDeclaration = CSSStyleDeclaration { unCSSStyleDeclaration :: JSVal }--instance PToJSVal CSSStyleDeclaration where-  pToJSVal = unCSSStyleDeclaration-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSStyleDeclaration where-  pFromJSVal = CSSStyleDeclaration-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSStyleDeclaration where-  toJSVal = return . unCSSStyleDeclaration-  {-# INLINE toJSVal #-}--instance FromJSVal CSSStyleDeclaration where-  fromJSVal v = fmap CSSStyleDeclaration <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSStyleDeclaration where-  makeObject = makeObject . unCSSStyleDeclaration--instance IsGObject CSSStyleDeclaration where-  typeGType _ = gTypeCSSStyleDeclaration-  {-# INLINE typeGType #-}--gTypeCSSStyleDeclaration :: JSM GType-gTypeCSSStyleDeclaration = GType . Object <$> jsg "CSSStyleDeclaration"-#else-type IsCSSStyleDeclaration o = CSSStyleDeclarationClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSStyleRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule Mozilla CSSStyleRule documentation>-newtype CSSStyleRule = CSSStyleRule { unCSSStyleRule :: JSVal }--instance PToJSVal CSSStyleRule where-  pToJSVal = unCSSStyleRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSStyleRule where-  pFromJSVal = CSSStyleRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSStyleRule where-  toJSVal = return . unCSSStyleRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSStyleRule where-  fromJSVal v = fmap CSSStyleRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSStyleRule where-  makeObject = makeObject . unCSSStyleRule--instance IsCSSRule CSSStyleRule-instance IsGObject CSSStyleRule where-  typeGType _ = gTypeCSSStyleRule-  {-# INLINE typeGType #-}--gTypeCSSStyleRule :: JSM GType-gTypeCSSStyleRule = GType . Object <$> jsg "CSSStyleRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSStyleSheet".--- Base interface functions are in:------     * "JSDOM.StyleSheet"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet Mozilla CSSStyleSheet documentation>-newtype CSSStyleSheet = CSSStyleSheet { unCSSStyleSheet :: JSVal }--instance PToJSVal CSSStyleSheet where-  pToJSVal = unCSSStyleSheet-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSStyleSheet where-  pFromJSVal = CSSStyleSheet-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSStyleSheet where-  toJSVal = return . unCSSStyleSheet-  {-# INLINE toJSVal #-}--instance FromJSVal CSSStyleSheet where-  fromJSVal v = fmap CSSStyleSheet <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSStyleSheet where-  makeObject = makeObject . unCSSStyleSheet--instance IsStyleSheet CSSStyleSheet-instance IsGObject CSSStyleSheet where-  typeGType _ = gTypeCSSStyleSheet-  {-# INLINE typeGType #-}--gTypeCSSStyleSheet :: JSM GType-gTypeCSSStyleSheet = GType . Object <$> jsg "CSSStyleSheet"-#else-type IsCSSStyleSheet o = CSSStyleSheetClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSSupportsRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule Mozilla CSSSupportsRule documentation>-newtype CSSSupportsRule = CSSSupportsRule { unCSSSupportsRule :: JSVal }--instance PToJSVal CSSSupportsRule where-  pToJSVal = unCSSSupportsRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSSupportsRule where-  pFromJSVal = CSSSupportsRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSSupportsRule where-  toJSVal = return . unCSSSupportsRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSSupportsRule where-  fromJSVal v = fmap CSSSupportsRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSSupportsRule where-  makeObject = makeObject . unCSSSupportsRule--instance IsCSSRule CSSSupportsRule-instance IsGObject CSSSupportsRule where-  typeGType _ = gTypeCSSSupportsRule-  {-# INLINE typeGType #-}--gTypeCSSSupportsRule :: JSM GType-gTypeCSSSupportsRule = GType . Object <$> jsg "CSSSupportsRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSUnknownRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSUnknownRule Mozilla CSSUnknownRule documentation>-newtype CSSUnknownRule = CSSUnknownRule { unCSSUnknownRule :: JSVal }--instance PToJSVal CSSUnknownRule where-  pToJSVal = unCSSUnknownRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSUnknownRule where-  pFromJSVal = CSSUnknownRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSUnknownRule where-  toJSVal = return . unCSSUnknownRule-  {-# INLINE toJSVal #-}--instance FromJSVal CSSUnknownRule where-  fromJSVal v = fmap CSSUnknownRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSUnknownRule where-  makeObject = makeObject . unCSSUnknownRule--instance IsCSSRule CSSUnknownRule-instance IsGObject CSSUnknownRule where-  typeGType _ = gTypeCSSUnknownRule-  {-# INLINE typeGType #-}--gTypeCSSUnknownRule :: JSM GType-gTypeCSSUnknownRule = GType . Object <$> jsg "CSSUnknownRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSValue".------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSValue Mozilla CSSValue documentation>-newtype CSSValue = CSSValue { unCSSValue :: JSVal }--instance PToJSVal CSSValue where-  pToJSVal = unCSSValue-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSValue where-  pFromJSVal = CSSValue-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSValue where-  toJSVal = return . unCSSValue-  {-# INLINE toJSVal #-}--instance FromJSVal CSSValue where-  fromJSVal v = fmap CSSValue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSValue where-  makeObject = makeObject . unCSSValue--class IsGObject o => IsCSSValue o-toCSSValue :: IsCSSValue o => o -> CSSValue-toCSSValue = CSSValue . coerce--instance IsCSSValue CSSValue-instance IsGObject CSSValue where-  typeGType _ = gTypeCSSValue-  {-# INLINE typeGType #-}--gTypeCSSValue :: JSM GType-gTypeCSSValue = GType . Object <$> jsg "CSSValue"-#else-type IsCSSValue o = CSSValueClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CSSValueList".--- Base interface functions are in:------     * "JSDOM.CSSValue"------ <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList Mozilla CSSValueList documentation>-newtype CSSValueList = CSSValueList { unCSSValueList :: JSVal }--instance PToJSVal CSSValueList where-  pToJSVal = unCSSValueList-  {-# INLINE pToJSVal #-}--instance PFromJSVal CSSValueList where-  pFromJSVal = CSSValueList-  {-# INLINE pFromJSVal #-}--instance ToJSVal CSSValueList where-  toJSVal = return . unCSSValueList-  {-# INLINE toJSVal #-}--instance FromJSVal CSSValueList where-  fromJSVal v = fmap CSSValueList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CSSValueList where-  makeObject = makeObject . unCSSValueList--class IsCSSValue o => IsCSSValueList o-toCSSValueList :: IsCSSValueList o => o -> CSSValueList-toCSSValueList = CSSValueList . coerce--instance IsCSSValueList CSSValueList-instance IsCSSValue CSSValueList-instance IsGObject CSSValueList where-  typeGType _ = gTypeCSSValueList-  {-# INLINE typeGType #-}--gTypeCSSValueList :: JSM GType-gTypeCSSValueList = GType . Object <$> jsg "CSSValueList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CanvasGradient".------ <https://developer.mozilla.org/en-US/docs/Web/API/CanvasGradient Mozilla CanvasGradient documentation>-newtype CanvasGradient = CanvasGradient { unCanvasGradient :: JSVal }--instance PToJSVal CanvasGradient where-  pToJSVal = unCanvasGradient-  {-# INLINE pToJSVal #-}--instance PFromJSVal CanvasGradient where-  pFromJSVal = CanvasGradient-  {-# INLINE pFromJSVal #-}--instance ToJSVal CanvasGradient where-  toJSVal = return . unCanvasGradient-  {-# INLINE toJSVal #-}--instance FromJSVal CanvasGradient where-  fromJSVal v = fmap CanvasGradient <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CanvasGradient where-  makeObject = makeObject . unCanvasGradient--instance IsGObject CanvasGradient where-  typeGType _ = gTypeCanvasGradient-  {-# INLINE typeGType #-}--gTypeCanvasGradient :: JSM GType-gTypeCanvasGradient = GType . Object <$> jsg "CanvasGradient"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CanvasPattern".------ <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern Mozilla CanvasPattern documentation>-newtype CanvasPattern = CanvasPattern { unCanvasPattern :: JSVal }--instance PToJSVal CanvasPattern where-  pToJSVal = unCanvasPattern-  {-# INLINE pToJSVal #-}--instance PFromJSVal CanvasPattern where-  pFromJSVal = CanvasPattern-  {-# INLINE pFromJSVal #-}--instance ToJSVal CanvasPattern where-  toJSVal = return . unCanvasPattern-  {-# INLINE toJSVal #-}--instance FromJSVal CanvasPattern where-  fromJSVal v = fmap CanvasPattern <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CanvasPattern where-  makeObject = makeObject . unCanvasPattern--instance IsGObject CanvasPattern where-  typeGType _ = gTypeCanvasPattern-  {-# INLINE typeGType #-}--gTypeCanvasPattern :: JSM GType-gTypeCanvasPattern = GType . Object <$> jsg "CanvasPattern"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CanvasProxy".------ <https://developer.mozilla.org/en-US/docs/Web/API/CanvasProxy Mozilla CanvasProxy documentation>-newtype CanvasProxy = CanvasProxy { unCanvasProxy :: JSVal }--instance PToJSVal CanvasProxy where-  pToJSVal = unCanvasProxy-  {-# INLINE pToJSVal #-}--instance PFromJSVal CanvasProxy where-  pFromJSVal = CanvasProxy-  {-# INLINE pFromJSVal #-}--instance ToJSVal CanvasProxy where-  toJSVal = return . unCanvasProxy-  {-# INLINE toJSVal #-}--instance FromJSVal CanvasProxy where-  fromJSVal v = fmap CanvasProxy <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CanvasProxy where-  makeObject = makeObject . unCanvasProxy--instance IsGObject CanvasProxy where-  typeGType _ = gTypeCanvasProxy-  {-# INLINE typeGType #-}--gTypeCanvasProxy :: JSM GType-gTypeCanvasProxy = GType . Object <$> jsg "CanvasProxy"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CanvasRenderingContext".------ <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext Mozilla CanvasRenderingContext documentation>-newtype CanvasRenderingContext = CanvasRenderingContext { unCanvasRenderingContext :: JSVal }--instance PToJSVal CanvasRenderingContext where-  pToJSVal = unCanvasRenderingContext-  {-# INLINE pToJSVal #-}--instance PFromJSVal CanvasRenderingContext where-  pFromJSVal = CanvasRenderingContext-  {-# INLINE pFromJSVal #-}--instance ToJSVal CanvasRenderingContext where-  toJSVal = return . unCanvasRenderingContext-  {-# INLINE toJSVal #-}--instance FromJSVal CanvasRenderingContext where-  fromJSVal v = fmap CanvasRenderingContext <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CanvasRenderingContext where-  makeObject = makeObject . unCanvasRenderingContext--class IsGObject o => IsCanvasRenderingContext o-toCanvasRenderingContext :: IsCanvasRenderingContext o => o -> CanvasRenderingContext-toCanvasRenderingContext = CanvasRenderingContext . coerce--instance IsCanvasRenderingContext CanvasRenderingContext-instance IsGObject CanvasRenderingContext where-  typeGType _ = gTypeCanvasRenderingContext-  {-# INLINE typeGType #-}--gTypeCanvasRenderingContext :: JSM GType-gTypeCanvasRenderingContext = GType . Object <$> jsg "CanvasRenderingContext"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CanvasRenderingContext2D".--- Base interface functions are in:------     * "JSDOM.CanvasRenderingContext"------ <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D Mozilla CanvasRenderingContext2D documentation>-newtype CanvasRenderingContext2D = CanvasRenderingContext2D { unCanvasRenderingContext2D :: JSVal }--instance PToJSVal CanvasRenderingContext2D where-  pToJSVal = unCanvasRenderingContext2D-  {-# INLINE pToJSVal #-}--instance PFromJSVal CanvasRenderingContext2D where-  pFromJSVal = CanvasRenderingContext2D-  {-# INLINE pFromJSVal #-}--instance ToJSVal CanvasRenderingContext2D where-  toJSVal = return . unCanvasRenderingContext2D-  {-# INLINE toJSVal #-}--instance FromJSVal CanvasRenderingContext2D where-  fromJSVal v = fmap CanvasRenderingContext2D <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CanvasRenderingContext2D where-  makeObject = makeObject . unCanvasRenderingContext2D--instance IsCanvasRenderingContext CanvasRenderingContext2D-instance IsGObject CanvasRenderingContext2D where-  typeGType _ = gTypeCanvasRenderingContext2D-  {-# INLINE typeGType #-}--gTypeCanvasRenderingContext2D :: JSM GType-gTypeCanvasRenderingContext2D = GType . Object <$> jsg "CanvasRenderingContext2D"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CapabilityRange".------ <https://developer.mozilla.org/en-US/docs/Web/API/CapabilityRange Mozilla CapabilityRange documentation>-newtype CapabilityRange = CapabilityRange { unCapabilityRange :: JSVal }--instance PToJSVal CapabilityRange where-  pToJSVal = unCapabilityRange-  {-# INLINE pToJSVal #-}--instance PFromJSVal CapabilityRange where-  pFromJSVal = CapabilityRange-  {-# INLINE pFromJSVal #-}--instance ToJSVal CapabilityRange where-  toJSVal = return . unCapabilityRange-  {-# INLINE toJSVal #-}--instance FromJSVal CapabilityRange where-  fromJSVal v = fmap CapabilityRange <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CapabilityRange where-  makeObject = makeObject . unCapabilityRange--instance IsGObject CapabilityRange where-  typeGType _ = gTypeCapabilityRange-  {-# INLINE typeGType #-}--gTypeCapabilityRange :: JSM GType-gTypeCapabilityRange = GType . Object <$> jsg "CapabilityRange"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ChannelMergerNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode Mozilla ChannelMergerNode documentation>-newtype ChannelMergerNode = ChannelMergerNode { unChannelMergerNode :: JSVal }--instance PToJSVal ChannelMergerNode where-  pToJSVal = unChannelMergerNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal ChannelMergerNode where-  pFromJSVal = ChannelMergerNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal ChannelMergerNode where-  toJSVal = return . unChannelMergerNode-  {-# INLINE toJSVal #-}--instance FromJSVal ChannelMergerNode where-  fromJSVal v = fmap ChannelMergerNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ChannelMergerNode where-  makeObject = makeObject . unChannelMergerNode--instance IsAudioNode ChannelMergerNode-instance IsEventTarget ChannelMergerNode-instance IsGObject ChannelMergerNode where-  typeGType _ = gTypeChannelMergerNode-  {-# INLINE typeGType #-}--gTypeChannelMergerNode :: JSM GType-gTypeChannelMergerNode = GType . Object <$> jsg "ChannelMergerNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ChannelSplitterNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode Mozilla ChannelSplitterNode documentation>-newtype ChannelSplitterNode = ChannelSplitterNode { unChannelSplitterNode :: JSVal }--instance PToJSVal ChannelSplitterNode where-  pToJSVal = unChannelSplitterNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal ChannelSplitterNode where-  pFromJSVal = ChannelSplitterNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal ChannelSplitterNode where-  toJSVal = return . unChannelSplitterNode-  {-# INLINE toJSVal #-}--instance FromJSVal ChannelSplitterNode where-  fromJSVal v = fmap ChannelSplitterNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ChannelSplitterNode where-  makeObject = makeObject . unChannelSplitterNode--instance IsAudioNode ChannelSplitterNode-instance IsEventTarget ChannelSplitterNode-instance IsGObject ChannelSplitterNode where-  typeGType _ = gTypeChannelSplitterNode-  {-# INLINE typeGType #-}--gTypeChannelSplitterNode :: JSM GType-gTypeChannelSplitterNode = GType . Object <$> jsg "ChannelSplitterNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CharacterData".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/CharacterData Mozilla CharacterData documentation>-newtype CharacterData = CharacterData { unCharacterData :: JSVal }--instance PToJSVal CharacterData where-  pToJSVal = unCharacterData-  {-# INLINE pToJSVal #-}--instance PFromJSVal CharacterData where-  pFromJSVal = CharacterData-  {-# INLINE pFromJSVal #-}--instance ToJSVal CharacterData where-  toJSVal = return . unCharacterData-  {-# INLINE toJSVal #-}--instance FromJSVal CharacterData where-  fromJSVal v = fmap CharacterData <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CharacterData where-  makeObject = makeObject . unCharacterData--class IsNode o => IsCharacterData o-toCharacterData :: IsCharacterData o => o -> CharacterData-toCharacterData = CharacterData . coerce--instance IsCharacterData CharacterData-instance IsNode CharacterData-instance IsEventTarget CharacterData-instance IsGObject CharacterData where-  typeGType _ = gTypeCharacterData-  {-# INLINE typeGType #-}--gTypeCharacterData :: JSM GType-gTypeCharacterData = GType . Object <$> jsg "CharacterData"-#else-type IsCharacterData o = CharacterDataClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ChildNode".------ <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode Mozilla ChildNode documentation>-newtype ChildNode = ChildNode { unChildNode :: JSVal }--instance PToJSVal ChildNode where-  pToJSVal = unChildNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal ChildNode where-  pFromJSVal = ChildNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal ChildNode where-  toJSVal = return . unChildNode-  {-# INLINE toJSVal #-}--instance FromJSVal ChildNode where-  fromJSVal v = fmap ChildNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ChildNode where-  makeObject = makeObject . unChildNode--instance IsGObject ChildNode where-  typeGType _ = gTypeChildNode-  {-# INLINE typeGType #-}--gTypeChildNode :: JSM GType-gTypeChildNode = GType . Object <$> jsg "ChildNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ClientRect".------ <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect Mozilla ClientRect documentation>-newtype ClientRect = ClientRect { unClientRect :: JSVal }--instance PToJSVal ClientRect where-  pToJSVal = unClientRect-  {-# INLINE pToJSVal #-}--instance PFromJSVal ClientRect where-  pFromJSVal = ClientRect-  {-# INLINE pFromJSVal #-}--instance ToJSVal ClientRect where-  toJSVal = return . unClientRect-  {-# INLINE toJSVal #-}--instance FromJSVal ClientRect where-  fromJSVal v = fmap ClientRect <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ClientRect where-  makeObject = makeObject . unClientRect--instance IsGObject ClientRect where-  typeGType _ = gTypeClientRect-  {-# INLINE typeGType #-}--gTypeClientRect :: JSM GType-gTypeClientRect = GType . Object <$> jsg "ClientRect"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ClientRectList".------ <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList Mozilla ClientRectList documentation>-newtype ClientRectList = ClientRectList { unClientRectList :: JSVal }--instance PToJSVal ClientRectList where-  pToJSVal = unClientRectList-  {-# INLINE pToJSVal #-}--instance PFromJSVal ClientRectList where-  pFromJSVal = ClientRectList-  {-# INLINE pFromJSVal #-}--instance ToJSVal ClientRectList where-  toJSVal = return . unClientRectList-  {-# INLINE toJSVal #-}--instance FromJSVal ClientRectList where-  fromJSVal v = fmap ClientRectList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ClientRectList where-  makeObject = makeObject . unClientRectList--instance IsGObject ClientRectList where-  typeGType _ = gTypeClientRectList-  {-# INLINE typeGType #-}--gTypeClientRectList :: JSM GType-gTypeClientRectList = GType . Object <$> jsg "ClientRectList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CloseEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent Mozilla CloseEvent documentation>-newtype CloseEvent = CloseEvent { unCloseEvent :: JSVal }--instance PToJSVal CloseEvent where-  pToJSVal = unCloseEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal CloseEvent where-  pFromJSVal = CloseEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal CloseEvent where-  toJSVal = return . unCloseEvent-  {-# INLINE toJSVal #-}--instance FromJSVal CloseEvent where-  fromJSVal v = fmap CloseEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CloseEvent where-  makeObject = makeObject . unCloseEvent--instance IsEvent CloseEvent-instance IsGObject CloseEvent where-  typeGType _ = gTypeCloseEvent-  {-# INLINE typeGType #-}--gTypeCloseEvent :: JSM GType-gTypeCloseEvent = GType . Object <$> jsg "CloseEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CommandLineAPIHost".------ <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost Mozilla CommandLineAPIHost documentation>-newtype CommandLineAPIHost = CommandLineAPIHost { unCommandLineAPIHost :: JSVal }--instance PToJSVal CommandLineAPIHost where-  pToJSVal = unCommandLineAPIHost-  {-# INLINE pToJSVal #-}--instance PFromJSVal CommandLineAPIHost where-  pFromJSVal = CommandLineAPIHost-  {-# INLINE pFromJSVal #-}--instance ToJSVal CommandLineAPIHost where-  toJSVal = return . unCommandLineAPIHost-  {-# INLINE toJSVal #-}--instance FromJSVal CommandLineAPIHost where-  fromJSVal v = fmap CommandLineAPIHost <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CommandLineAPIHost where-  makeObject = makeObject . unCommandLineAPIHost--instance IsGObject CommandLineAPIHost where-  typeGType _ = gTypeCommandLineAPIHost-  {-# INLINE typeGType #-}--gTypeCommandLineAPIHost :: JSM GType-gTypeCommandLineAPIHost = GType . Object <$> jsg "CommandLineAPIHost"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Comment".--- Base interface functions are in:------     * "JSDOM.CharacterData"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Comment Mozilla Comment documentation>-newtype Comment = Comment { unComment :: JSVal }--instance PToJSVal Comment where-  pToJSVal = unComment-  {-# INLINE pToJSVal #-}--instance PFromJSVal Comment where-  pFromJSVal = Comment-  {-# INLINE pFromJSVal #-}--instance ToJSVal Comment where-  toJSVal = return . unComment-  {-# INLINE toJSVal #-}--instance FromJSVal Comment where-  fromJSVal v = fmap Comment <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Comment where-  makeObject = makeObject . unComment--instance IsCharacterData Comment-instance IsNode Comment-instance IsEventTarget Comment-instance IsGObject Comment where-  typeGType _ = gTypeComment-  {-# INLINE typeGType #-}--gTypeComment :: JSM GType-gTypeComment = GType . Object <$> jsg "Comment"-#else-type IsComment o = CommentClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CompositionEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent Mozilla CompositionEvent documentation>-newtype CompositionEvent = CompositionEvent { unCompositionEvent :: JSVal }--instance PToJSVal CompositionEvent where-  pToJSVal = unCompositionEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal CompositionEvent where-  pFromJSVal = CompositionEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal CompositionEvent where-  toJSVal = return . unCompositionEvent-  {-# INLINE toJSVal #-}--instance FromJSVal CompositionEvent where-  fromJSVal v = fmap CompositionEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CompositionEvent where-  makeObject = makeObject . unCompositionEvent--instance IsUIEvent CompositionEvent-instance IsEvent CompositionEvent-instance IsGObject CompositionEvent where-  typeGType _ = gTypeCompositionEvent-  {-# INLINE typeGType #-}--gTypeCompositionEvent :: JSM GType-gTypeCompositionEvent = GType . Object <$> jsg "CompositionEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ConvolverNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode Mozilla ConvolverNode documentation>-newtype ConvolverNode = ConvolverNode { unConvolverNode :: JSVal }--instance PToJSVal ConvolverNode where-  pToJSVal = unConvolverNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal ConvolverNode where-  pFromJSVal = ConvolverNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal ConvolverNode where-  toJSVal = return . unConvolverNode-  {-# INLINE toJSVal #-}--instance FromJSVal ConvolverNode where-  fromJSVal v = fmap ConvolverNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ConvolverNode where-  makeObject = makeObject . unConvolverNode--instance IsAudioNode ConvolverNode-instance IsEventTarget ConvolverNode-instance IsGObject ConvolverNode where-  typeGType _ = gTypeConvolverNode-  {-# INLINE typeGType #-}--gTypeConvolverNode :: JSM GType-gTypeConvolverNode = GType . Object <$> jsg "ConvolverNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Coordinates".------ <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates Mozilla Coordinates documentation>-newtype Coordinates = Coordinates { unCoordinates :: JSVal }--instance PToJSVal Coordinates where-  pToJSVal = unCoordinates-  {-# INLINE pToJSVal #-}--instance PFromJSVal Coordinates where-  pFromJSVal = Coordinates-  {-# INLINE pFromJSVal #-}--instance ToJSVal Coordinates where-  toJSVal = return . unCoordinates-  {-# INLINE toJSVal #-}--instance FromJSVal Coordinates where-  fromJSVal v = fmap Coordinates <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Coordinates where-  makeObject = makeObject . unCoordinates--instance IsGObject Coordinates where-  typeGType _ = gTypeCoordinates-  {-# INLINE typeGType #-}--gTypeCoordinates :: JSM GType-gTypeCoordinates = GType . Object <$> jsg "Coordinates"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Counter".------ <https://developer.mozilla.org/en-US/docs/Web/API/Counter Mozilla Counter documentation>-newtype Counter = Counter { unCounter :: JSVal }--instance PToJSVal Counter where-  pToJSVal = unCounter-  {-# INLINE pToJSVal #-}--instance PFromJSVal Counter where-  pFromJSVal = Counter-  {-# INLINE pFromJSVal #-}--instance ToJSVal Counter where-  toJSVal = return . unCounter-  {-# INLINE toJSVal #-}--instance FromJSVal Counter where-  fromJSVal v = fmap Counter <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Counter where-  makeObject = makeObject . unCounter--instance IsGObject Counter where-  typeGType _ = gTypeCounter-  {-# INLINE typeGType #-}--gTypeCounter :: JSM GType-gTypeCounter = GType . Object <$> jsg "Counter"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Crypto".------ <https://developer.mozilla.org/en-US/docs/Web/API/Crypto Mozilla Crypto documentation>-newtype Crypto = Crypto { unCrypto :: JSVal }--instance PToJSVal Crypto where-  pToJSVal = unCrypto-  {-# INLINE pToJSVal #-}--instance PFromJSVal Crypto where-  pFromJSVal = Crypto-  {-# INLINE pFromJSVal #-}--instance ToJSVal Crypto where-  toJSVal = return . unCrypto-  {-# INLINE toJSVal #-}--instance FromJSVal Crypto where-  fromJSVal v = fmap Crypto <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Crypto where-  makeObject = makeObject . unCrypto--instance IsGObject Crypto where-  typeGType _ = gTypeCrypto-  {-# INLINE typeGType #-}--gTypeCrypto :: JSM GType-gTypeCrypto = GType . Object <$> jsg "Crypto"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CryptoKey".------ <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey Mozilla CryptoKey documentation>-newtype CryptoKey = CryptoKey { unCryptoKey :: JSVal }--instance PToJSVal CryptoKey where-  pToJSVal = unCryptoKey-  {-# INLINE pToJSVal #-}--instance PFromJSVal CryptoKey where-  pFromJSVal = CryptoKey-  {-# INLINE pFromJSVal #-}--instance ToJSVal CryptoKey where-  toJSVal = return . unCryptoKey-  {-# INLINE toJSVal #-}--instance FromJSVal CryptoKey where-  fromJSVal v = fmap CryptoKey <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CryptoKey where-  makeObject = makeObject . unCryptoKey--instance IsGObject CryptoKey where-  typeGType _ = gTypeCryptoKey-  {-# INLINE typeGType #-}--gTypeCryptoKey :: JSM GType-gTypeCryptoKey = GType . Object <$> jsg "CryptoKey"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CryptoKeyPair".------ <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair Mozilla CryptoKeyPair documentation>-newtype CryptoKeyPair = CryptoKeyPair { unCryptoKeyPair :: JSVal }--instance PToJSVal CryptoKeyPair where-  pToJSVal = unCryptoKeyPair-  {-# INLINE pToJSVal #-}--instance PFromJSVal CryptoKeyPair where-  pFromJSVal = CryptoKeyPair-  {-# INLINE pFromJSVal #-}--instance ToJSVal CryptoKeyPair where-  toJSVal = return . unCryptoKeyPair-  {-# INLINE toJSVal #-}--instance FromJSVal CryptoKeyPair where-  fromJSVal v = fmap CryptoKeyPair <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CryptoKeyPair where-  makeObject = makeObject . unCryptoKeyPair--instance IsGObject CryptoKeyPair where-  typeGType _ = gTypeCryptoKeyPair-  {-# INLINE typeGType #-}--gTypeCryptoKeyPair :: JSM GType-gTypeCryptoKeyPair = GType . Object <$> jsg "CryptoKeyPair"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.CustomEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent Mozilla CustomEvent documentation>-newtype CustomEvent = CustomEvent { unCustomEvent :: JSVal }--instance PToJSVal CustomEvent where-  pToJSVal = unCustomEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal CustomEvent where-  pFromJSVal = CustomEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal CustomEvent where-  toJSVal = return . unCustomEvent-  {-# INLINE toJSVal #-}--instance FromJSVal CustomEvent where-  fromJSVal v = fmap CustomEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject CustomEvent where-  makeObject = makeObject . unCustomEvent--instance IsEvent CustomEvent-instance IsGObject CustomEvent where-  typeGType _ = gTypeCustomEvent-  {-# INLINE typeGType #-}--gTypeCustomEvent :: JSM GType-gTypeCustomEvent = GType . Object <$> jsg "CustomEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMError".------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMError Mozilla DOMError documentation>-newtype DOMError = DOMError { unDOMError :: JSVal }--instance PToJSVal DOMError where-  pToJSVal = unDOMError-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMError where-  pFromJSVal = DOMError-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMError where-  toJSVal = return . unDOMError-  {-# INLINE toJSVal #-}--instance FromJSVal DOMError where-  fromJSVal v = fmap DOMError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMError where-  makeObject = makeObject . unDOMError--class IsGObject o => IsDOMError o-toDOMError :: IsDOMError o => o -> DOMError-toDOMError = DOMError . coerce--instance IsDOMError DOMError-instance IsGObject DOMError where-  typeGType _ = gTypeDOMError-  {-# INLINE typeGType #-}--gTypeDOMError :: JSM GType-gTypeDOMError = GType . Object <$> jsg "DOMError"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMImplementation".------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation Mozilla DOMImplementation documentation>-newtype DOMImplementation = DOMImplementation { unDOMImplementation :: JSVal }--instance PToJSVal DOMImplementation where-  pToJSVal = unDOMImplementation-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMImplementation where-  pFromJSVal = DOMImplementation-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMImplementation where-  toJSVal = return . unDOMImplementation-  {-# INLINE toJSVal #-}--instance FromJSVal DOMImplementation where-  fromJSVal v = fmap DOMImplementation <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMImplementation where-  makeObject = makeObject . unDOMImplementation--instance IsGObject DOMImplementation where-  typeGType _ = gTypeDOMImplementation-  {-# INLINE typeGType #-}--gTypeDOMImplementation :: JSM GType-gTypeDOMImplementation = GType . Object <$> jsg "DOMImplementation"-#else-type IsDOMImplementation o = DOMImplementationClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMNamedFlowCollection".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection Mozilla WebKitNamedFlowCollection documentation>-newtype DOMNamedFlowCollection = DOMNamedFlowCollection { unDOMNamedFlowCollection :: JSVal }--instance PToJSVal DOMNamedFlowCollection where-  pToJSVal = unDOMNamedFlowCollection-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMNamedFlowCollection where-  pFromJSVal = DOMNamedFlowCollection-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMNamedFlowCollection where-  toJSVal = return . unDOMNamedFlowCollection-  {-# INLINE toJSVal #-}--instance FromJSVal DOMNamedFlowCollection where-  fromJSVal v = fmap DOMNamedFlowCollection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMNamedFlowCollection where-  makeObject = makeObject . unDOMNamedFlowCollection--instance IsGObject DOMNamedFlowCollection where-  typeGType _ = gTypeDOMNamedFlowCollection-  {-# INLINE typeGType #-}--gTypeDOMNamedFlowCollection :: JSM GType-gTypeDOMNamedFlowCollection = GType . Object <$> jsg "WebKitNamedFlowCollection"-#else-#ifndef USE_OLD_WEBKIT-type IsDOMNamedFlowCollection o = DOMNamedFlowCollectionClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMParser".------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser Mozilla DOMParser documentation>-newtype DOMParser = DOMParser { unDOMParser :: JSVal }--instance PToJSVal DOMParser where-  pToJSVal = unDOMParser-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMParser where-  pFromJSVal = DOMParser-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMParser where-  toJSVal = return . unDOMParser-  {-# INLINE toJSVal #-}--instance FromJSVal DOMParser where-  fromJSVal v = fmap DOMParser <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMParser where-  makeObject = makeObject . unDOMParser--instance IsGObject DOMParser where-  typeGType _ = gTypeDOMParser-  {-# INLINE typeGType #-}--gTypeDOMParser :: JSM GType-gTypeDOMParser = GType . Object <$> jsg "DOMParser"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMSettableTokenList".--- Base interface functions are in:------     * "JSDOM.DOMTokenList"------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList Mozilla DOMSettableTokenList documentation>-newtype DOMSettableTokenList = DOMSettableTokenList { unDOMSettableTokenList :: JSVal }--instance PToJSVal DOMSettableTokenList where-  pToJSVal = unDOMSettableTokenList-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMSettableTokenList where-  pFromJSVal = DOMSettableTokenList-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMSettableTokenList where-  toJSVal = return . unDOMSettableTokenList-  {-# INLINE toJSVal #-}--instance FromJSVal DOMSettableTokenList where-  fromJSVal v = fmap DOMSettableTokenList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMSettableTokenList where-  makeObject = makeObject . unDOMSettableTokenList--instance IsDOMTokenList DOMSettableTokenList-instance IsGObject DOMSettableTokenList where-  typeGType _ = gTypeDOMSettableTokenList-  {-# INLINE typeGType #-}--gTypeDOMSettableTokenList :: JSM GType-gTypeDOMSettableTokenList = GType . Object <$> jsg "DOMSettableTokenList"-#else-type IsDOMSettableTokenList o = DOMSettableTokenListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMStringList".------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList Mozilla DOMStringList documentation>-newtype DOMStringList = DOMStringList { unDOMStringList :: JSVal }--instance PToJSVal DOMStringList where-  pToJSVal = unDOMStringList-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMStringList where-  pFromJSVal = DOMStringList-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMStringList where-  toJSVal = return . unDOMStringList-  {-# INLINE toJSVal #-}--instance FromJSVal DOMStringList where-  fromJSVal v = fmap DOMStringList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMStringList where-  makeObject = makeObject . unDOMStringList--instance IsGObject DOMStringList where-  typeGType _ = gTypeDOMStringList-  {-# INLINE typeGType #-}--gTypeDOMStringList :: JSM GType-gTypeDOMStringList = GType . Object <$> jsg "DOMStringList"-#else-type IsDOMStringList o = DOMStringListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMStringMap".------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringMap Mozilla DOMStringMap documentation>-newtype DOMStringMap = DOMStringMap { unDOMStringMap :: JSVal }--instance PToJSVal DOMStringMap where-  pToJSVal = unDOMStringMap-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMStringMap where-  pFromJSVal = DOMStringMap-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMStringMap where-  toJSVal = return . unDOMStringMap-  {-# INLINE toJSVal #-}--instance FromJSVal DOMStringMap where-  fromJSVal v = fmap DOMStringMap <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMStringMap where-  makeObject = makeObject . unDOMStringMap--instance IsGObject DOMStringMap where-  typeGType _ = gTypeDOMStringMap-  {-# INLINE typeGType #-}--gTypeDOMStringMap :: JSM GType-gTypeDOMStringMap = GType . Object <$> jsg "DOMStringMap"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DOMTokenList".------ <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList Mozilla DOMTokenList documentation>-newtype DOMTokenList = DOMTokenList { unDOMTokenList :: JSVal }--instance PToJSVal DOMTokenList where-  pToJSVal = unDOMTokenList-  {-# INLINE pToJSVal #-}--instance PFromJSVal DOMTokenList where-  pFromJSVal = DOMTokenList-  {-# INLINE pFromJSVal #-}--instance ToJSVal DOMTokenList where-  toJSVal = return . unDOMTokenList-  {-# INLINE toJSVal #-}--instance FromJSVal DOMTokenList where-  fromJSVal v = fmap DOMTokenList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DOMTokenList where-  makeObject = makeObject . unDOMTokenList--class IsGObject o => IsDOMTokenList o-toDOMTokenList :: IsDOMTokenList o => o -> DOMTokenList-toDOMTokenList = DOMTokenList . coerce--instance IsDOMTokenList DOMTokenList-instance IsGObject DOMTokenList where-  typeGType _ = gTypeDOMTokenList-  {-# INLINE typeGType #-}--gTypeDOMTokenList :: JSM GType-gTypeDOMTokenList = GType . Object <$> jsg "DOMTokenList"-#else-type IsDOMTokenList o = DOMTokenListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DataCue".--- Base interface functions are in:------     * "JSDOM.TextTrackCue"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue Mozilla WebKitDataCue documentation>-newtype DataCue = DataCue { unDataCue :: JSVal }--instance PToJSVal DataCue where-  pToJSVal = unDataCue-  {-# INLINE pToJSVal #-}--instance PFromJSVal DataCue where-  pFromJSVal = DataCue-  {-# INLINE pFromJSVal #-}--instance ToJSVal DataCue where-  toJSVal = return . unDataCue-  {-# INLINE toJSVal #-}--instance FromJSVal DataCue where-  fromJSVal v = fmap DataCue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DataCue where-  makeObject = makeObject . unDataCue--instance IsTextTrackCue DataCue-instance IsEventTarget DataCue-instance IsGObject DataCue where-  typeGType _ = gTypeDataCue-  {-# INLINE typeGType #-}--gTypeDataCue :: JSM GType-gTypeDataCue = GType . Object <$> jsg "WebKitDataCue"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DataTransfer".------ <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer Mozilla DataTransfer documentation>-newtype DataTransfer = DataTransfer { unDataTransfer :: JSVal }--instance PToJSVal DataTransfer where-  pToJSVal = unDataTransfer-  {-# INLINE pToJSVal #-}--instance PFromJSVal DataTransfer where-  pFromJSVal = DataTransfer-  {-# INLINE pFromJSVal #-}--instance ToJSVal DataTransfer where-  toJSVal = return . unDataTransfer-  {-# INLINE toJSVal #-}--instance FromJSVal DataTransfer where-  fromJSVal v = fmap DataTransfer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DataTransfer where-  makeObject = makeObject . unDataTransfer--instance IsGObject DataTransfer where-  typeGType _ = gTypeDataTransfer-  {-# INLINE typeGType #-}--gTypeDataTransfer :: JSM GType-gTypeDataTransfer = GType . Object <$> jsg "DataTransfer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DataTransferItem".------ <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem Mozilla DataTransferItem documentation>-newtype DataTransferItem = DataTransferItem { unDataTransferItem :: JSVal }--instance PToJSVal DataTransferItem where-  pToJSVal = unDataTransferItem-  {-# INLINE pToJSVal #-}--instance PFromJSVal DataTransferItem where-  pFromJSVal = DataTransferItem-  {-# INLINE pFromJSVal #-}--instance ToJSVal DataTransferItem where-  toJSVal = return . unDataTransferItem-  {-# INLINE toJSVal #-}--instance FromJSVal DataTransferItem where-  fromJSVal v = fmap DataTransferItem <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DataTransferItem where-  makeObject = makeObject . unDataTransferItem--instance IsGObject DataTransferItem where-  typeGType _ = gTypeDataTransferItem-  {-# INLINE typeGType #-}--gTypeDataTransferItem :: JSM GType-gTypeDataTransferItem = GType . Object <$> jsg "DataTransferItem"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DataTransferItemList".------ <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList Mozilla DataTransferItemList documentation>-newtype DataTransferItemList = DataTransferItemList { unDataTransferItemList :: JSVal }--instance PToJSVal DataTransferItemList where-  pToJSVal = unDataTransferItemList-  {-# INLINE pToJSVal #-}--instance PFromJSVal DataTransferItemList where-  pFromJSVal = DataTransferItemList-  {-# INLINE pFromJSVal #-}--instance ToJSVal DataTransferItemList where-  toJSVal = return . unDataTransferItemList-  {-# INLINE toJSVal #-}--instance FromJSVal DataTransferItemList where-  fromJSVal v = fmap DataTransferItemList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DataTransferItemList where-  makeObject = makeObject . unDataTransferItemList--instance IsGObject DataTransferItemList where-  typeGType _ = gTypeDataTransferItemList-  {-# INLINE typeGType #-}--gTypeDataTransferItemList :: JSM GType-gTypeDataTransferItemList = GType . Object <$> jsg "DataTransferItemList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Database".------ <https://developer.mozilla.org/en-US/docs/Web/API/Database Mozilla Database documentation>-newtype Database = Database { unDatabase :: JSVal }--instance PToJSVal Database where-  pToJSVal = unDatabase-  {-# INLINE pToJSVal #-}--instance PFromJSVal Database where-  pFromJSVal = Database-  {-# INLINE pFromJSVal #-}--instance ToJSVal Database where-  toJSVal = return . unDatabase-  {-# INLINE toJSVal #-}--instance FromJSVal Database where-  fromJSVal v = fmap Database <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Database where-  makeObject = makeObject . unDatabase--instance IsGObject Database where-  typeGType _ = gTypeDatabase-  {-# INLINE typeGType #-}--gTypeDatabase :: JSM GType-gTypeDatabase = GType . Object <$> jsg "Database"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DedicatedWorkerGlobalScope".--- Base interface functions are in:------     * "JSDOM.WorkerGlobalScope"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope Mozilla DedicatedWorkerGlobalScope documentation>-newtype DedicatedWorkerGlobalScope = DedicatedWorkerGlobalScope { unDedicatedWorkerGlobalScope :: JSVal }--instance PToJSVal DedicatedWorkerGlobalScope where-  pToJSVal = unDedicatedWorkerGlobalScope-  {-# INLINE pToJSVal #-}--instance PFromJSVal DedicatedWorkerGlobalScope where-  pFromJSVal = DedicatedWorkerGlobalScope-  {-# INLINE pFromJSVal #-}--instance ToJSVal DedicatedWorkerGlobalScope where-  toJSVal = return . unDedicatedWorkerGlobalScope-  {-# INLINE toJSVal #-}--instance FromJSVal DedicatedWorkerGlobalScope where-  fromJSVal v = fmap DedicatedWorkerGlobalScope <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DedicatedWorkerGlobalScope where-  makeObject = makeObject . unDedicatedWorkerGlobalScope--instance IsWorkerGlobalScope DedicatedWorkerGlobalScope-instance IsEventTarget DedicatedWorkerGlobalScope-instance IsGObject DedicatedWorkerGlobalScope where-  typeGType _ = gTypeDedicatedWorkerGlobalScope-  {-# INLINE typeGType #-}--gTypeDedicatedWorkerGlobalScope :: JSM GType-gTypeDedicatedWorkerGlobalScope = GType . Object <$> jsg "DedicatedWorkerGlobalScope"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DelayNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode Mozilla DelayNode documentation>-newtype DelayNode = DelayNode { unDelayNode :: JSVal }--instance PToJSVal DelayNode where-  pToJSVal = unDelayNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal DelayNode where-  pFromJSVal = DelayNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal DelayNode where-  toJSVal = return . unDelayNode-  {-# INLINE toJSVal #-}--instance FromJSVal DelayNode where-  fromJSVal v = fmap DelayNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DelayNode where-  makeObject = makeObject . unDelayNode--instance IsAudioNode DelayNode-instance IsEventTarget DelayNode-instance IsGObject DelayNode where-  typeGType _ = gTypeDelayNode-  {-# INLINE typeGType #-}--gTypeDelayNode :: JSM GType-gTypeDelayNode = GType . Object <$> jsg "DelayNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DeviceMotionEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent Mozilla DeviceMotionEvent documentation>-newtype DeviceMotionEvent = DeviceMotionEvent { unDeviceMotionEvent :: JSVal }--instance PToJSVal DeviceMotionEvent where-  pToJSVal = unDeviceMotionEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal DeviceMotionEvent where-  pFromJSVal = DeviceMotionEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal DeviceMotionEvent where-  toJSVal = return . unDeviceMotionEvent-  {-# INLINE toJSVal #-}--instance FromJSVal DeviceMotionEvent where-  fromJSVal v = fmap DeviceMotionEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DeviceMotionEvent where-  makeObject = makeObject . unDeviceMotionEvent--instance IsEvent DeviceMotionEvent-instance IsGObject DeviceMotionEvent where-  typeGType _ = gTypeDeviceMotionEvent-  {-# INLINE typeGType #-}--gTypeDeviceMotionEvent :: JSM GType-gTypeDeviceMotionEvent = GType . Object <$> jsg "DeviceMotionEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DeviceOrientationEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent Mozilla DeviceOrientationEvent documentation>-newtype DeviceOrientationEvent = DeviceOrientationEvent { unDeviceOrientationEvent :: JSVal }--instance PToJSVal DeviceOrientationEvent where-  pToJSVal = unDeviceOrientationEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal DeviceOrientationEvent where-  pFromJSVal = DeviceOrientationEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal DeviceOrientationEvent where-  toJSVal = return . unDeviceOrientationEvent-  {-# INLINE toJSVal #-}--instance FromJSVal DeviceOrientationEvent where-  fromJSVal v = fmap DeviceOrientationEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DeviceOrientationEvent where-  makeObject = makeObject . unDeviceOrientationEvent--instance IsEvent DeviceOrientationEvent-instance IsGObject DeviceOrientationEvent where-  typeGType _ = gTypeDeviceOrientationEvent-  {-# INLINE typeGType #-}--gTypeDeviceOrientationEvent :: JSM GType-gTypeDeviceOrientationEvent = GType . Object <$> jsg "DeviceOrientationEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DeviceProximityEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent Mozilla DeviceProximityEvent documentation>-newtype DeviceProximityEvent = DeviceProximityEvent { unDeviceProximityEvent :: JSVal }--instance PToJSVal DeviceProximityEvent where-  pToJSVal = unDeviceProximityEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal DeviceProximityEvent where-  pFromJSVal = DeviceProximityEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal DeviceProximityEvent where-  toJSVal = return . unDeviceProximityEvent-  {-# INLINE toJSVal #-}--instance FromJSVal DeviceProximityEvent where-  fromJSVal v = fmap DeviceProximityEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DeviceProximityEvent where-  makeObject = makeObject . unDeviceProximityEvent--instance IsEvent DeviceProximityEvent-instance IsGObject DeviceProximityEvent where-  typeGType _ = gTypeDeviceProximityEvent-  {-# INLINE typeGType #-}--gTypeDeviceProximityEvent :: JSM GType-gTypeDeviceProximityEvent = GType . Object <$> jsg "DeviceProximityEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Document".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Document Mozilla Document documentation>-newtype Document = Document { unDocument :: JSVal }--instance PToJSVal Document where-  pToJSVal = unDocument-  {-# INLINE pToJSVal #-}--instance PFromJSVal Document where-  pFromJSVal = Document-  {-# INLINE pFromJSVal #-}--instance ToJSVal Document where-  toJSVal = return . unDocument-  {-# INLINE toJSVal #-}--instance FromJSVal Document where-  fromJSVal v = fmap Document <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Document where-  makeObject = makeObject . unDocument--class IsNode o => IsDocument o-toDocument :: IsDocument o => o -> Document-toDocument = Document . coerce--instance IsDocument Document-instance IsNode Document-instance IsEventTarget Document-instance IsGObject Document where-  typeGType _ = gTypeDocument-  {-# INLINE typeGType #-}--gTypeDocument :: JSM GType-gTypeDocument = GType . Object <$> jsg "Document"-#else-type IsDocument o = DocumentClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DocumentFragment".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment Mozilla DocumentFragment documentation>-newtype DocumentFragment = DocumentFragment { unDocumentFragment :: JSVal }--instance PToJSVal DocumentFragment where-  pToJSVal = unDocumentFragment-  {-# INLINE pToJSVal #-}--instance PFromJSVal DocumentFragment where-  pFromJSVal = DocumentFragment-  {-# INLINE pFromJSVal #-}--instance ToJSVal DocumentFragment where-  toJSVal = return . unDocumentFragment-  {-# INLINE toJSVal #-}--instance FromJSVal DocumentFragment where-  fromJSVal v = fmap DocumentFragment <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DocumentFragment where-  makeObject = makeObject . unDocumentFragment--instance IsNode DocumentFragment-instance IsEventTarget DocumentFragment-instance IsGObject DocumentFragment where-  typeGType _ = gTypeDocumentFragment-  {-# INLINE typeGType #-}--gTypeDocumentFragment :: JSM GType-gTypeDocumentFragment = GType . Object <$> jsg "DocumentFragment"-#else-type IsDocumentFragment o = DocumentFragmentClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DocumentType".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType Mozilla DocumentType documentation>-newtype DocumentType = DocumentType { unDocumentType :: JSVal }--instance PToJSVal DocumentType where-  pToJSVal = unDocumentType-  {-# INLINE pToJSVal #-}--instance PFromJSVal DocumentType where-  pFromJSVal = DocumentType-  {-# INLINE pFromJSVal #-}--instance ToJSVal DocumentType where-  toJSVal = return . unDocumentType-  {-# INLINE toJSVal #-}--instance FromJSVal DocumentType where-  fromJSVal v = fmap DocumentType <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DocumentType where-  makeObject = makeObject . unDocumentType--instance IsNode DocumentType-instance IsEventTarget DocumentType-instance IsGObject DocumentType where-  typeGType _ = gTypeDocumentType-  {-# INLINE typeGType #-}--gTypeDocumentType :: JSM GType-gTypeDocumentType = GType . Object <$> jsg "DocumentType"-#else-type IsDocumentType o = DocumentTypeClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.DynamicsCompressorNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode Mozilla DynamicsCompressorNode documentation>-newtype DynamicsCompressorNode = DynamicsCompressorNode { unDynamicsCompressorNode :: JSVal }--instance PToJSVal DynamicsCompressorNode where-  pToJSVal = unDynamicsCompressorNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal DynamicsCompressorNode where-  pFromJSVal = DynamicsCompressorNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal DynamicsCompressorNode where-  toJSVal = return . unDynamicsCompressorNode-  {-# INLINE toJSVal #-}--instance FromJSVal DynamicsCompressorNode where-  fromJSVal v = fmap DynamicsCompressorNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject DynamicsCompressorNode where-  makeObject = makeObject . unDynamicsCompressorNode--instance IsAudioNode DynamicsCompressorNode-instance IsEventTarget DynamicsCompressorNode-instance IsGObject DynamicsCompressorNode where-  typeGType _ = gTypeDynamicsCompressorNode-  {-# INLINE typeGType #-}--gTypeDynamicsCompressorNode :: JSM GType-gTypeDynamicsCompressorNode = GType . Object <$> jsg "DynamicsCompressorNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EXTBlendMinMax".------ <https://developer.mozilla.org/en-US/docs/Web/API/EXTBlendMinMax Mozilla EXTBlendMinMax documentation>-newtype EXTBlendMinMax = EXTBlendMinMax { unEXTBlendMinMax :: JSVal }--instance PToJSVal EXTBlendMinMax where-  pToJSVal = unEXTBlendMinMax-  {-# INLINE pToJSVal #-}--instance PFromJSVal EXTBlendMinMax where-  pFromJSVal = EXTBlendMinMax-  {-# INLINE pFromJSVal #-}--instance ToJSVal EXTBlendMinMax where-  toJSVal = return . unEXTBlendMinMax-  {-# INLINE toJSVal #-}--instance FromJSVal EXTBlendMinMax where-  fromJSVal v = fmap EXTBlendMinMax <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EXTBlendMinMax where-  makeObject = makeObject . unEXTBlendMinMax--instance IsGObject EXTBlendMinMax where-  typeGType _ = gTypeEXTBlendMinMax-  {-# INLINE typeGType #-}--gTypeEXTBlendMinMax :: JSM GType-gTypeEXTBlendMinMax = GType . Object <$> jsg "EXTBlendMinMax"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EXTFragDepth".------ <https://developer.mozilla.org/en-US/docs/Web/API/EXTFragDepth Mozilla EXTFragDepth documentation>-newtype EXTFragDepth = EXTFragDepth { unEXTFragDepth :: JSVal }--instance PToJSVal EXTFragDepth where-  pToJSVal = unEXTFragDepth-  {-# INLINE pToJSVal #-}--instance PFromJSVal EXTFragDepth where-  pFromJSVal = EXTFragDepth-  {-# INLINE pFromJSVal #-}--instance ToJSVal EXTFragDepth where-  toJSVal = return . unEXTFragDepth-  {-# INLINE toJSVal #-}--instance FromJSVal EXTFragDepth where-  fromJSVal v = fmap EXTFragDepth <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EXTFragDepth where-  makeObject = makeObject . unEXTFragDepth--instance IsGObject EXTFragDepth where-  typeGType _ = gTypeEXTFragDepth-  {-# INLINE typeGType #-}--gTypeEXTFragDepth :: JSM GType-gTypeEXTFragDepth = GType . Object <$> jsg "EXTFragDepth"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EXTShaderTextureLOD".------ <https://developer.mozilla.org/en-US/docs/Web/API/EXTShaderTextureLOD Mozilla EXTShaderTextureLOD documentation>-newtype EXTShaderTextureLOD = EXTShaderTextureLOD { unEXTShaderTextureLOD :: JSVal }--instance PToJSVal EXTShaderTextureLOD where-  pToJSVal = unEXTShaderTextureLOD-  {-# INLINE pToJSVal #-}--instance PFromJSVal EXTShaderTextureLOD where-  pFromJSVal = EXTShaderTextureLOD-  {-# INLINE pFromJSVal #-}--instance ToJSVal EXTShaderTextureLOD where-  toJSVal = return . unEXTShaderTextureLOD-  {-# INLINE toJSVal #-}--instance FromJSVal EXTShaderTextureLOD where-  fromJSVal v = fmap EXTShaderTextureLOD <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EXTShaderTextureLOD where-  makeObject = makeObject . unEXTShaderTextureLOD--instance IsGObject EXTShaderTextureLOD where-  typeGType _ = gTypeEXTShaderTextureLOD-  {-# INLINE typeGType #-}--gTypeEXTShaderTextureLOD :: JSM GType-gTypeEXTShaderTextureLOD = GType . Object <$> jsg "EXTShaderTextureLOD"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EXTTextureFilterAnisotropic".------ <https://developer.mozilla.org/en-US/docs/Web/API/EXTTextureFilterAnisotropic Mozilla EXTTextureFilterAnisotropic documentation>-newtype EXTTextureFilterAnisotropic = EXTTextureFilterAnisotropic { unEXTTextureFilterAnisotropic :: JSVal }--instance PToJSVal EXTTextureFilterAnisotropic where-  pToJSVal = unEXTTextureFilterAnisotropic-  {-# INLINE pToJSVal #-}--instance PFromJSVal EXTTextureFilterAnisotropic where-  pFromJSVal = EXTTextureFilterAnisotropic-  {-# INLINE pFromJSVal #-}--instance ToJSVal EXTTextureFilterAnisotropic where-  toJSVal = return . unEXTTextureFilterAnisotropic-  {-# INLINE toJSVal #-}--instance FromJSVal EXTTextureFilterAnisotropic where-  fromJSVal v = fmap EXTTextureFilterAnisotropic <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EXTTextureFilterAnisotropic where-  makeObject = makeObject . unEXTTextureFilterAnisotropic--instance IsGObject EXTTextureFilterAnisotropic where-  typeGType _ = gTypeEXTTextureFilterAnisotropic-  {-# INLINE typeGType #-}--gTypeEXTTextureFilterAnisotropic :: JSM GType-gTypeEXTTextureFilterAnisotropic = GType . Object <$> jsg "EXTTextureFilterAnisotropic"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EXTsRGB".------ <https://developer.mozilla.org/en-US/docs/Web/API/EXTsRGB Mozilla EXTsRGB documentation>-newtype EXTsRGB = EXTsRGB { unEXTsRGB :: JSVal }--instance PToJSVal EXTsRGB where-  pToJSVal = unEXTsRGB-  {-# INLINE pToJSVal #-}--instance PFromJSVal EXTsRGB where-  pFromJSVal = EXTsRGB-  {-# INLINE pFromJSVal #-}--instance ToJSVal EXTsRGB where-  toJSVal = return . unEXTsRGB-  {-# INLINE toJSVal #-}--instance FromJSVal EXTsRGB where-  fromJSVal v = fmap EXTsRGB <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EXTsRGB where-  makeObject = makeObject . unEXTsRGB--instance IsGObject EXTsRGB where-  typeGType _ = gTypeEXTsRGB-  {-# INLINE typeGType #-}--gTypeEXTsRGB :: JSM GType-gTypeEXTsRGB = GType . Object <$> jsg "EXTsRGB"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Element".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Element Mozilla Element documentation>-newtype Element = Element { unElement :: JSVal }--instance PToJSVal Element where-  pToJSVal = unElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal Element where-  pFromJSVal = Element-  {-# INLINE pFromJSVal #-}--instance ToJSVal Element where-  toJSVal = return . unElement-  {-# INLINE toJSVal #-}--instance FromJSVal Element where-  fromJSVal v = fmap Element <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Element where-  makeObject = makeObject . unElement--class IsNode o => IsElement o-toElement :: IsElement o => o -> Element-toElement = Element . coerce--instance IsElement Element-instance IsNode Element-instance IsEventTarget Element-instance IsGObject Element where-  typeGType _ = gTypeElement-  {-# INLINE typeGType #-}--gTypeElement :: JSM GType-gTypeElement = GType . Object <$> jsg "Element"-#else-type IsElement o = ElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Entity".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Entity Mozilla Entity documentation>-newtype Entity = Entity { unEntity :: JSVal }--instance PToJSVal Entity where-  pToJSVal = unEntity-  {-# INLINE pToJSVal #-}--instance PFromJSVal Entity where-  pFromJSVal = Entity-  {-# INLINE pFromJSVal #-}--instance ToJSVal Entity where-  toJSVal = return . unEntity-  {-# INLINE toJSVal #-}--instance FromJSVal Entity where-  fromJSVal v = fmap Entity <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Entity where-  makeObject = makeObject . unEntity--instance IsNode Entity-instance IsEventTarget Entity-instance IsGObject Entity where-  typeGType _ = gTypeEntity-  {-# INLINE typeGType #-}--gTypeEntity :: JSM GType-gTypeEntity = GType . Object <$> jsg "Entity"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EntityReference".--- Base interface functions are in:------     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/EntityReference Mozilla EntityReference documentation>-newtype EntityReference = EntityReference { unEntityReference :: JSVal }--instance PToJSVal EntityReference where-  pToJSVal = unEntityReference-  {-# INLINE pToJSVal #-}--instance PFromJSVal EntityReference where-  pFromJSVal = EntityReference-  {-# INLINE pFromJSVal #-}--instance ToJSVal EntityReference where-  toJSVal = return . unEntityReference-  {-# INLINE toJSVal #-}--instance FromJSVal EntityReference where-  fromJSVal v = fmap EntityReference <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EntityReference where-  makeObject = makeObject . unEntityReference--instance IsNode EntityReference-instance IsEventTarget EntityReference-instance IsGObject EntityReference where-  typeGType _ = gTypeEntityReference-  {-# INLINE typeGType #-}--gTypeEntityReference :: JSM GType-gTypeEntityReference = GType . Object <$> jsg "EntityReference"-#else-type IsEntityReference o = EntityReferenceClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ErrorEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent Mozilla ErrorEvent documentation>-newtype ErrorEvent = ErrorEvent { unErrorEvent :: JSVal }--instance PToJSVal ErrorEvent where-  pToJSVal = unErrorEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal ErrorEvent where-  pFromJSVal = ErrorEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal ErrorEvent where-  toJSVal = return . unErrorEvent-  {-# INLINE toJSVal #-}--instance FromJSVal ErrorEvent where-  fromJSVal v = fmap ErrorEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ErrorEvent where-  makeObject = makeObject . unErrorEvent--instance IsEvent ErrorEvent-instance IsGObject ErrorEvent where-  typeGType _ = gTypeErrorEvent-  {-# INLINE typeGType #-}--gTypeErrorEvent :: JSM GType-gTypeErrorEvent = GType . Object <$> jsg "ErrorEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Event".------ <https://developer.mozilla.org/en-US/docs/Web/API/Event Mozilla Event documentation>-newtype Event = Event { unEvent :: JSVal }--instance PToJSVal Event where-  pToJSVal = unEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal Event where-  pFromJSVal = Event-  {-# INLINE pFromJSVal #-}--instance ToJSVal Event where-  toJSVal = return . unEvent-  {-# INLINE toJSVal #-}--instance FromJSVal Event where-  fromJSVal v = fmap Event <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Event where-  makeObject = makeObject . unEvent--class IsGObject o => IsEvent o-toEvent :: IsEvent o => o -> Event-toEvent = Event . coerce--instance IsEvent Event-instance IsGObject Event where-  typeGType _ = gTypeEvent-  {-# INLINE typeGType #-}--gTypeEvent :: JSM GType-gTypeEvent = GType . Object <$> jsg "Event"-#else-type IsEvent o = EventClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EventListener".------ <https://developer.mozilla.org/en-US/docs/Web/API/EventListener Mozilla EventListener documentation>-newtype EventListener = EventListener { unEventListener :: JSVal }--instance PToJSVal EventListener where-  pToJSVal = unEventListener-  {-# INLINE pToJSVal #-}--instance PFromJSVal EventListener where-  pFromJSVal = EventListener-  {-# INLINE pFromJSVal #-}--instance ToJSVal EventListener where-  toJSVal = return . unEventListener-  {-# INLINE toJSVal #-}--instance FromJSVal EventListener where-  fromJSVal v = fmap EventListener <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EventListener where-  makeObject = makeObject . unEventListener--instance IsGObject EventListener where-  typeGType _ = gTypeEventListener-  {-# INLINE typeGType #-}--gTypeEventListener :: JSM GType-gTypeEventListener = GType . Object <$> jsg "EventListener"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EventSource".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/EventSource Mozilla EventSource documentation>-newtype EventSource = EventSource { unEventSource :: JSVal }--instance PToJSVal EventSource where-  pToJSVal = unEventSource-  {-# INLINE pToJSVal #-}--instance PFromJSVal EventSource where-  pFromJSVal = EventSource-  {-# INLINE pFromJSVal #-}--instance ToJSVal EventSource where-  toJSVal = return . unEventSource-  {-# INLINE toJSVal #-}--instance FromJSVal EventSource where-  fromJSVal v = fmap EventSource <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EventSource where-  makeObject = makeObject . unEventSource--instance IsEventTarget EventSource-instance IsGObject EventSource where-  typeGType _ = gTypeEventSource-  {-# INLINE typeGType #-}--gTypeEventSource :: JSM GType-gTypeEventSource = GType . Object <$> jsg "EventSource"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.EventTarget".------ <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget Mozilla EventTarget documentation>-newtype EventTarget = EventTarget { unEventTarget :: JSVal }--instance PToJSVal EventTarget where-  pToJSVal = unEventTarget-  {-# INLINE pToJSVal #-}--instance PFromJSVal EventTarget where-  pFromJSVal = EventTarget-  {-# INLINE pFromJSVal #-}--instance ToJSVal EventTarget where-  toJSVal = return . unEventTarget-  {-# INLINE toJSVal #-}--instance FromJSVal EventTarget where-  fromJSVal v = fmap EventTarget <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject EventTarget where-  makeObject = makeObject . unEventTarget--class IsGObject o => IsEventTarget o-toEventTarget :: IsEventTarget o => o -> EventTarget-toEventTarget = EventTarget . coerce--instance IsEventTarget EventTarget-instance IsGObject EventTarget where-  typeGType _ = gTypeEventTarget-  {-# INLINE typeGType #-}--gTypeEventTarget :: JSM GType-gTypeEventTarget = GType . Object <$> jsg "EventTarget"-#else-type IsEventTarget o = EventTargetClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.File".--- Base interface functions are in:------     * "JSDOM.Blob"------ <https://developer.mozilla.org/en-US/docs/Web/API/File Mozilla File documentation>-newtype File = File { unFile :: JSVal }--instance PToJSVal File where-  pToJSVal = unFile-  {-# INLINE pToJSVal #-}--instance PFromJSVal File where-  pFromJSVal = File-  {-# INLINE pFromJSVal #-}--instance ToJSVal File where-  toJSVal = return . unFile-  {-# INLINE toJSVal #-}--instance FromJSVal File where-  fromJSVal v = fmap File <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject File where-  makeObject = makeObject . unFile--instance IsBlob File-instance IsGObject File where-  typeGType _ = gTypeFile-  {-# INLINE typeGType #-}--gTypeFile :: JSM GType-gTypeFile = GType . Object <$> jsg "File"-#else-type IsFile o = FileClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FileError".------ <https://developer.mozilla.org/en-US/docs/Web/API/FileError Mozilla FileError documentation>-newtype FileError = FileError { unFileError :: JSVal }--instance PToJSVal FileError where-  pToJSVal = unFileError-  {-# INLINE pToJSVal #-}--instance PFromJSVal FileError where-  pFromJSVal = FileError-  {-# INLINE pFromJSVal #-}--instance ToJSVal FileError where-  toJSVal = return . unFileError-  {-# INLINE toJSVal #-}--instance FromJSVal FileError where-  fromJSVal v = fmap FileError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FileError where-  makeObject = makeObject . unFileError--instance IsGObject FileError where-  typeGType _ = gTypeFileError-  {-# INLINE typeGType #-}--gTypeFileError :: JSM GType-gTypeFileError = GType . Object <$> jsg "FileError"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FileList".------ <https://developer.mozilla.org/en-US/docs/Web/API/FileList Mozilla FileList documentation>-newtype FileList = FileList { unFileList :: JSVal }--instance PToJSVal FileList where-  pToJSVal = unFileList-  {-# INLINE pToJSVal #-}--instance PFromJSVal FileList where-  pFromJSVal = FileList-  {-# INLINE pFromJSVal #-}--instance ToJSVal FileList where-  toJSVal = return . unFileList-  {-# INLINE toJSVal #-}--instance FromJSVal FileList where-  fromJSVal v = fmap FileList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FileList where-  makeObject = makeObject . unFileList--instance IsGObject FileList where-  typeGType _ = gTypeFileList-  {-# INLINE typeGType #-}--gTypeFileList :: JSM GType-gTypeFileList = GType . Object <$> jsg "FileList"-#else-type IsFileList o = FileListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FileReader".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/FileReader Mozilla FileReader documentation>-newtype FileReader = FileReader { unFileReader :: JSVal }--instance PToJSVal FileReader where-  pToJSVal = unFileReader-  {-# INLINE pToJSVal #-}--instance PFromJSVal FileReader where-  pFromJSVal = FileReader-  {-# INLINE pFromJSVal #-}--instance ToJSVal FileReader where-  toJSVal = return . unFileReader-  {-# INLINE toJSVal #-}--instance FromJSVal FileReader where-  fromJSVal v = fmap FileReader <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FileReader where-  makeObject = makeObject . unFileReader--instance IsEventTarget FileReader-instance IsGObject FileReader where-  typeGType _ = gTypeFileReader-  {-# INLINE typeGType #-}--gTypeFileReader :: JSM GType-gTypeFileReader = GType . Object <$> jsg "FileReader"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FileReaderSync".------ <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync Mozilla FileReaderSync documentation>-newtype FileReaderSync = FileReaderSync { unFileReaderSync :: JSVal }--instance PToJSVal FileReaderSync where-  pToJSVal = unFileReaderSync-  {-# INLINE pToJSVal #-}--instance PFromJSVal FileReaderSync where-  pFromJSVal = FileReaderSync-  {-# INLINE pFromJSVal #-}--instance ToJSVal FileReaderSync where-  toJSVal = return . unFileReaderSync-  {-# INLINE toJSVal #-}--instance FromJSVal FileReaderSync where-  fromJSVal v = fmap FileReaderSync <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FileReaderSync where-  makeObject = makeObject . unFileReaderSync--instance IsGObject FileReaderSync where-  typeGType _ = gTypeFileReaderSync-  {-# INLINE typeGType #-}--gTypeFileReaderSync :: JSM GType-gTypeFileReaderSync = GType . Object <$> jsg "FileReaderSync"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FocusEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent Mozilla FocusEvent documentation>-newtype FocusEvent = FocusEvent { unFocusEvent :: JSVal }--instance PToJSVal FocusEvent where-  pToJSVal = unFocusEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal FocusEvent where-  pFromJSVal = FocusEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal FocusEvent where-  toJSVal = return . unFocusEvent-  {-# INLINE toJSVal #-}--instance FromJSVal FocusEvent where-  fromJSVal v = fmap FocusEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FocusEvent where-  makeObject = makeObject . unFocusEvent--instance IsUIEvent FocusEvent-instance IsEvent FocusEvent-instance IsGObject FocusEvent where-  typeGType _ = gTypeFocusEvent-  {-# INLINE typeGType #-}--gTypeFocusEvent :: JSM GType-gTypeFocusEvent = GType . Object <$> jsg "FocusEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FontLoader".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader Mozilla FontLoader documentation>-newtype FontLoader = FontLoader { unFontLoader :: JSVal }--instance PToJSVal FontLoader where-  pToJSVal = unFontLoader-  {-# INLINE pToJSVal #-}--instance PFromJSVal FontLoader where-  pFromJSVal = FontLoader-  {-# INLINE pFromJSVal #-}--instance ToJSVal FontLoader where-  toJSVal = return . unFontLoader-  {-# INLINE toJSVal #-}--instance FromJSVal FontLoader where-  fromJSVal v = fmap FontLoader <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FontLoader where-  makeObject = makeObject . unFontLoader--instance IsEventTarget FontLoader-instance IsGObject FontLoader where-  typeGType _ = gTypeFontLoader-  {-# INLINE typeGType #-}--gTypeFontLoader :: JSM GType-gTypeFontLoader = GType . Object <$> jsg "FontLoader"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.FormData".------ <https://developer.mozilla.org/en-US/docs/Web/API/FormData Mozilla FormData documentation>-newtype FormData = FormData { unFormData :: JSVal }--instance PToJSVal FormData where-  pToJSVal = unFormData-  {-# INLINE pToJSVal #-}--instance PFromJSVal FormData where-  pFromJSVal = FormData-  {-# INLINE pFromJSVal #-}--instance ToJSVal FormData where-  toJSVal = return . unFormData-  {-# INLINE toJSVal #-}--instance FromJSVal FormData where-  fromJSVal v = fmap FormData <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject FormData where-  makeObject = makeObject . unFormData--instance IsGObject FormData where-  typeGType _ = gTypeFormData-  {-# INLINE typeGType #-}--gTypeFormData :: JSM GType-gTypeFormData = GType . Object <$> jsg "FormData"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.GainNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/GainNode Mozilla GainNode documentation>-newtype GainNode = GainNode { unGainNode :: JSVal }--instance PToJSVal GainNode where-  pToJSVal = unGainNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal GainNode where-  pFromJSVal = GainNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal GainNode where-  toJSVal = return . unGainNode-  {-# INLINE toJSVal #-}--instance FromJSVal GainNode where-  fromJSVal v = fmap GainNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject GainNode where-  makeObject = makeObject . unGainNode--instance IsAudioNode GainNode-instance IsEventTarget GainNode-instance IsGObject GainNode where-  typeGType _ = gTypeGainNode-  {-# INLINE typeGType #-}--gTypeGainNode :: JSM GType-gTypeGainNode = GType . Object <$> jsg "GainNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Gamepad".------ <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad Mozilla Gamepad documentation>-newtype Gamepad = Gamepad { unGamepad :: JSVal }--instance PToJSVal Gamepad where-  pToJSVal = unGamepad-  {-# INLINE pToJSVal #-}--instance PFromJSVal Gamepad where-  pFromJSVal = Gamepad-  {-# INLINE pFromJSVal #-}--instance ToJSVal Gamepad where-  toJSVal = return . unGamepad-  {-# INLINE toJSVal #-}--instance FromJSVal Gamepad where-  fromJSVal v = fmap Gamepad <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Gamepad where-  makeObject = makeObject . unGamepad--instance IsGObject Gamepad where-  typeGType _ = gTypeGamepad-  {-# INLINE typeGType #-}--gTypeGamepad :: JSM GType-gTypeGamepad = GType . Object <$> jsg "Gamepad"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.GamepadButton".------ <https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton Mozilla GamepadButton documentation>-newtype GamepadButton = GamepadButton { unGamepadButton :: JSVal }--instance PToJSVal GamepadButton where-  pToJSVal = unGamepadButton-  {-# INLINE pToJSVal #-}--instance PFromJSVal GamepadButton where-  pFromJSVal = GamepadButton-  {-# INLINE pFromJSVal #-}--instance ToJSVal GamepadButton where-  toJSVal = return . unGamepadButton-  {-# INLINE toJSVal #-}--instance FromJSVal GamepadButton where-  fromJSVal v = fmap GamepadButton <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject GamepadButton where-  makeObject = makeObject . unGamepadButton--instance IsGObject GamepadButton where-  typeGType _ = gTypeGamepadButton-  {-# INLINE typeGType #-}--gTypeGamepadButton :: JSM GType-gTypeGamepadButton = GType . Object <$> jsg "GamepadButton"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.GamepadEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent Mozilla GamepadEvent documentation>-newtype GamepadEvent = GamepadEvent { unGamepadEvent :: JSVal }--instance PToJSVal GamepadEvent where-  pToJSVal = unGamepadEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal GamepadEvent where-  pFromJSVal = GamepadEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal GamepadEvent where-  toJSVal = return . unGamepadEvent-  {-# INLINE toJSVal #-}--instance FromJSVal GamepadEvent where-  fromJSVal v = fmap GamepadEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject GamepadEvent where-  makeObject = makeObject . unGamepadEvent--instance IsEvent GamepadEvent-instance IsGObject GamepadEvent where-  typeGType _ = gTypeGamepadEvent-  {-# INLINE typeGType #-}--gTypeGamepadEvent :: JSM GType-gTypeGamepadEvent = GType . Object <$> jsg "GamepadEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Geolocation".------ <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation Mozilla Geolocation documentation>-newtype Geolocation = Geolocation { unGeolocation :: JSVal }--instance PToJSVal Geolocation where-  pToJSVal = unGeolocation-  {-# INLINE pToJSVal #-}--instance PFromJSVal Geolocation where-  pFromJSVal = Geolocation-  {-# INLINE pFromJSVal #-}--instance ToJSVal Geolocation where-  toJSVal = return . unGeolocation-  {-# INLINE toJSVal #-}--instance FromJSVal Geolocation where-  fromJSVal v = fmap Geolocation <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Geolocation where-  makeObject = makeObject . unGeolocation--instance IsGObject Geolocation where-  typeGType _ = gTypeGeolocation-  {-# INLINE typeGType #-}--gTypeGeolocation :: JSM GType-gTypeGeolocation = GType . Object <$> jsg "Geolocation"-#else-type IsGeolocation o = GeolocationClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Geoposition".------ <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition Mozilla Geoposition documentation>-newtype Geoposition = Geoposition { unGeoposition :: JSVal }--instance PToJSVal Geoposition where-  pToJSVal = unGeoposition-  {-# INLINE pToJSVal #-}--instance PFromJSVal Geoposition where-  pFromJSVal = Geoposition-  {-# INLINE pFromJSVal #-}--instance ToJSVal Geoposition where-  toJSVal = return . unGeoposition-  {-# INLINE toJSVal #-}--instance FromJSVal Geoposition where-  fromJSVal v = fmap Geoposition <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Geoposition where-  makeObject = makeObject . unGeoposition--instance IsGObject Geoposition where-  typeGType _ = gTypeGeoposition-  {-# INLINE typeGType #-}--gTypeGeoposition :: JSM GType-gTypeGeoposition = GType . Object <$> jsg "Geoposition"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLAllCollection".------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection Mozilla HTMLAllCollection documentation>-newtype HTMLAllCollection = HTMLAllCollection { unHTMLAllCollection :: JSVal }--instance PToJSVal HTMLAllCollection where-  pToJSVal = unHTMLAllCollection-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLAllCollection where-  pFromJSVal = HTMLAllCollection-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLAllCollection where-  toJSVal = return . unHTMLAllCollection-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLAllCollection where-  fromJSVal v = fmap HTMLAllCollection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLAllCollection where-  makeObject = makeObject . unHTMLAllCollection--instance IsGObject HTMLAllCollection where-  typeGType _ = gTypeHTMLAllCollection-  {-# INLINE typeGType #-}--gTypeHTMLAllCollection :: JSM GType-gTypeHTMLAllCollection = GType . Object <$> jsg "HTMLAllCollection"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLAnchorElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement Mozilla HTMLAnchorElement documentation>-newtype HTMLAnchorElement = HTMLAnchorElement { unHTMLAnchorElement :: JSVal }--instance PToJSVal HTMLAnchorElement where-  pToJSVal = unHTMLAnchorElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLAnchorElement where-  pFromJSVal = HTMLAnchorElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLAnchorElement where-  toJSVal = return . unHTMLAnchorElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLAnchorElement where-  fromJSVal v = fmap HTMLAnchorElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLAnchorElement where-  makeObject = makeObject . unHTMLAnchorElement--instance IsHTMLElement HTMLAnchorElement-instance IsElement HTMLAnchorElement-instance IsNode HTMLAnchorElement-instance IsEventTarget HTMLAnchorElement-instance IsGObject HTMLAnchorElement where-  typeGType _ = gTypeHTMLAnchorElement-  {-# INLINE typeGType #-}--gTypeHTMLAnchorElement :: JSM GType-gTypeHTMLAnchorElement = GType . Object <$> jsg "HTMLAnchorElement"-#else-type IsHTMLAnchorElement o = HTMLAnchorElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLAppletElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement Mozilla HTMLAppletElement documentation>-newtype HTMLAppletElement = HTMLAppletElement { unHTMLAppletElement :: JSVal }--instance PToJSVal HTMLAppletElement where-  pToJSVal = unHTMLAppletElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLAppletElement where-  pFromJSVal = HTMLAppletElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLAppletElement where-  toJSVal = return . unHTMLAppletElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLAppletElement where-  fromJSVal v = fmap HTMLAppletElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLAppletElement where-  makeObject = makeObject . unHTMLAppletElement--instance IsHTMLElement HTMLAppletElement-instance IsElement HTMLAppletElement-instance IsNode HTMLAppletElement-instance IsEventTarget HTMLAppletElement-instance IsGObject HTMLAppletElement where-  typeGType _ = gTypeHTMLAppletElement-  {-# INLINE typeGType #-}--gTypeHTMLAppletElement :: JSM GType-gTypeHTMLAppletElement = GType . Object <$> jsg "HTMLAppletElement"-#else-type IsHTMLAppletElement o = HTMLAppletElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLAreaElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement Mozilla HTMLAreaElement documentation>-newtype HTMLAreaElement = HTMLAreaElement { unHTMLAreaElement :: JSVal }--instance PToJSVal HTMLAreaElement where-  pToJSVal = unHTMLAreaElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLAreaElement where-  pFromJSVal = HTMLAreaElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLAreaElement where-  toJSVal = return . unHTMLAreaElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLAreaElement where-  fromJSVal v = fmap HTMLAreaElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLAreaElement where-  makeObject = makeObject . unHTMLAreaElement--instance IsHTMLElement HTMLAreaElement-instance IsElement HTMLAreaElement-instance IsNode HTMLAreaElement-instance IsEventTarget HTMLAreaElement-instance IsGObject HTMLAreaElement where-  typeGType _ = gTypeHTMLAreaElement-  {-# INLINE typeGType #-}--gTypeHTMLAreaElement :: JSM GType-gTypeHTMLAreaElement = GType . Object <$> jsg "HTMLAreaElement"-#else-type IsHTMLAreaElement o = HTMLAreaElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLAudioElement".--- Base interface functions are in:------     * "JSDOM.HTMLMediaElement"---     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement Mozilla HTMLAudioElement documentation>-newtype HTMLAudioElement = HTMLAudioElement { unHTMLAudioElement :: JSVal }--instance PToJSVal HTMLAudioElement where-  pToJSVal = unHTMLAudioElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLAudioElement where-  pFromJSVal = HTMLAudioElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLAudioElement where-  toJSVal = return . unHTMLAudioElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLAudioElement where-  fromJSVal v = fmap HTMLAudioElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLAudioElement where-  makeObject = makeObject . unHTMLAudioElement--instance IsHTMLMediaElement HTMLAudioElement-instance IsHTMLElement HTMLAudioElement-instance IsElement HTMLAudioElement-instance IsNode HTMLAudioElement-instance IsEventTarget HTMLAudioElement-instance IsGObject HTMLAudioElement where-  typeGType _ = gTypeHTMLAudioElement-  {-# INLINE typeGType #-}--gTypeHTMLAudioElement :: JSM GType-gTypeHTMLAudioElement = GType . Object <$> jsg "HTMLAudioElement"-#else-type IsHTMLAudioElement o = HTMLAudioElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLBRElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement Mozilla HTMLBRElement documentation>-newtype HTMLBRElement = HTMLBRElement { unHTMLBRElement :: JSVal }--instance PToJSVal HTMLBRElement where-  pToJSVal = unHTMLBRElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLBRElement where-  pFromJSVal = HTMLBRElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLBRElement where-  toJSVal = return . unHTMLBRElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLBRElement where-  fromJSVal v = fmap HTMLBRElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLBRElement where-  makeObject = makeObject . unHTMLBRElement--instance IsHTMLElement HTMLBRElement-instance IsElement HTMLBRElement-instance IsNode HTMLBRElement-instance IsEventTarget HTMLBRElement-instance IsGObject HTMLBRElement where-  typeGType _ = gTypeHTMLBRElement-  {-# INLINE typeGType #-}--gTypeHTMLBRElement :: JSM GType-gTypeHTMLBRElement = GType . Object <$> jsg "HTMLBRElement"-#else-type IsHTMLBRElement o = HTMLBRElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLBaseElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement Mozilla HTMLBaseElement documentation>-newtype HTMLBaseElement = HTMLBaseElement { unHTMLBaseElement :: JSVal }--instance PToJSVal HTMLBaseElement where-  pToJSVal = unHTMLBaseElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLBaseElement where-  pFromJSVal = HTMLBaseElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLBaseElement where-  toJSVal = return . unHTMLBaseElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLBaseElement where-  fromJSVal v = fmap HTMLBaseElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLBaseElement where-  makeObject = makeObject . unHTMLBaseElement--instance IsHTMLElement HTMLBaseElement-instance IsElement HTMLBaseElement-instance IsNode HTMLBaseElement-instance IsEventTarget HTMLBaseElement-instance IsGObject HTMLBaseElement where-  typeGType _ = gTypeHTMLBaseElement-  {-# INLINE typeGType #-}--gTypeHTMLBaseElement :: JSM GType-gTypeHTMLBaseElement = GType . Object <$> jsg "HTMLBaseElement"-#else-type IsHTMLBaseElement o = HTMLBaseElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLBaseFontElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement Mozilla HTMLBaseFontElement documentation>-newtype HTMLBaseFontElement = HTMLBaseFontElement { unHTMLBaseFontElement :: JSVal }--instance PToJSVal HTMLBaseFontElement where-  pToJSVal = unHTMLBaseFontElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLBaseFontElement where-  pFromJSVal = HTMLBaseFontElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLBaseFontElement where-  toJSVal = return . unHTMLBaseFontElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLBaseFontElement where-  fromJSVal v = fmap HTMLBaseFontElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLBaseFontElement where-  makeObject = makeObject . unHTMLBaseFontElement--instance IsHTMLElement HTMLBaseFontElement-instance IsElement HTMLBaseFontElement-instance IsNode HTMLBaseFontElement-instance IsEventTarget HTMLBaseFontElement-instance IsGObject HTMLBaseFontElement where-  typeGType _ = gTypeHTMLBaseFontElement-  {-# INLINE typeGType #-}--gTypeHTMLBaseFontElement :: JSM GType-gTypeHTMLBaseFontElement = GType . Object <$> jsg "HTMLBaseFontElement"-#else-type IsHTMLBaseFontElement o = HTMLBaseFontElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLBodyElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement Mozilla HTMLBodyElement documentation>-newtype HTMLBodyElement = HTMLBodyElement { unHTMLBodyElement :: JSVal }--instance PToJSVal HTMLBodyElement where-  pToJSVal = unHTMLBodyElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLBodyElement where-  pFromJSVal = HTMLBodyElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLBodyElement where-  toJSVal = return . unHTMLBodyElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLBodyElement where-  fromJSVal v = fmap HTMLBodyElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLBodyElement where-  makeObject = makeObject . unHTMLBodyElement--instance IsHTMLElement HTMLBodyElement-instance IsElement HTMLBodyElement-instance IsNode HTMLBodyElement-instance IsEventTarget HTMLBodyElement-instance IsGObject HTMLBodyElement where-  typeGType _ = gTypeHTMLBodyElement-  {-# INLINE typeGType #-}--gTypeHTMLBodyElement :: JSM GType-gTypeHTMLBodyElement = GType . Object <$> jsg "HTMLBodyElement"-#else-type IsHTMLBodyElement o = HTMLBodyElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLButtonElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement Mozilla HTMLButtonElement documentation>-newtype HTMLButtonElement = HTMLButtonElement { unHTMLButtonElement :: JSVal }--instance PToJSVal HTMLButtonElement where-  pToJSVal = unHTMLButtonElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLButtonElement where-  pFromJSVal = HTMLButtonElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLButtonElement where-  toJSVal = return . unHTMLButtonElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLButtonElement where-  fromJSVal v = fmap HTMLButtonElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLButtonElement where-  makeObject = makeObject . unHTMLButtonElement--instance IsHTMLElement HTMLButtonElement-instance IsElement HTMLButtonElement-instance IsNode HTMLButtonElement-instance IsEventTarget HTMLButtonElement-instance IsGObject HTMLButtonElement where-  typeGType _ = gTypeHTMLButtonElement-  {-# INLINE typeGType #-}--gTypeHTMLButtonElement :: JSM GType-gTypeHTMLButtonElement = GType . Object <$> jsg "HTMLButtonElement"-#else-type IsHTMLButtonElement o = HTMLButtonElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLCanvasElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement Mozilla HTMLCanvasElement documentation>-newtype HTMLCanvasElement = HTMLCanvasElement { unHTMLCanvasElement :: JSVal }--instance PToJSVal HTMLCanvasElement where-  pToJSVal = unHTMLCanvasElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLCanvasElement where-  pFromJSVal = HTMLCanvasElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLCanvasElement where-  toJSVal = return . unHTMLCanvasElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLCanvasElement where-  fromJSVal v = fmap HTMLCanvasElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLCanvasElement where-  makeObject = makeObject . unHTMLCanvasElement--instance IsHTMLElement HTMLCanvasElement-instance IsElement HTMLCanvasElement-instance IsNode HTMLCanvasElement-instance IsEventTarget HTMLCanvasElement-instance IsGObject HTMLCanvasElement where-  typeGType _ = gTypeHTMLCanvasElement-  {-# INLINE typeGType #-}--gTypeHTMLCanvasElement :: JSM GType-gTypeHTMLCanvasElement = GType . Object <$> jsg "HTMLCanvasElement"-#else-type IsHTMLCanvasElement o = HTMLCanvasElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLCollection".------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection Mozilla HTMLCollection documentation>-newtype HTMLCollection = HTMLCollection { unHTMLCollection :: JSVal }--instance PToJSVal HTMLCollection where-  pToJSVal = unHTMLCollection-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLCollection where-  pFromJSVal = HTMLCollection-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLCollection where-  toJSVal = return . unHTMLCollection-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLCollection where-  fromJSVal v = fmap HTMLCollection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLCollection where-  makeObject = makeObject . unHTMLCollection--class IsGObject o => IsHTMLCollection o-toHTMLCollection :: IsHTMLCollection o => o -> HTMLCollection-toHTMLCollection = HTMLCollection . coerce--instance IsHTMLCollection HTMLCollection-instance IsGObject HTMLCollection where-  typeGType _ = gTypeHTMLCollection-  {-# INLINE typeGType #-}--gTypeHTMLCollection :: JSM GType-gTypeHTMLCollection = GType . Object <$> jsg "HTMLCollection"-#else-type IsHTMLCollection o = HTMLCollectionClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLDListElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement Mozilla HTMLDListElement documentation>-newtype HTMLDListElement = HTMLDListElement { unHTMLDListElement :: JSVal }--instance PToJSVal HTMLDListElement where-  pToJSVal = unHTMLDListElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLDListElement where-  pFromJSVal = HTMLDListElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLDListElement where-  toJSVal = return . unHTMLDListElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLDListElement where-  fromJSVal v = fmap HTMLDListElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLDListElement where-  makeObject = makeObject . unHTMLDListElement--instance IsHTMLElement HTMLDListElement-instance IsElement HTMLDListElement-instance IsNode HTMLDListElement-instance IsEventTarget HTMLDListElement-instance IsGObject HTMLDListElement where-  typeGType _ = gTypeHTMLDListElement-  {-# INLINE typeGType #-}--gTypeHTMLDListElement :: JSM GType-gTypeHTMLDListElement = GType . Object <$> jsg "HTMLDListElement"-#else-type IsHTMLDListElement o = HTMLDListElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLDataListElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement Mozilla HTMLDataListElement documentation>-newtype HTMLDataListElement = HTMLDataListElement { unHTMLDataListElement :: JSVal }--instance PToJSVal HTMLDataListElement where-  pToJSVal = unHTMLDataListElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLDataListElement where-  pFromJSVal = HTMLDataListElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLDataListElement where-  toJSVal = return . unHTMLDataListElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLDataListElement where-  fromJSVal v = fmap HTMLDataListElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLDataListElement where-  makeObject = makeObject . unHTMLDataListElement--instance IsHTMLElement HTMLDataListElement-instance IsElement HTMLDataListElement-instance IsNode HTMLDataListElement-instance IsEventTarget HTMLDataListElement-instance IsGObject HTMLDataListElement where-  typeGType _ = gTypeHTMLDataListElement-  {-# INLINE typeGType #-}--gTypeHTMLDataListElement :: JSM GType-gTypeHTMLDataListElement = GType . Object <$> jsg "HTMLDataListElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLDetailsElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement Mozilla HTMLDetailsElement documentation>-newtype HTMLDetailsElement = HTMLDetailsElement { unHTMLDetailsElement :: JSVal }--instance PToJSVal HTMLDetailsElement where-  pToJSVal = unHTMLDetailsElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLDetailsElement where-  pFromJSVal = HTMLDetailsElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLDetailsElement where-  toJSVal = return . unHTMLDetailsElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLDetailsElement where-  fromJSVal v = fmap HTMLDetailsElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLDetailsElement where-  makeObject = makeObject . unHTMLDetailsElement--instance IsHTMLElement HTMLDetailsElement-instance IsElement HTMLDetailsElement-instance IsNode HTMLDetailsElement-instance IsEventTarget HTMLDetailsElement-instance IsGObject HTMLDetailsElement where-  typeGType _ = gTypeHTMLDetailsElement-  {-# INLINE typeGType #-}--gTypeHTMLDetailsElement :: JSM GType-gTypeHTMLDetailsElement = GType . Object <$> jsg "HTMLDetailsElement"-#else-type IsHTMLDetailsElement o = HTMLDetailsElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLDirectoryElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDirectoryElement Mozilla HTMLDirectoryElement documentation>-newtype HTMLDirectoryElement = HTMLDirectoryElement { unHTMLDirectoryElement :: JSVal }--instance PToJSVal HTMLDirectoryElement where-  pToJSVal = unHTMLDirectoryElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLDirectoryElement where-  pFromJSVal = HTMLDirectoryElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLDirectoryElement where-  toJSVal = return . unHTMLDirectoryElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLDirectoryElement where-  fromJSVal v = fmap HTMLDirectoryElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLDirectoryElement where-  makeObject = makeObject . unHTMLDirectoryElement--instance IsHTMLElement HTMLDirectoryElement-instance IsElement HTMLDirectoryElement-instance IsNode HTMLDirectoryElement-instance IsEventTarget HTMLDirectoryElement-instance IsGObject HTMLDirectoryElement where-  typeGType _ = gTypeHTMLDirectoryElement-  {-# INLINE typeGType #-}--gTypeHTMLDirectoryElement :: JSM GType-gTypeHTMLDirectoryElement = GType . Object <$> jsg "HTMLDirectoryElement"-#else-type IsHTMLDirectoryElement o = HTMLDirectoryElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLDivElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement Mozilla HTMLDivElement documentation>-newtype HTMLDivElement = HTMLDivElement { unHTMLDivElement :: JSVal }--instance PToJSVal HTMLDivElement where-  pToJSVal = unHTMLDivElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLDivElement where-  pFromJSVal = HTMLDivElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLDivElement where-  toJSVal = return . unHTMLDivElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLDivElement where-  fromJSVal v = fmap HTMLDivElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLDivElement where-  makeObject = makeObject . unHTMLDivElement--instance IsHTMLElement HTMLDivElement-instance IsElement HTMLDivElement-instance IsNode HTMLDivElement-instance IsEventTarget HTMLDivElement-instance IsGObject HTMLDivElement where-  typeGType _ = gTypeHTMLDivElement-  {-# INLINE typeGType #-}--gTypeHTMLDivElement :: JSM GType-gTypeHTMLDivElement = GType . Object <$> jsg "HTMLDivElement"-#else-type IsHTMLDivElement o = HTMLDivElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLDocument".--- Base interface functions are in:------     * "JSDOM.Document"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument Mozilla HTMLDocument documentation>-newtype HTMLDocument = HTMLDocument { unHTMLDocument :: JSVal }--instance PToJSVal HTMLDocument where-  pToJSVal = unHTMLDocument-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLDocument where-  pFromJSVal = HTMLDocument-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLDocument where-  toJSVal = return . unHTMLDocument-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLDocument where-  fromJSVal v = fmap HTMLDocument <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLDocument where-  makeObject = makeObject . unHTMLDocument--instance IsDocument HTMLDocument-instance IsNode HTMLDocument-instance IsEventTarget HTMLDocument-instance IsGObject HTMLDocument where-  typeGType _ = gTypeHTMLDocument-  {-# INLINE typeGType #-}--gTypeHTMLDocument :: JSM GType-gTypeHTMLDocument = GType . Object <$> jsg "HTMLDocument"-#else-type IsHTMLDocument o = HTMLDocumentClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLElement".--- Base interface functions are in:------     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement Mozilla HTMLElement documentation>-newtype HTMLElement = HTMLElement { unHTMLElement :: JSVal }--instance PToJSVal HTMLElement where-  pToJSVal = unHTMLElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLElement where-  pFromJSVal = HTMLElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLElement where-  toJSVal = return . unHTMLElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLElement where-  fromJSVal v = fmap HTMLElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLElement where-  makeObject = makeObject . unHTMLElement--class IsElement o => IsHTMLElement o-toHTMLElement :: IsHTMLElement o => o -> HTMLElement-toHTMLElement = HTMLElement . coerce--instance IsHTMLElement HTMLElement-instance IsElement HTMLElement-instance IsNode HTMLElement-instance IsEventTarget HTMLElement-instance IsGObject HTMLElement where-  typeGType _ = gTypeHTMLElement-  {-# INLINE typeGType #-}--gTypeHTMLElement :: JSM GType-gTypeHTMLElement = GType . Object <$> jsg "HTMLElement"-#else-type IsHTMLElement o = HTMLElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLEmbedElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement Mozilla HTMLEmbedElement documentation>-newtype HTMLEmbedElement = HTMLEmbedElement { unHTMLEmbedElement :: JSVal }--instance PToJSVal HTMLEmbedElement where-  pToJSVal = unHTMLEmbedElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLEmbedElement where-  pFromJSVal = HTMLEmbedElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLEmbedElement where-  toJSVal = return . unHTMLEmbedElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLEmbedElement where-  fromJSVal v = fmap HTMLEmbedElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLEmbedElement where-  makeObject = makeObject . unHTMLEmbedElement--instance IsHTMLElement HTMLEmbedElement-instance IsElement HTMLEmbedElement-instance IsNode HTMLEmbedElement-instance IsEventTarget HTMLEmbedElement-instance IsGObject HTMLEmbedElement where-  typeGType _ = gTypeHTMLEmbedElement-  {-# INLINE typeGType #-}--gTypeHTMLEmbedElement :: JSM GType-gTypeHTMLEmbedElement = GType . Object <$> jsg "HTMLEmbedElement"-#else-type IsHTMLEmbedElement o = HTMLEmbedElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLFieldSetElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement Mozilla HTMLFieldSetElement documentation>-newtype HTMLFieldSetElement = HTMLFieldSetElement { unHTMLFieldSetElement :: JSVal }--instance PToJSVal HTMLFieldSetElement where-  pToJSVal = unHTMLFieldSetElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLFieldSetElement where-  pFromJSVal = HTMLFieldSetElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLFieldSetElement where-  toJSVal = return . unHTMLFieldSetElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLFieldSetElement where-  fromJSVal v = fmap HTMLFieldSetElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLFieldSetElement where-  makeObject = makeObject . unHTMLFieldSetElement--instance IsHTMLElement HTMLFieldSetElement-instance IsElement HTMLFieldSetElement-instance IsNode HTMLFieldSetElement-instance IsEventTarget HTMLFieldSetElement-instance IsGObject HTMLFieldSetElement where-  typeGType _ = gTypeHTMLFieldSetElement-  {-# INLINE typeGType #-}--gTypeHTMLFieldSetElement :: JSM GType-gTypeHTMLFieldSetElement = GType . Object <$> jsg "HTMLFieldSetElement"-#else-type IsHTMLFieldSetElement o = HTMLFieldSetElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLFontElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement Mozilla HTMLFontElement documentation>-newtype HTMLFontElement = HTMLFontElement { unHTMLFontElement :: JSVal }--instance PToJSVal HTMLFontElement where-  pToJSVal = unHTMLFontElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLFontElement where-  pFromJSVal = HTMLFontElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLFontElement where-  toJSVal = return . unHTMLFontElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLFontElement where-  fromJSVal v = fmap HTMLFontElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLFontElement where-  makeObject = makeObject . unHTMLFontElement--instance IsHTMLElement HTMLFontElement-instance IsElement HTMLFontElement-instance IsNode HTMLFontElement-instance IsEventTarget HTMLFontElement-instance IsGObject HTMLFontElement where-  typeGType _ = gTypeHTMLFontElement-  {-# INLINE typeGType #-}--gTypeHTMLFontElement :: JSM GType-gTypeHTMLFontElement = GType . Object <$> jsg "HTMLFontElement"-#else-type IsHTMLFontElement o = HTMLFontElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLFormControlsCollection".--- Base interface functions are in:------     * "JSDOM.HTMLCollection"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection Mozilla HTMLFormControlsCollection documentation>-newtype HTMLFormControlsCollection = HTMLFormControlsCollection { unHTMLFormControlsCollection :: JSVal }--instance PToJSVal HTMLFormControlsCollection where-  pToJSVal = unHTMLFormControlsCollection-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLFormControlsCollection where-  pFromJSVal = HTMLFormControlsCollection-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLFormControlsCollection where-  toJSVal = return . unHTMLFormControlsCollection-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLFormControlsCollection where-  fromJSVal v = fmap HTMLFormControlsCollection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLFormControlsCollection where-  makeObject = makeObject . unHTMLFormControlsCollection--instance IsHTMLCollection HTMLFormControlsCollection-instance IsGObject HTMLFormControlsCollection where-  typeGType _ = gTypeHTMLFormControlsCollection-  {-# INLINE typeGType #-}--gTypeHTMLFormControlsCollection :: JSM GType-gTypeHTMLFormControlsCollection = GType . Object <$> jsg "HTMLFormControlsCollection"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLFormElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement Mozilla HTMLFormElement documentation>-newtype HTMLFormElement = HTMLFormElement { unHTMLFormElement :: JSVal }--instance PToJSVal HTMLFormElement where-  pToJSVal = unHTMLFormElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLFormElement where-  pFromJSVal = HTMLFormElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLFormElement where-  toJSVal = return . unHTMLFormElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLFormElement where-  fromJSVal v = fmap HTMLFormElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLFormElement where-  makeObject = makeObject . unHTMLFormElement--instance IsHTMLElement HTMLFormElement-instance IsElement HTMLFormElement-instance IsNode HTMLFormElement-instance IsEventTarget HTMLFormElement-instance IsGObject HTMLFormElement where-  typeGType _ = gTypeHTMLFormElement-  {-# INLINE typeGType #-}--gTypeHTMLFormElement :: JSM GType-gTypeHTMLFormElement = GType . Object <$> jsg "HTMLFormElement"-#else-type IsHTMLFormElement o = HTMLFormElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLFrameElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement Mozilla HTMLFrameElement documentation>-newtype HTMLFrameElement = HTMLFrameElement { unHTMLFrameElement :: JSVal }--instance PToJSVal HTMLFrameElement where-  pToJSVal = unHTMLFrameElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLFrameElement where-  pFromJSVal = HTMLFrameElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLFrameElement where-  toJSVal = return . unHTMLFrameElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLFrameElement where-  fromJSVal v = fmap HTMLFrameElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLFrameElement where-  makeObject = makeObject . unHTMLFrameElement--instance IsHTMLElement HTMLFrameElement-instance IsElement HTMLFrameElement-instance IsNode HTMLFrameElement-instance IsEventTarget HTMLFrameElement-instance IsGObject HTMLFrameElement where-  typeGType _ = gTypeHTMLFrameElement-  {-# INLINE typeGType #-}--gTypeHTMLFrameElement :: JSM GType-gTypeHTMLFrameElement = GType . Object <$> jsg "HTMLFrameElement"-#else-type IsHTMLFrameElement o = HTMLFrameElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLFrameSetElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement Mozilla HTMLFrameSetElement documentation>-newtype HTMLFrameSetElement = HTMLFrameSetElement { unHTMLFrameSetElement :: JSVal }--instance PToJSVal HTMLFrameSetElement where-  pToJSVal = unHTMLFrameSetElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLFrameSetElement where-  pFromJSVal = HTMLFrameSetElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLFrameSetElement where-  toJSVal = return . unHTMLFrameSetElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLFrameSetElement where-  fromJSVal v = fmap HTMLFrameSetElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLFrameSetElement where-  makeObject = makeObject . unHTMLFrameSetElement--instance IsHTMLElement HTMLFrameSetElement-instance IsElement HTMLFrameSetElement-instance IsNode HTMLFrameSetElement-instance IsEventTarget HTMLFrameSetElement-instance IsGObject HTMLFrameSetElement where-  typeGType _ = gTypeHTMLFrameSetElement-  {-# INLINE typeGType #-}--gTypeHTMLFrameSetElement :: JSM GType-gTypeHTMLFrameSetElement = GType . Object <$> jsg "HTMLFrameSetElement"-#else-type IsHTMLFrameSetElement o = HTMLFrameSetElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLHRElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement Mozilla HTMLHRElement documentation>-newtype HTMLHRElement = HTMLHRElement { unHTMLHRElement :: JSVal }--instance PToJSVal HTMLHRElement where-  pToJSVal = unHTMLHRElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLHRElement where-  pFromJSVal = HTMLHRElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLHRElement where-  toJSVal = return . unHTMLHRElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLHRElement where-  fromJSVal v = fmap HTMLHRElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLHRElement where-  makeObject = makeObject . unHTMLHRElement--instance IsHTMLElement HTMLHRElement-instance IsElement HTMLHRElement-instance IsNode HTMLHRElement-instance IsEventTarget HTMLHRElement-instance IsGObject HTMLHRElement where-  typeGType _ = gTypeHTMLHRElement-  {-# INLINE typeGType #-}--gTypeHTMLHRElement :: JSM GType-gTypeHTMLHRElement = GType . Object <$> jsg "HTMLHRElement"-#else-type IsHTMLHRElement o = HTMLHRElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLHeadElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement Mozilla HTMLHeadElement documentation>-newtype HTMLHeadElement = HTMLHeadElement { unHTMLHeadElement :: JSVal }--instance PToJSVal HTMLHeadElement where-  pToJSVal = unHTMLHeadElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLHeadElement where-  pFromJSVal = HTMLHeadElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLHeadElement where-  toJSVal = return . unHTMLHeadElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLHeadElement where-  fromJSVal v = fmap HTMLHeadElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLHeadElement where-  makeObject = makeObject . unHTMLHeadElement--instance IsHTMLElement HTMLHeadElement-instance IsElement HTMLHeadElement-instance IsNode HTMLHeadElement-instance IsEventTarget HTMLHeadElement-instance IsGObject HTMLHeadElement where-  typeGType _ = gTypeHTMLHeadElement-  {-# INLINE typeGType #-}--gTypeHTMLHeadElement :: JSM GType-gTypeHTMLHeadElement = GType . Object <$> jsg "HTMLHeadElement"-#else-type IsHTMLHeadElement o = HTMLHeadElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLHeadingElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement Mozilla HTMLHeadingElement documentation>-newtype HTMLHeadingElement = HTMLHeadingElement { unHTMLHeadingElement :: JSVal }--instance PToJSVal HTMLHeadingElement where-  pToJSVal = unHTMLHeadingElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLHeadingElement where-  pFromJSVal = HTMLHeadingElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLHeadingElement where-  toJSVal = return . unHTMLHeadingElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLHeadingElement where-  fromJSVal v = fmap HTMLHeadingElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLHeadingElement where-  makeObject = makeObject . unHTMLHeadingElement--instance IsHTMLElement HTMLHeadingElement-instance IsElement HTMLHeadingElement-instance IsNode HTMLHeadingElement-instance IsEventTarget HTMLHeadingElement-instance IsGObject HTMLHeadingElement where-  typeGType _ = gTypeHTMLHeadingElement-  {-# INLINE typeGType #-}--gTypeHTMLHeadingElement :: JSM GType-gTypeHTMLHeadingElement = GType . Object <$> jsg "HTMLHeadingElement"-#else-type IsHTMLHeadingElement o = HTMLHeadingElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLHtmlElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement Mozilla HTMLHtmlElement documentation>-newtype HTMLHtmlElement = HTMLHtmlElement { unHTMLHtmlElement :: JSVal }--instance PToJSVal HTMLHtmlElement where-  pToJSVal = unHTMLHtmlElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLHtmlElement where-  pFromJSVal = HTMLHtmlElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLHtmlElement where-  toJSVal = return . unHTMLHtmlElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLHtmlElement where-  fromJSVal v = fmap HTMLHtmlElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLHtmlElement where-  makeObject = makeObject . unHTMLHtmlElement--instance IsHTMLElement HTMLHtmlElement-instance IsElement HTMLHtmlElement-instance IsNode HTMLHtmlElement-instance IsEventTarget HTMLHtmlElement-instance IsGObject HTMLHtmlElement where-  typeGType _ = gTypeHTMLHtmlElement-  {-# INLINE typeGType #-}--gTypeHTMLHtmlElement :: JSM GType-gTypeHTMLHtmlElement = GType . Object <$> jsg "HTMLHtmlElement"-#else-type IsHTMLHtmlElement o = HTMLHtmlElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLIFrameElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement Mozilla HTMLIFrameElement documentation>-newtype HTMLIFrameElement = HTMLIFrameElement { unHTMLIFrameElement :: JSVal }--instance PToJSVal HTMLIFrameElement where-  pToJSVal = unHTMLIFrameElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLIFrameElement where-  pFromJSVal = HTMLIFrameElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLIFrameElement where-  toJSVal = return . unHTMLIFrameElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLIFrameElement where-  fromJSVal v = fmap HTMLIFrameElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLIFrameElement where-  makeObject = makeObject . unHTMLIFrameElement--instance IsHTMLElement HTMLIFrameElement-instance IsElement HTMLIFrameElement-instance IsNode HTMLIFrameElement-instance IsEventTarget HTMLIFrameElement-instance IsGObject HTMLIFrameElement where-  typeGType _ = gTypeHTMLIFrameElement-  {-# INLINE typeGType #-}--gTypeHTMLIFrameElement :: JSM GType-gTypeHTMLIFrameElement = GType . Object <$> jsg "HTMLIFrameElement"-#else-type IsHTMLIFrameElement o = HTMLIFrameElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLImageElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement Mozilla HTMLImageElement documentation>-newtype HTMLImageElement = HTMLImageElement { unHTMLImageElement :: JSVal }--instance PToJSVal HTMLImageElement where-  pToJSVal = unHTMLImageElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLImageElement where-  pFromJSVal = HTMLImageElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLImageElement where-  toJSVal = return . unHTMLImageElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLImageElement where-  fromJSVal v = fmap HTMLImageElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLImageElement where-  makeObject = makeObject . unHTMLImageElement--instance IsHTMLElement HTMLImageElement-instance IsElement HTMLImageElement-instance IsNode HTMLImageElement-instance IsEventTarget HTMLImageElement-instance IsGObject HTMLImageElement where-  typeGType _ = gTypeHTMLImageElement-  {-# INLINE typeGType #-}--gTypeHTMLImageElement :: JSM GType-gTypeHTMLImageElement = GType . Object <$> jsg "HTMLImageElement"-#else-type IsHTMLImageElement o = HTMLImageElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLInputElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement Mozilla HTMLInputElement documentation>-newtype HTMLInputElement = HTMLInputElement { unHTMLInputElement :: JSVal }--instance PToJSVal HTMLInputElement where-  pToJSVal = unHTMLInputElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLInputElement where-  pFromJSVal = HTMLInputElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLInputElement where-  toJSVal = return . unHTMLInputElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLInputElement where-  fromJSVal v = fmap HTMLInputElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLInputElement where-  makeObject = makeObject . unHTMLInputElement--instance IsHTMLElement HTMLInputElement-instance IsElement HTMLInputElement-instance IsNode HTMLInputElement-instance IsEventTarget HTMLInputElement-instance IsGObject HTMLInputElement where-  typeGType _ = gTypeHTMLInputElement-  {-# INLINE typeGType #-}--gTypeHTMLInputElement :: JSM GType-gTypeHTMLInputElement = GType . Object <$> jsg "HTMLInputElement"-#else-type IsHTMLInputElement o = HTMLInputElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLKeygenElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement Mozilla HTMLKeygenElement documentation>-newtype HTMLKeygenElement = HTMLKeygenElement { unHTMLKeygenElement :: JSVal }--instance PToJSVal HTMLKeygenElement where-  pToJSVal = unHTMLKeygenElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLKeygenElement where-  pFromJSVal = HTMLKeygenElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLKeygenElement where-  toJSVal = return . unHTMLKeygenElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLKeygenElement where-  fromJSVal v = fmap HTMLKeygenElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLKeygenElement where-  makeObject = makeObject . unHTMLKeygenElement--instance IsHTMLElement HTMLKeygenElement-instance IsElement HTMLKeygenElement-instance IsNode HTMLKeygenElement-instance IsEventTarget HTMLKeygenElement-instance IsGObject HTMLKeygenElement where-  typeGType _ = gTypeHTMLKeygenElement-  {-# INLINE typeGType #-}--gTypeHTMLKeygenElement :: JSM GType-gTypeHTMLKeygenElement = GType . Object <$> jsg "HTMLKeygenElement"-#else-type IsHTMLKeygenElement o = HTMLKeygenElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLLIElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement Mozilla HTMLLIElement documentation>-newtype HTMLLIElement = HTMLLIElement { unHTMLLIElement :: JSVal }--instance PToJSVal HTMLLIElement where-  pToJSVal = unHTMLLIElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLLIElement where-  pFromJSVal = HTMLLIElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLLIElement where-  toJSVal = return . unHTMLLIElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLLIElement where-  fromJSVal v = fmap HTMLLIElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLLIElement where-  makeObject = makeObject . unHTMLLIElement--instance IsHTMLElement HTMLLIElement-instance IsElement HTMLLIElement-instance IsNode HTMLLIElement-instance IsEventTarget HTMLLIElement-instance IsGObject HTMLLIElement where-  typeGType _ = gTypeHTMLLIElement-  {-# INLINE typeGType #-}--gTypeHTMLLIElement :: JSM GType-gTypeHTMLLIElement = GType . Object <$> jsg "HTMLLIElement"-#else-type IsHTMLLIElement o = HTMLLIElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLLabelElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement Mozilla HTMLLabelElement documentation>-newtype HTMLLabelElement = HTMLLabelElement { unHTMLLabelElement :: JSVal }--instance PToJSVal HTMLLabelElement where-  pToJSVal = unHTMLLabelElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLLabelElement where-  pFromJSVal = HTMLLabelElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLLabelElement where-  toJSVal = return . unHTMLLabelElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLLabelElement where-  fromJSVal v = fmap HTMLLabelElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLLabelElement where-  makeObject = makeObject . unHTMLLabelElement--instance IsHTMLElement HTMLLabelElement-instance IsElement HTMLLabelElement-instance IsNode HTMLLabelElement-instance IsEventTarget HTMLLabelElement-instance IsGObject HTMLLabelElement where-  typeGType _ = gTypeHTMLLabelElement-  {-# INLINE typeGType #-}--gTypeHTMLLabelElement :: JSM GType-gTypeHTMLLabelElement = GType . Object <$> jsg "HTMLLabelElement"-#else-type IsHTMLLabelElement o = HTMLLabelElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLLegendElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement Mozilla HTMLLegendElement documentation>-newtype HTMLLegendElement = HTMLLegendElement { unHTMLLegendElement :: JSVal }--instance PToJSVal HTMLLegendElement where-  pToJSVal = unHTMLLegendElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLLegendElement where-  pFromJSVal = HTMLLegendElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLLegendElement where-  toJSVal = return . unHTMLLegendElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLLegendElement where-  fromJSVal v = fmap HTMLLegendElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLLegendElement where-  makeObject = makeObject . unHTMLLegendElement--instance IsHTMLElement HTMLLegendElement-instance IsElement HTMLLegendElement-instance IsNode HTMLLegendElement-instance IsEventTarget HTMLLegendElement-instance IsGObject HTMLLegendElement where-  typeGType _ = gTypeHTMLLegendElement-  {-# INLINE typeGType #-}--gTypeHTMLLegendElement :: JSM GType-gTypeHTMLLegendElement = GType . Object <$> jsg "HTMLLegendElement"-#else-type IsHTMLLegendElement o = HTMLLegendElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLLinkElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement Mozilla HTMLLinkElement documentation>-newtype HTMLLinkElement = HTMLLinkElement { unHTMLLinkElement :: JSVal }--instance PToJSVal HTMLLinkElement where-  pToJSVal = unHTMLLinkElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLLinkElement where-  pFromJSVal = HTMLLinkElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLLinkElement where-  toJSVal = return . unHTMLLinkElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLLinkElement where-  fromJSVal v = fmap HTMLLinkElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLLinkElement where-  makeObject = makeObject . unHTMLLinkElement--instance IsHTMLElement HTMLLinkElement-instance IsElement HTMLLinkElement-instance IsNode HTMLLinkElement-instance IsEventTarget HTMLLinkElement-instance IsGObject HTMLLinkElement where-  typeGType _ = gTypeHTMLLinkElement-  {-# INLINE typeGType #-}--gTypeHTMLLinkElement :: JSM GType-gTypeHTMLLinkElement = GType . Object <$> jsg "HTMLLinkElement"-#else-type IsHTMLLinkElement o = HTMLLinkElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLMapElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement Mozilla HTMLMapElement documentation>-newtype HTMLMapElement = HTMLMapElement { unHTMLMapElement :: JSVal }--instance PToJSVal HTMLMapElement where-  pToJSVal = unHTMLMapElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLMapElement where-  pFromJSVal = HTMLMapElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLMapElement where-  toJSVal = return . unHTMLMapElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLMapElement where-  fromJSVal v = fmap HTMLMapElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLMapElement where-  makeObject = makeObject . unHTMLMapElement--instance IsHTMLElement HTMLMapElement-instance IsElement HTMLMapElement-instance IsNode HTMLMapElement-instance IsEventTarget HTMLMapElement-instance IsGObject HTMLMapElement where-  typeGType _ = gTypeHTMLMapElement-  {-# INLINE typeGType #-}--gTypeHTMLMapElement :: JSM GType-gTypeHTMLMapElement = GType . Object <$> jsg "HTMLMapElement"-#else-type IsHTMLMapElement o = HTMLMapElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLMarqueeElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement Mozilla HTMLMarqueeElement documentation>-newtype HTMLMarqueeElement = HTMLMarqueeElement { unHTMLMarqueeElement :: JSVal }--instance PToJSVal HTMLMarqueeElement where-  pToJSVal = unHTMLMarqueeElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLMarqueeElement where-  pFromJSVal = HTMLMarqueeElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLMarqueeElement where-  toJSVal = return . unHTMLMarqueeElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLMarqueeElement where-  fromJSVal v = fmap HTMLMarqueeElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLMarqueeElement where-  makeObject = makeObject . unHTMLMarqueeElement--instance IsHTMLElement HTMLMarqueeElement-instance IsElement HTMLMarqueeElement-instance IsNode HTMLMarqueeElement-instance IsEventTarget HTMLMarqueeElement-instance IsGObject HTMLMarqueeElement where-  typeGType _ = gTypeHTMLMarqueeElement-  {-# INLINE typeGType #-}--gTypeHTMLMarqueeElement :: JSM GType-gTypeHTMLMarqueeElement = GType . Object <$> jsg "HTMLMarqueeElement"-#else-type IsHTMLMarqueeElement o = HTMLMarqueeElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLMediaElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement Mozilla HTMLMediaElement documentation>-newtype HTMLMediaElement = HTMLMediaElement { unHTMLMediaElement :: JSVal }--instance PToJSVal HTMLMediaElement where-  pToJSVal = unHTMLMediaElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLMediaElement where-  pFromJSVal = HTMLMediaElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLMediaElement where-  toJSVal = return . unHTMLMediaElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLMediaElement where-  fromJSVal v = fmap HTMLMediaElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLMediaElement where-  makeObject = makeObject . unHTMLMediaElement--class IsHTMLElement o => IsHTMLMediaElement o-toHTMLMediaElement :: IsHTMLMediaElement o => o -> HTMLMediaElement-toHTMLMediaElement = HTMLMediaElement . coerce--instance IsHTMLMediaElement HTMLMediaElement-instance IsHTMLElement HTMLMediaElement-instance IsElement HTMLMediaElement-instance IsNode HTMLMediaElement-instance IsEventTarget HTMLMediaElement-instance IsGObject HTMLMediaElement where-  typeGType _ = gTypeHTMLMediaElement-  {-# INLINE typeGType #-}--gTypeHTMLMediaElement :: JSM GType-gTypeHTMLMediaElement = GType . Object <$> jsg "HTMLMediaElement"-#else-type IsHTMLMediaElement o = HTMLMediaElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLMenuElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement Mozilla HTMLMenuElement documentation>-newtype HTMLMenuElement = HTMLMenuElement { unHTMLMenuElement :: JSVal }--instance PToJSVal HTMLMenuElement where-  pToJSVal = unHTMLMenuElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLMenuElement where-  pFromJSVal = HTMLMenuElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLMenuElement where-  toJSVal = return . unHTMLMenuElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLMenuElement where-  fromJSVal v = fmap HTMLMenuElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLMenuElement where-  makeObject = makeObject . unHTMLMenuElement--instance IsHTMLElement HTMLMenuElement-instance IsElement HTMLMenuElement-instance IsNode HTMLMenuElement-instance IsEventTarget HTMLMenuElement-instance IsGObject HTMLMenuElement where-  typeGType _ = gTypeHTMLMenuElement-  {-# INLINE typeGType #-}--gTypeHTMLMenuElement :: JSM GType-gTypeHTMLMenuElement = GType . Object <$> jsg "HTMLMenuElement"-#else-type IsHTMLMenuElement o = HTMLMenuElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLMetaElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement Mozilla HTMLMetaElement documentation>-newtype HTMLMetaElement = HTMLMetaElement { unHTMLMetaElement :: JSVal }--instance PToJSVal HTMLMetaElement where-  pToJSVal = unHTMLMetaElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLMetaElement where-  pFromJSVal = HTMLMetaElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLMetaElement where-  toJSVal = return . unHTMLMetaElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLMetaElement where-  fromJSVal v = fmap HTMLMetaElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLMetaElement where-  makeObject = makeObject . unHTMLMetaElement--instance IsHTMLElement HTMLMetaElement-instance IsElement HTMLMetaElement-instance IsNode HTMLMetaElement-instance IsEventTarget HTMLMetaElement-instance IsGObject HTMLMetaElement where-  typeGType _ = gTypeHTMLMetaElement-  {-# INLINE typeGType #-}--gTypeHTMLMetaElement :: JSM GType-gTypeHTMLMetaElement = GType . Object <$> jsg "HTMLMetaElement"-#else-type IsHTMLMetaElement o = HTMLMetaElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLMeterElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement Mozilla HTMLMeterElement documentation>-newtype HTMLMeterElement = HTMLMeterElement { unHTMLMeterElement :: JSVal }--instance PToJSVal HTMLMeterElement where-  pToJSVal = unHTMLMeterElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLMeterElement where-  pFromJSVal = HTMLMeterElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLMeterElement where-  toJSVal = return . unHTMLMeterElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLMeterElement where-  fromJSVal v = fmap HTMLMeterElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLMeterElement where-  makeObject = makeObject . unHTMLMeterElement--instance IsHTMLElement HTMLMeterElement-instance IsElement HTMLMeterElement-instance IsNode HTMLMeterElement-instance IsEventTarget HTMLMeterElement-instance IsGObject HTMLMeterElement where-  typeGType _ = gTypeHTMLMeterElement-  {-# INLINE typeGType #-}--gTypeHTMLMeterElement :: JSM GType-gTypeHTMLMeterElement = GType . Object <$> jsg "HTMLMeterElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLModElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement Mozilla HTMLModElement documentation>-newtype HTMLModElement = HTMLModElement { unHTMLModElement :: JSVal }--instance PToJSVal HTMLModElement where-  pToJSVal = unHTMLModElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLModElement where-  pFromJSVal = HTMLModElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLModElement where-  toJSVal = return . unHTMLModElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLModElement where-  fromJSVal v = fmap HTMLModElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLModElement where-  makeObject = makeObject . unHTMLModElement--instance IsHTMLElement HTMLModElement-instance IsElement HTMLModElement-instance IsNode HTMLModElement-instance IsEventTarget HTMLModElement-instance IsGObject HTMLModElement where-  typeGType _ = gTypeHTMLModElement-  {-# INLINE typeGType #-}--gTypeHTMLModElement :: JSM GType-gTypeHTMLModElement = GType . Object <$> jsg "HTMLModElement"-#else-type IsHTMLModElement o = HTMLModElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLOListElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement Mozilla HTMLOListElement documentation>-newtype HTMLOListElement = HTMLOListElement { unHTMLOListElement :: JSVal }--instance PToJSVal HTMLOListElement where-  pToJSVal = unHTMLOListElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLOListElement where-  pFromJSVal = HTMLOListElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLOListElement where-  toJSVal = return . unHTMLOListElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLOListElement where-  fromJSVal v = fmap HTMLOListElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLOListElement where-  makeObject = makeObject . unHTMLOListElement--instance IsHTMLElement HTMLOListElement-instance IsElement HTMLOListElement-instance IsNode HTMLOListElement-instance IsEventTarget HTMLOListElement-instance IsGObject HTMLOListElement where-  typeGType _ = gTypeHTMLOListElement-  {-# INLINE typeGType #-}--gTypeHTMLOListElement :: JSM GType-gTypeHTMLOListElement = GType . Object <$> jsg "HTMLOListElement"-#else-type IsHTMLOListElement o = HTMLOListElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLObjectElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement Mozilla HTMLObjectElement documentation>-newtype HTMLObjectElement = HTMLObjectElement { unHTMLObjectElement :: JSVal }--instance PToJSVal HTMLObjectElement where-  pToJSVal = unHTMLObjectElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLObjectElement where-  pFromJSVal = HTMLObjectElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLObjectElement where-  toJSVal = return . unHTMLObjectElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLObjectElement where-  fromJSVal v = fmap HTMLObjectElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLObjectElement where-  makeObject = makeObject . unHTMLObjectElement--instance IsHTMLElement HTMLObjectElement-instance IsElement HTMLObjectElement-instance IsNode HTMLObjectElement-instance IsEventTarget HTMLObjectElement-instance IsGObject HTMLObjectElement where-  typeGType _ = gTypeHTMLObjectElement-  {-# INLINE typeGType #-}--gTypeHTMLObjectElement :: JSM GType-gTypeHTMLObjectElement = GType . Object <$> jsg "HTMLObjectElement"-#else-type IsHTMLObjectElement o = HTMLObjectElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLOptGroupElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement Mozilla HTMLOptGroupElement documentation>-newtype HTMLOptGroupElement = HTMLOptGroupElement { unHTMLOptGroupElement :: JSVal }--instance PToJSVal HTMLOptGroupElement where-  pToJSVal = unHTMLOptGroupElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLOptGroupElement where-  pFromJSVal = HTMLOptGroupElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLOptGroupElement where-  toJSVal = return . unHTMLOptGroupElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLOptGroupElement where-  fromJSVal v = fmap HTMLOptGroupElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLOptGroupElement where-  makeObject = makeObject . unHTMLOptGroupElement--instance IsHTMLElement HTMLOptGroupElement-instance IsElement HTMLOptGroupElement-instance IsNode HTMLOptGroupElement-instance IsEventTarget HTMLOptGroupElement-instance IsGObject HTMLOptGroupElement where-  typeGType _ = gTypeHTMLOptGroupElement-  {-# INLINE typeGType #-}--gTypeHTMLOptGroupElement :: JSM GType-gTypeHTMLOptGroupElement = GType . Object <$> jsg "HTMLOptGroupElement"-#else-type IsHTMLOptGroupElement o = HTMLOptGroupElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLOptionElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement Mozilla HTMLOptionElement documentation>-newtype HTMLOptionElement = HTMLOptionElement { unHTMLOptionElement :: JSVal }--instance PToJSVal HTMLOptionElement where-  pToJSVal = unHTMLOptionElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLOptionElement where-  pFromJSVal = HTMLOptionElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLOptionElement where-  toJSVal = return . unHTMLOptionElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLOptionElement where-  fromJSVal v = fmap HTMLOptionElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLOptionElement where-  makeObject = makeObject . unHTMLOptionElement--instance IsHTMLElement HTMLOptionElement-instance IsElement HTMLOptionElement-instance IsNode HTMLOptionElement-instance IsEventTarget HTMLOptionElement-instance IsGObject HTMLOptionElement where-  typeGType _ = gTypeHTMLOptionElement-  {-# INLINE typeGType #-}--gTypeHTMLOptionElement :: JSM GType-gTypeHTMLOptionElement = GType . Object <$> jsg "HTMLOptionElement"-#else-type IsHTMLOptionElement o = HTMLOptionElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLOptionsCollection".--- Base interface functions are in:------     * "JSDOM.HTMLCollection"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection Mozilla HTMLOptionsCollection documentation>-newtype HTMLOptionsCollection = HTMLOptionsCollection { unHTMLOptionsCollection :: JSVal }--instance PToJSVal HTMLOptionsCollection where-  pToJSVal = unHTMLOptionsCollection-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLOptionsCollection where-  pFromJSVal = HTMLOptionsCollection-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLOptionsCollection where-  toJSVal = return . unHTMLOptionsCollection-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLOptionsCollection where-  fromJSVal v = fmap HTMLOptionsCollection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLOptionsCollection where-  makeObject = makeObject . unHTMLOptionsCollection--instance IsHTMLCollection HTMLOptionsCollection-instance IsGObject HTMLOptionsCollection where-  typeGType _ = gTypeHTMLOptionsCollection-  {-# INLINE typeGType #-}--gTypeHTMLOptionsCollection :: JSM GType-gTypeHTMLOptionsCollection = GType . Object <$> jsg "HTMLOptionsCollection"-#else-type IsHTMLOptionsCollection o = HTMLOptionsCollectionClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLOutputElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement Mozilla HTMLOutputElement documentation>-newtype HTMLOutputElement = HTMLOutputElement { unHTMLOutputElement :: JSVal }--instance PToJSVal HTMLOutputElement where-  pToJSVal = unHTMLOutputElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLOutputElement where-  pFromJSVal = HTMLOutputElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLOutputElement where-  toJSVal = return . unHTMLOutputElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLOutputElement where-  fromJSVal v = fmap HTMLOutputElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLOutputElement where-  makeObject = makeObject . unHTMLOutputElement--instance IsHTMLElement HTMLOutputElement-instance IsElement HTMLOutputElement-instance IsNode HTMLOutputElement-instance IsEventTarget HTMLOutputElement-instance IsGObject HTMLOutputElement where-  typeGType _ = gTypeHTMLOutputElement-  {-# INLINE typeGType #-}--gTypeHTMLOutputElement :: JSM GType-gTypeHTMLOutputElement = GType . Object <$> jsg "HTMLOutputElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLParagraphElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement Mozilla HTMLParagraphElement documentation>-newtype HTMLParagraphElement = HTMLParagraphElement { unHTMLParagraphElement :: JSVal }--instance PToJSVal HTMLParagraphElement where-  pToJSVal = unHTMLParagraphElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLParagraphElement where-  pFromJSVal = HTMLParagraphElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLParagraphElement where-  toJSVal = return . unHTMLParagraphElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLParagraphElement where-  fromJSVal v = fmap HTMLParagraphElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLParagraphElement where-  makeObject = makeObject . unHTMLParagraphElement--instance IsHTMLElement HTMLParagraphElement-instance IsElement HTMLParagraphElement-instance IsNode HTMLParagraphElement-instance IsEventTarget HTMLParagraphElement-instance IsGObject HTMLParagraphElement where-  typeGType _ = gTypeHTMLParagraphElement-  {-# INLINE typeGType #-}--gTypeHTMLParagraphElement :: JSM GType-gTypeHTMLParagraphElement = GType . Object <$> jsg "HTMLParagraphElement"-#else-type IsHTMLParagraphElement o = HTMLParagraphElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLParamElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement Mozilla HTMLParamElement documentation>-newtype HTMLParamElement = HTMLParamElement { unHTMLParamElement :: JSVal }--instance PToJSVal HTMLParamElement where-  pToJSVal = unHTMLParamElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLParamElement where-  pFromJSVal = HTMLParamElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLParamElement where-  toJSVal = return . unHTMLParamElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLParamElement where-  fromJSVal v = fmap HTMLParamElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLParamElement where-  makeObject = makeObject . unHTMLParamElement--instance IsHTMLElement HTMLParamElement-instance IsElement HTMLParamElement-instance IsNode HTMLParamElement-instance IsEventTarget HTMLParamElement-instance IsGObject HTMLParamElement where-  typeGType _ = gTypeHTMLParamElement-  {-# INLINE typeGType #-}--gTypeHTMLParamElement :: JSM GType-gTypeHTMLParamElement = GType . Object <$> jsg "HTMLParamElement"-#else-type IsHTMLParamElement o = HTMLParamElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLPreElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement Mozilla HTMLPreElement documentation>-newtype HTMLPreElement = HTMLPreElement { unHTMLPreElement :: JSVal }--instance PToJSVal HTMLPreElement where-  pToJSVal = unHTMLPreElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLPreElement where-  pFromJSVal = HTMLPreElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLPreElement where-  toJSVal = return . unHTMLPreElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLPreElement where-  fromJSVal v = fmap HTMLPreElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLPreElement where-  makeObject = makeObject . unHTMLPreElement--instance IsHTMLElement HTMLPreElement-instance IsElement HTMLPreElement-instance IsNode HTMLPreElement-instance IsEventTarget HTMLPreElement-instance IsGObject HTMLPreElement where-  typeGType _ = gTypeHTMLPreElement-  {-# INLINE typeGType #-}--gTypeHTMLPreElement :: JSM GType-gTypeHTMLPreElement = GType . Object <$> jsg "HTMLPreElement"-#else-type IsHTMLPreElement o = HTMLPreElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLProgressElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement Mozilla HTMLProgressElement documentation>-newtype HTMLProgressElement = HTMLProgressElement { unHTMLProgressElement :: JSVal }--instance PToJSVal HTMLProgressElement where-  pToJSVal = unHTMLProgressElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLProgressElement where-  pFromJSVal = HTMLProgressElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLProgressElement where-  toJSVal = return . unHTMLProgressElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLProgressElement where-  fromJSVal v = fmap HTMLProgressElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLProgressElement where-  makeObject = makeObject . unHTMLProgressElement--instance IsHTMLElement HTMLProgressElement-instance IsElement HTMLProgressElement-instance IsNode HTMLProgressElement-instance IsEventTarget HTMLProgressElement-instance IsGObject HTMLProgressElement where-  typeGType _ = gTypeHTMLProgressElement-  {-# INLINE typeGType #-}--gTypeHTMLProgressElement :: JSM GType-gTypeHTMLProgressElement = GType . Object <$> jsg "HTMLProgressElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLQuoteElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement Mozilla HTMLQuoteElement documentation>-newtype HTMLQuoteElement = HTMLQuoteElement { unHTMLQuoteElement :: JSVal }--instance PToJSVal HTMLQuoteElement where-  pToJSVal = unHTMLQuoteElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLQuoteElement where-  pFromJSVal = HTMLQuoteElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLQuoteElement where-  toJSVal = return . unHTMLQuoteElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLQuoteElement where-  fromJSVal v = fmap HTMLQuoteElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLQuoteElement where-  makeObject = makeObject . unHTMLQuoteElement--instance IsHTMLElement HTMLQuoteElement-instance IsElement HTMLQuoteElement-instance IsNode HTMLQuoteElement-instance IsEventTarget HTMLQuoteElement-instance IsGObject HTMLQuoteElement where-  typeGType _ = gTypeHTMLQuoteElement-  {-# INLINE typeGType #-}--gTypeHTMLQuoteElement :: JSM GType-gTypeHTMLQuoteElement = GType . Object <$> jsg "HTMLQuoteElement"-#else-type IsHTMLQuoteElement o = HTMLQuoteElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLScriptElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement Mozilla HTMLScriptElement documentation>-newtype HTMLScriptElement = HTMLScriptElement { unHTMLScriptElement :: JSVal }--instance PToJSVal HTMLScriptElement where-  pToJSVal = unHTMLScriptElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLScriptElement where-  pFromJSVal = HTMLScriptElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLScriptElement where-  toJSVal = return . unHTMLScriptElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLScriptElement where-  fromJSVal v = fmap HTMLScriptElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLScriptElement where-  makeObject = makeObject . unHTMLScriptElement--instance IsHTMLElement HTMLScriptElement-instance IsElement HTMLScriptElement-instance IsNode HTMLScriptElement-instance IsEventTarget HTMLScriptElement-instance IsGObject HTMLScriptElement where-  typeGType _ = gTypeHTMLScriptElement-  {-# INLINE typeGType #-}--gTypeHTMLScriptElement :: JSM GType-gTypeHTMLScriptElement = GType . Object <$> jsg "HTMLScriptElement"-#else-type IsHTMLScriptElement o = HTMLScriptElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLSelectElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement Mozilla HTMLSelectElement documentation>-newtype HTMLSelectElement = HTMLSelectElement { unHTMLSelectElement :: JSVal }--instance PToJSVal HTMLSelectElement where-  pToJSVal = unHTMLSelectElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLSelectElement where-  pFromJSVal = HTMLSelectElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLSelectElement where-  toJSVal = return . unHTMLSelectElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLSelectElement where-  fromJSVal v = fmap HTMLSelectElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLSelectElement where-  makeObject = makeObject . unHTMLSelectElement--instance IsHTMLElement HTMLSelectElement-instance IsElement HTMLSelectElement-instance IsNode HTMLSelectElement-instance IsEventTarget HTMLSelectElement-instance IsGObject HTMLSelectElement where-  typeGType _ = gTypeHTMLSelectElement-  {-# INLINE typeGType #-}--gTypeHTMLSelectElement :: JSM GType-gTypeHTMLSelectElement = GType . Object <$> jsg "HTMLSelectElement"-#else-type IsHTMLSelectElement o = HTMLSelectElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLSourceElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement Mozilla HTMLSourceElement documentation>-newtype HTMLSourceElement = HTMLSourceElement { unHTMLSourceElement :: JSVal }--instance PToJSVal HTMLSourceElement where-  pToJSVal = unHTMLSourceElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLSourceElement where-  pFromJSVal = HTMLSourceElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLSourceElement where-  toJSVal = return . unHTMLSourceElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLSourceElement where-  fromJSVal v = fmap HTMLSourceElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLSourceElement where-  makeObject = makeObject . unHTMLSourceElement--instance IsHTMLElement HTMLSourceElement-instance IsElement HTMLSourceElement-instance IsNode HTMLSourceElement-instance IsEventTarget HTMLSourceElement-instance IsGObject HTMLSourceElement where-  typeGType _ = gTypeHTMLSourceElement-  {-# INLINE typeGType #-}--gTypeHTMLSourceElement :: JSM GType-gTypeHTMLSourceElement = GType . Object <$> jsg "HTMLSourceElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLSpanElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement Mozilla HTMLSpanElement documentation>-newtype HTMLSpanElement = HTMLSpanElement { unHTMLSpanElement :: JSVal }--instance PToJSVal HTMLSpanElement where-  pToJSVal = unHTMLSpanElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLSpanElement where-  pFromJSVal = HTMLSpanElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLSpanElement where-  toJSVal = return . unHTMLSpanElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLSpanElement where-  fromJSVal v = fmap HTMLSpanElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLSpanElement where-  makeObject = makeObject . unHTMLSpanElement--instance IsHTMLElement HTMLSpanElement-instance IsElement HTMLSpanElement-instance IsNode HTMLSpanElement-instance IsEventTarget HTMLSpanElement-instance IsGObject HTMLSpanElement where-  typeGType _ = gTypeHTMLSpanElement-  {-# INLINE typeGType #-}--gTypeHTMLSpanElement :: JSM GType-gTypeHTMLSpanElement = GType . Object <$> jsg "HTMLSpanElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLStyleElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement Mozilla HTMLStyleElement documentation>-newtype HTMLStyleElement = HTMLStyleElement { unHTMLStyleElement :: JSVal }--instance PToJSVal HTMLStyleElement where-  pToJSVal = unHTMLStyleElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLStyleElement where-  pFromJSVal = HTMLStyleElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLStyleElement where-  toJSVal = return . unHTMLStyleElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLStyleElement where-  fromJSVal v = fmap HTMLStyleElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLStyleElement where-  makeObject = makeObject . unHTMLStyleElement--instance IsHTMLElement HTMLStyleElement-instance IsElement HTMLStyleElement-instance IsNode HTMLStyleElement-instance IsEventTarget HTMLStyleElement-instance IsGObject HTMLStyleElement where-  typeGType _ = gTypeHTMLStyleElement-  {-# INLINE typeGType #-}--gTypeHTMLStyleElement :: JSM GType-gTypeHTMLStyleElement = GType . Object <$> jsg "HTMLStyleElement"-#else-type IsHTMLStyleElement o = HTMLStyleElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTableCaptionElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement Mozilla HTMLTableCaptionElement documentation>-newtype HTMLTableCaptionElement = HTMLTableCaptionElement { unHTMLTableCaptionElement :: JSVal }--instance PToJSVal HTMLTableCaptionElement where-  pToJSVal = unHTMLTableCaptionElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTableCaptionElement where-  pFromJSVal = HTMLTableCaptionElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTableCaptionElement where-  toJSVal = return . unHTMLTableCaptionElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTableCaptionElement where-  fromJSVal v = fmap HTMLTableCaptionElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTableCaptionElement where-  makeObject = makeObject . unHTMLTableCaptionElement--instance IsHTMLElement HTMLTableCaptionElement-instance IsElement HTMLTableCaptionElement-instance IsNode HTMLTableCaptionElement-instance IsEventTarget HTMLTableCaptionElement-instance IsGObject HTMLTableCaptionElement where-  typeGType _ = gTypeHTMLTableCaptionElement-  {-# INLINE typeGType #-}--gTypeHTMLTableCaptionElement :: JSM GType-gTypeHTMLTableCaptionElement = GType . Object <$> jsg "HTMLTableCaptionElement"-#else-type IsHTMLTableCaptionElement o = HTMLTableCaptionElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTableCellElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement Mozilla HTMLTableCellElement documentation>-newtype HTMLTableCellElement = HTMLTableCellElement { unHTMLTableCellElement :: JSVal }--instance PToJSVal HTMLTableCellElement where-  pToJSVal = unHTMLTableCellElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTableCellElement where-  pFromJSVal = HTMLTableCellElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTableCellElement where-  toJSVal = return . unHTMLTableCellElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTableCellElement where-  fromJSVal v = fmap HTMLTableCellElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTableCellElement where-  makeObject = makeObject . unHTMLTableCellElement--instance IsHTMLElement HTMLTableCellElement-instance IsElement HTMLTableCellElement-instance IsNode HTMLTableCellElement-instance IsEventTarget HTMLTableCellElement-instance IsGObject HTMLTableCellElement where-  typeGType _ = gTypeHTMLTableCellElement-  {-# INLINE typeGType #-}--gTypeHTMLTableCellElement :: JSM GType-gTypeHTMLTableCellElement = GType . Object <$> jsg "HTMLTableCellElement"-#else-type IsHTMLTableCellElement o = HTMLTableCellElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTableColElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement Mozilla HTMLTableColElement documentation>-newtype HTMLTableColElement = HTMLTableColElement { unHTMLTableColElement :: JSVal }--instance PToJSVal HTMLTableColElement where-  pToJSVal = unHTMLTableColElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTableColElement where-  pFromJSVal = HTMLTableColElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTableColElement where-  toJSVal = return . unHTMLTableColElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTableColElement where-  fromJSVal v = fmap HTMLTableColElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTableColElement where-  makeObject = makeObject . unHTMLTableColElement--instance IsHTMLElement HTMLTableColElement-instance IsElement HTMLTableColElement-instance IsNode HTMLTableColElement-instance IsEventTarget HTMLTableColElement-instance IsGObject HTMLTableColElement where-  typeGType _ = gTypeHTMLTableColElement-  {-# INLINE typeGType #-}--gTypeHTMLTableColElement :: JSM GType-gTypeHTMLTableColElement = GType . Object <$> jsg "HTMLTableColElement"-#else-type IsHTMLTableColElement o = HTMLTableColElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTableElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement Mozilla HTMLTableElement documentation>-newtype HTMLTableElement = HTMLTableElement { unHTMLTableElement :: JSVal }--instance PToJSVal HTMLTableElement where-  pToJSVal = unHTMLTableElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTableElement where-  pFromJSVal = HTMLTableElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTableElement where-  toJSVal = return . unHTMLTableElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTableElement where-  fromJSVal v = fmap HTMLTableElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTableElement where-  makeObject = makeObject . unHTMLTableElement--instance IsHTMLElement HTMLTableElement-instance IsElement HTMLTableElement-instance IsNode HTMLTableElement-instance IsEventTarget HTMLTableElement-instance IsGObject HTMLTableElement where-  typeGType _ = gTypeHTMLTableElement-  {-# INLINE typeGType #-}--gTypeHTMLTableElement :: JSM GType-gTypeHTMLTableElement = GType . Object <$> jsg "HTMLTableElement"-#else-type IsHTMLTableElement o = HTMLTableElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTableRowElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement Mozilla HTMLTableRowElement documentation>-newtype HTMLTableRowElement = HTMLTableRowElement { unHTMLTableRowElement :: JSVal }--instance PToJSVal HTMLTableRowElement where-  pToJSVal = unHTMLTableRowElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTableRowElement where-  pFromJSVal = HTMLTableRowElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTableRowElement where-  toJSVal = return . unHTMLTableRowElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTableRowElement where-  fromJSVal v = fmap HTMLTableRowElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTableRowElement where-  makeObject = makeObject . unHTMLTableRowElement--instance IsHTMLElement HTMLTableRowElement-instance IsElement HTMLTableRowElement-instance IsNode HTMLTableRowElement-instance IsEventTarget HTMLTableRowElement-instance IsGObject HTMLTableRowElement where-  typeGType _ = gTypeHTMLTableRowElement-  {-# INLINE typeGType #-}--gTypeHTMLTableRowElement :: JSM GType-gTypeHTMLTableRowElement = GType . Object <$> jsg "HTMLTableRowElement"-#else-type IsHTMLTableRowElement o = HTMLTableRowElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTableSectionElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement Mozilla HTMLTableSectionElement documentation>-newtype HTMLTableSectionElement = HTMLTableSectionElement { unHTMLTableSectionElement :: JSVal }--instance PToJSVal HTMLTableSectionElement where-  pToJSVal = unHTMLTableSectionElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTableSectionElement where-  pFromJSVal = HTMLTableSectionElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTableSectionElement where-  toJSVal = return . unHTMLTableSectionElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTableSectionElement where-  fromJSVal v = fmap HTMLTableSectionElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTableSectionElement where-  makeObject = makeObject . unHTMLTableSectionElement--instance IsHTMLElement HTMLTableSectionElement-instance IsElement HTMLTableSectionElement-instance IsNode HTMLTableSectionElement-instance IsEventTarget HTMLTableSectionElement-instance IsGObject HTMLTableSectionElement where-  typeGType _ = gTypeHTMLTableSectionElement-  {-# INLINE typeGType #-}--gTypeHTMLTableSectionElement :: JSM GType-gTypeHTMLTableSectionElement = GType . Object <$> jsg "HTMLTableSectionElement"-#else-type IsHTMLTableSectionElement o = HTMLTableSectionElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTemplateElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement Mozilla HTMLTemplateElement documentation>-newtype HTMLTemplateElement = HTMLTemplateElement { unHTMLTemplateElement :: JSVal }--instance PToJSVal HTMLTemplateElement where-  pToJSVal = unHTMLTemplateElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTemplateElement where-  pFromJSVal = HTMLTemplateElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTemplateElement where-  toJSVal = return . unHTMLTemplateElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTemplateElement where-  fromJSVal v = fmap HTMLTemplateElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTemplateElement where-  makeObject = makeObject . unHTMLTemplateElement--instance IsHTMLElement HTMLTemplateElement-instance IsElement HTMLTemplateElement-instance IsNode HTMLTemplateElement-instance IsEventTarget HTMLTemplateElement-instance IsGObject HTMLTemplateElement where-  typeGType _ = gTypeHTMLTemplateElement-  {-# INLINE typeGType #-}--gTypeHTMLTemplateElement :: JSM GType-gTypeHTMLTemplateElement = GType . Object <$> jsg "HTMLTemplateElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTextAreaElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement Mozilla HTMLTextAreaElement documentation>-newtype HTMLTextAreaElement = HTMLTextAreaElement { unHTMLTextAreaElement :: JSVal }--instance PToJSVal HTMLTextAreaElement where-  pToJSVal = unHTMLTextAreaElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTextAreaElement where-  pFromJSVal = HTMLTextAreaElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTextAreaElement where-  toJSVal = return . unHTMLTextAreaElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTextAreaElement where-  fromJSVal v = fmap HTMLTextAreaElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTextAreaElement where-  makeObject = makeObject . unHTMLTextAreaElement--instance IsHTMLElement HTMLTextAreaElement-instance IsElement HTMLTextAreaElement-instance IsNode HTMLTextAreaElement-instance IsEventTarget HTMLTextAreaElement-instance IsGObject HTMLTextAreaElement where-  typeGType _ = gTypeHTMLTextAreaElement-  {-# INLINE typeGType #-}--gTypeHTMLTextAreaElement :: JSM GType-gTypeHTMLTextAreaElement = GType . Object <$> jsg "HTMLTextAreaElement"-#else-type IsHTMLTextAreaElement o = HTMLTextAreaElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTitleElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement Mozilla HTMLTitleElement documentation>-newtype HTMLTitleElement = HTMLTitleElement { unHTMLTitleElement :: JSVal }--instance PToJSVal HTMLTitleElement where-  pToJSVal = unHTMLTitleElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTitleElement where-  pFromJSVal = HTMLTitleElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTitleElement where-  toJSVal = return . unHTMLTitleElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTitleElement where-  fromJSVal v = fmap HTMLTitleElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTitleElement where-  makeObject = makeObject . unHTMLTitleElement--instance IsHTMLElement HTMLTitleElement-instance IsElement HTMLTitleElement-instance IsNode HTMLTitleElement-instance IsEventTarget HTMLTitleElement-instance IsGObject HTMLTitleElement where-  typeGType _ = gTypeHTMLTitleElement-  {-# INLINE typeGType #-}--gTypeHTMLTitleElement :: JSM GType-gTypeHTMLTitleElement = GType . Object <$> jsg "HTMLTitleElement"-#else-type IsHTMLTitleElement o = HTMLTitleElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLTrackElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement Mozilla HTMLTrackElement documentation>-newtype HTMLTrackElement = HTMLTrackElement { unHTMLTrackElement :: JSVal }--instance PToJSVal HTMLTrackElement where-  pToJSVal = unHTMLTrackElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLTrackElement where-  pFromJSVal = HTMLTrackElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLTrackElement where-  toJSVal = return . unHTMLTrackElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLTrackElement where-  fromJSVal v = fmap HTMLTrackElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLTrackElement where-  makeObject = makeObject . unHTMLTrackElement--instance IsHTMLElement HTMLTrackElement-instance IsElement HTMLTrackElement-instance IsNode HTMLTrackElement-instance IsEventTarget HTMLTrackElement-instance IsGObject HTMLTrackElement where-  typeGType _ = gTypeHTMLTrackElement-  {-# INLINE typeGType #-}--gTypeHTMLTrackElement :: JSM GType-gTypeHTMLTrackElement = GType . Object <$> jsg "HTMLTrackElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLUListElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement Mozilla HTMLUListElement documentation>-newtype HTMLUListElement = HTMLUListElement { unHTMLUListElement :: JSVal }--instance PToJSVal HTMLUListElement where-  pToJSVal = unHTMLUListElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLUListElement where-  pFromJSVal = HTMLUListElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLUListElement where-  toJSVal = return . unHTMLUListElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLUListElement where-  fromJSVal v = fmap HTMLUListElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLUListElement where-  makeObject = makeObject . unHTMLUListElement--instance IsHTMLElement HTMLUListElement-instance IsElement HTMLUListElement-instance IsNode HTMLUListElement-instance IsEventTarget HTMLUListElement-instance IsGObject HTMLUListElement where-  typeGType _ = gTypeHTMLUListElement-  {-# INLINE typeGType #-}--gTypeHTMLUListElement :: JSM GType-gTypeHTMLUListElement = GType . Object <$> jsg "HTMLUListElement"-#else-type IsHTMLUListElement o = HTMLUListElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLUnknownElement".--- Base interface functions are in:------     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement Mozilla HTMLUnknownElement documentation>-newtype HTMLUnknownElement = HTMLUnknownElement { unHTMLUnknownElement :: JSVal }--instance PToJSVal HTMLUnknownElement where-  pToJSVal = unHTMLUnknownElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLUnknownElement where-  pFromJSVal = HTMLUnknownElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLUnknownElement where-  toJSVal = return . unHTMLUnknownElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLUnknownElement where-  fromJSVal v = fmap HTMLUnknownElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLUnknownElement where-  makeObject = makeObject . unHTMLUnknownElement--instance IsHTMLElement HTMLUnknownElement-instance IsElement HTMLUnknownElement-instance IsNode HTMLUnknownElement-instance IsEventTarget HTMLUnknownElement-instance IsGObject HTMLUnknownElement where-  typeGType _ = gTypeHTMLUnknownElement-  {-# INLINE typeGType #-}--gTypeHTMLUnknownElement :: JSM GType-gTypeHTMLUnknownElement = GType . Object <$> jsg "HTMLUnknownElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HTMLVideoElement".--- Base interface functions are in:------     * "JSDOM.HTMLMediaElement"---     * "JSDOM.HTMLElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement Mozilla HTMLVideoElement documentation>-newtype HTMLVideoElement = HTMLVideoElement { unHTMLVideoElement :: JSVal }--instance PToJSVal HTMLVideoElement where-  pToJSVal = unHTMLVideoElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal HTMLVideoElement where-  pFromJSVal = HTMLVideoElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal HTMLVideoElement where-  toJSVal = return . unHTMLVideoElement-  {-# INLINE toJSVal #-}--instance FromJSVal HTMLVideoElement where-  fromJSVal v = fmap HTMLVideoElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HTMLVideoElement where-  makeObject = makeObject . unHTMLVideoElement--instance IsHTMLMediaElement HTMLVideoElement-instance IsHTMLElement HTMLVideoElement-instance IsElement HTMLVideoElement-instance IsNode HTMLVideoElement-instance IsEventTarget HTMLVideoElement-instance IsGObject HTMLVideoElement where-  typeGType _ = gTypeHTMLVideoElement-  {-# INLINE typeGType #-}--gTypeHTMLVideoElement :: JSM GType-gTypeHTMLVideoElement = GType . Object <$> jsg "HTMLVideoElement"-#else-type IsHTMLVideoElement o = HTMLVideoElementClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.HashChangeEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent Mozilla HashChangeEvent documentation>-newtype HashChangeEvent = HashChangeEvent { unHashChangeEvent :: JSVal }--instance PToJSVal HashChangeEvent where-  pToJSVal = unHashChangeEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal HashChangeEvent where-  pFromJSVal = HashChangeEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal HashChangeEvent where-  toJSVal = return . unHashChangeEvent-  {-# INLINE toJSVal #-}--instance FromJSVal HashChangeEvent where-  fromJSVal v = fmap HashChangeEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject HashChangeEvent where-  makeObject = makeObject . unHashChangeEvent--instance IsEvent HashChangeEvent-instance IsGObject HashChangeEvent where-  typeGType _ = gTypeHashChangeEvent-  {-# INLINE typeGType #-}--gTypeHashChangeEvent :: JSM GType-gTypeHashChangeEvent = GType . Object <$> jsg "HashChangeEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.History".------ <https://developer.mozilla.org/en-US/docs/Web/API/History Mozilla History documentation>-newtype History = History { unHistory :: JSVal }--instance PToJSVal History where-  pToJSVal = unHistory-  {-# INLINE pToJSVal #-}--instance PFromJSVal History where-  pFromJSVal = History-  {-# INLINE pFromJSVal #-}--instance ToJSVal History where-  toJSVal = return . unHistory-  {-# INLINE toJSVal #-}--instance FromJSVal History where-  fromJSVal v = fmap History <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject History where-  makeObject = makeObject . unHistory--instance IsGObject History where-  typeGType _ = gTypeHistory-  {-# INLINE typeGType #-}--gTypeHistory :: JSM GType-gTypeHistory = GType . Object <$> jsg "History"-#else-type IsHistory o = HistoryClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBAny".------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBAny Mozilla IDBAny documentation>-newtype IDBAny = IDBAny { unIDBAny :: JSVal }--instance PToJSVal IDBAny where-  pToJSVal = unIDBAny-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBAny where-  pFromJSVal = IDBAny-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBAny where-  toJSVal = return . unIDBAny-  {-# INLINE toJSVal #-}--instance FromJSVal IDBAny where-  fromJSVal v = fmap IDBAny <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBAny where-  makeObject = makeObject . unIDBAny--instance IsGObject IDBAny where-  typeGType _ = gTypeIDBAny-  {-# INLINE typeGType #-}--gTypeIDBAny :: JSM GType-gTypeIDBAny = GType . Object <$> jsg "IDBAny"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBCursor".------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor Mozilla IDBCursor documentation>-newtype IDBCursor = IDBCursor { unIDBCursor :: JSVal }--instance PToJSVal IDBCursor where-  pToJSVal = unIDBCursor-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBCursor where-  pFromJSVal = IDBCursor-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBCursor where-  toJSVal = return . unIDBCursor-  {-# INLINE toJSVal #-}--instance FromJSVal IDBCursor where-  fromJSVal v = fmap IDBCursor <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBCursor where-  makeObject = makeObject . unIDBCursor--class IsGObject o => IsIDBCursor o-toIDBCursor :: IsIDBCursor o => o -> IDBCursor-toIDBCursor = IDBCursor . coerce--instance IsIDBCursor IDBCursor-instance IsGObject IDBCursor where-  typeGType _ = gTypeIDBCursor-  {-# INLINE typeGType #-}--gTypeIDBCursor :: JSM GType-gTypeIDBCursor = GType . Object <$> jsg "IDBCursor"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBCursorWithValue".--- Base interface functions are in:------     * "JSDOM.IDBCursor"------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursorWithValue Mozilla IDBCursorWithValue documentation>-newtype IDBCursorWithValue = IDBCursorWithValue { unIDBCursorWithValue :: JSVal }--instance PToJSVal IDBCursorWithValue where-  pToJSVal = unIDBCursorWithValue-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBCursorWithValue where-  pFromJSVal = IDBCursorWithValue-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBCursorWithValue where-  toJSVal = return . unIDBCursorWithValue-  {-# INLINE toJSVal #-}--instance FromJSVal IDBCursorWithValue where-  fromJSVal v = fmap IDBCursorWithValue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBCursorWithValue where-  makeObject = makeObject . unIDBCursorWithValue--instance IsIDBCursor IDBCursorWithValue-instance IsGObject IDBCursorWithValue where-  typeGType _ = gTypeIDBCursorWithValue-  {-# INLINE typeGType #-}--gTypeIDBCursorWithValue :: JSM GType-gTypeIDBCursorWithValue = GType . Object <$> jsg "IDBCursorWithValue"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBDatabase".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase Mozilla IDBDatabase documentation>-newtype IDBDatabase = IDBDatabase { unIDBDatabase :: JSVal }--instance PToJSVal IDBDatabase where-  pToJSVal = unIDBDatabase-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBDatabase where-  pFromJSVal = IDBDatabase-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBDatabase where-  toJSVal = return . unIDBDatabase-  {-# INLINE toJSVal #-}--instance FromJSVal IDBDatabase where-  fromJSVal v = fmap IDBDatabase <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBDatabase where-  makeObject = makeObject . unIDBDatabase--instance IsEventTarget IDBDatabase-instance IsGObject IDBDatabase where-  typeGType _ = gTypeIDBDatabase-  {-# INLINE typeGType #-}--gTypeIDBDatabase :: JSM GType-gTypeIDBDatabase = GType . Object <$> jsg "IDBDatabase"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBFactory".------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory Mozilla IDBFactory documentation>-newtype IDBFactory = IDBFactory { unIDBFactory :: JSVal }--instance PToJSVal IDBFactory where-  pToJSVal = unIDBFactory-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBFactory where-  pFromJSVal = IDBFactory-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBFactory where-  toJSVal = return . unIDBFactory-  {-# INLINE toJSVal #-}--instance FromJSVal IDBFactory where-  fromJSVal v = fmap IDBFactory <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBFactory where-  makeObject = makeObject . unIDBFactory--instance IsGObject IDBFactory where-  typeGType _ = gTypeIDBFactory-  {-# INLINE typeGType #-}--gTypeIDBFactory :: JSM GType-gTypeIDBFactory = GType . Object <$> jsg "IDBFactory"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBIndex".------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex Mozilla IDBIndex documentation>-newtype IDBIndex = IDBIndex { unIDBIndex :: JSVal }--instance PToJSVal IDBIndex where-  pToJSVal = unIDBIndex-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBIndex where-  pFromJSVal = IDBIndex-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBIndex where-  toJSVal = return . unIDBIndex-  {-# INLINE toJSVal #-}--instance FromJSVal IDBIndex where-  fromJSVal v = fmap IDBIndex <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBIndex where-  makeObject = makeObject . unIDBIndex--instance IsGObject IDBIndex where-  typeGType _ = gTypeIDBIndex-  {-# INLINE typeGType #-}--gTypeIDBIndex :: JSM GType-gTypeIDBIndex = GType . Object <$> jsg "IDBIndex"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBKeyRange".------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange Mozilla IDBKeyRange documentation>-newtype IDBKeyRange = IDBKeyRange { unIDBKeyRange :: JSVal }--instance PToJSVal IDBKeyRange where-  pToJSVal = unIDBKeyRange-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBKeyRange where-  pFromJSVal = IDBKeyRange-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBKeyRange where-  toJSVal = return . unIDBKeyRange-  {-# INLINE toJSVal #-}--instance FromJSVal IDBKeyRange where-  fromJSVal v = fmap IDBKeyRange <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBKeyRange where-  makeObject = makeObject . unIDBKeyRange--instance IsGObject IDBKeyRange where-  typeGType _ = gTypeIDBKeyRange-  {-# INLINE typeGType #-}--gTypeIDBKeyRange :: JSM GType-gTypeIDBKeyRange = GType . Object <$> jsg "IDBKeyRange"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBObjectStore".------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore Mozilla IDBObjectStore documentation>-newtype IDBObjectStore = IDBObjectStore { unIDBObjectStore :: JSVal }--instance PToJSVal IDBObjectStore where-  pToJSVal = unIDBObjectStore-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBObjectStore where-  pFromJSVal = IDBObjectStore-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBObjectStore where-  toJSVal = return . unIDBObjectStore-  {-# INLINE toJSVal #-}--instance FromJSVal IDBObjectStore where-  fromJSVal v = fmap IDBObjectStore <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBObjectStore where-  makeObject = makeObject . unIDBObjectStore--instance IsGObject IDBObjectStore where-  typeGType _ = gTypeIDBObjectStore-  {-# INLINE typeGType #-}--gTypeIDBObjectStore :: JSM GType-gTypeIDBObjectStore = GType . Object <$> jsg "IDBObjectStore"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBOpenDBRequest".--- Base interface functions are in:------     * "JSDOM.IDBRequest"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBOpenDBRequest Mozilla IDBOpenDBRequest documentation>-newtype IDBOpenDBRequest = IDBOpenDBRequest { unIDBOpenDBRequest :: JSVal }--instance PToJSVal IDBOpenDBRequest where-  pToJSVal = unIDBOpenDBRequest-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBOpenDBRequest where-  pFromJSVal = IDBOpenDBRequest-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBOpenDBRequest where-  toJSVal = return . unIDBOpenDBRequest-  {-# INLINE toJSVal #-}--instance FromJSVal IDBOpenDBRequest where-  fromJSVal v = fmap IDBOpenDBRequest <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBOpenDBRequest where-  makeObject = makeObject . unIDBOpenDBRequest--instance IsIDBRequest IDBOpenDBRequest-instance IsEventTarget IDBOpenDBRequest-instance IsGObject IDBOpenDBRequest where-  typeGType _ = gTypeIDBOpenDBRequest-  {-# INLINE typeGType #-}--gTypeIDBOpenDBRequest :: JSM GType-gTypeIDBOpenDBRequest = GType . Object <$> jsg "IDBOpenDBRequest"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBRequest".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest Mozilla IDBRequest documentation>-newtype IDBRequest = IDBRequest { unIDBRequest :: JSVal }--instance PToJSVal IDBRequest where-  pToJSVal = unIDBRequest-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBRequest where-  pFromJSVal = IDBRequest-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBRequest where-  toJSVal = return . unIDBRequest-  {-# INLINE toJSVal #-}--instance FromJSVal IDBRequest where-  fromJSVal v = fmap IDBRequest <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBRequest where-  makeObject = makeObject . unIDBRequest--class IsEventTarget o => IsIDBRequest o-toIDBRequest :: IsIDBRequest o => o -> IDBRequest-toIDBRequest = IDBRequest . coerce--instance IsIDBRequest IDBRequest-instance IsEventTarget IDBRequest-instance IsGObject IDBRequest where-  typeGType _ = gTypeIDBRequest-  {-# INLINE typeGType #-}--gTypeIDBRequest :: JSM GType-gTypeIDBRequest = GType . Object <$> jsg "IDBRequest"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBTransaction".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction Mozilla IDBTransaction documentation>-newtype IDBTransaction = IDBTransaction { unIDBTransaction :: JSVal }--instance PToJSVal IDBTransaction where-  pToJSVal = unIDBTransaction-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBTransaction where-  pFromJSVal = IDBTransaction-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBTransaction where-  toJSVal = return . unIDBTransaction-  {-# INLINE toJSVal #-}--instance FromJSVal IDBTransaction where-  fromJSVal v = fmap IDBTransaction <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBTransaction where-  makeObject = makeObject . unIDBTransaction--instance IsEventTarget IDBTransaction-instance IsGObject IDBTransaction where-  typeGType _ = gTypeIDBTransaction-  {-# INLINE typeGType #-}--gTypeIDBTransaction :: JSM GType-gTypeIDBTransaction = GType . Object <$> jsg "IDBTransaction"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.IDBVersionChangeEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent Mozilla IDBVersionChangeEvent documentation>-newtype IDBVersionChangeEvent = IDBVersionChangeEvent { unIDBVersionChangeEvent :: JSVal }--instance PToJSVal IDBVersionChangeEvent where-  pToJSVal = unIDBVersionChangeEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal IDBVersionChangeEvent where-  pFromJSVal = IDBVersionChangeEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal IDBVersionChangeEvent where-  toJSVal = return . unIDBVersionChangeEvent-  {-# INLINE toJSVal #-}--instance FromJSVal IDBVersionChangeEvent where-  fromJSVal v = fmap IDBVersionChangeEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject IDBVersionChangeEvent where-  makeObject = makeObject . unIDBVersionChangeEvent--instance IsEvent IDBVersionChangeEvent-instance IsGObject IDBVersionChangeEvent where-  typeGType _ = gTypeIDBVersionChangeEvent-  {-# INLINE typeGType #-}--gTypeIDBVersionChangeEvent :: JSM GType-gTypeIDBVersionChangeEvent = GType . Object <$> jsg "IDBVersionChangeEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ImageData".------ <https://developer.mozilla.org/en-US/docs/Web/API/ImageData Mozilla ImageData documentation>-newtype ImageData = ImageData { unImageData :: JSVal }--instance PToJSVal ImageData where-  pToJSVal = unImageData-  {-# INLINE pToJSVal #-}--instance PFromJSVal ImageData where-  pFromJSVal = ImageData-  {-# INLINE pFromJSVal #-}--instance ToJSVal ImageData where-  toJSVal = return . unImageData-  {-# INLINE toJSVal #-}--instance FromJSVal ImageData where-  fromJSVal v = fmap ImageData <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ImageData where-  makeObject = makeObject . unImageData--instance IsGObject ImageData where-  typeGType _ = gTypeImageData-  {-# INLINE typeGType #-}--gTypeImageData :: JSM GType-gTypeImageData = GType . Object <$> jsg "ImageData"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.InspectorFrontendHost".------ <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost Mozilla InspectorFrontendHost documentation>-newtype InspectorFrontendHost = InspectorFrontendHost { unInspectorFrontendHost :: JSVal }--instance PToJSVal InspectorFrontendHost where-  pToJSVal = unInspectorFrontendHost-  {-# INLINE pToJSVal #-}--instance PFromJSVal InspectorFrontendHost where-  pFromJSVal = InspectorFrontendHost-  {-# INLINE pFromJSVal #-}--instance ToJSVal InspectorFrontendHost where-  toJSVal = return . unInspectorFrontendHost-  {-# INLINE toJSVal #-}--instance FromJSVal InspectorFrontendHost where-  fromJSVal v = fmap InspectorFrontendHost <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject InspectorFrontendHost where-  makeObject = makeObject . unInspectorFrontendHost--instance IsGObject InspectorFrontendHost where-  typeGType _ = gTypeInspectorFrontendHost-  {-# INLINE typeGType #-}--gTypeInspectorFrontendHost :: JSM GType-gTypeInspectorFrontendHost = GType . Object <$> jsg "InspectorFrontendHost"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.InternalSettings".--- Base interface functions are in:--------- <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings Mozilla InternalSettings documentation>-newtype InternalSettings = InternalSettings { unInternalSettings :: JSVal }--instance PToJSVal InternalSettings where-  pToJSVal = unInternalSettings-  {-# INLINE pToJSVal #-}--instance PFromJSVal InternalSettings where-  pFromJSVal = InternalSettings-  {-# INLINE pFromJSVal #-}--instance ToJSVal InternalSettings where-  toJSVal = return . unInternalSettings-  {-# INLINE toJSVal #-}--instance FromJSVal InternalSettings where-  fromJSVal v = fmap InternalSettings <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject InternalSettings where-  makeObject = makeObject . unInternalSettings--instance IsGObject InternalSettings where-  typeGType _ = gTypeInternalSettings-  {-# INLINE typeGType #-}--gTypeInternalSettings :: JSM GType-gTypeInternalSettings = GType . Object <$> jsg "InternalSettings"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Internals".------ <https://developer.mozilla.org/en-US/docs/Web/API/Internals Mozilla Internals documentation>-newtype Internals = Internals { unInternals :: JSVal }--instance PToJSVal Internals where-  pToJSVal = unInternals-  {-# INLINE pToJSVal #-}--instance PFromJSVal Internals where-  pFromJSVal = Internals-  {-# INLINE pFromJSVal #-}--instance ToJSVal Internals where-  toJSVal = return . unInternals-  {-# INLINE toJSVal #-}--instance FromJSVal Internals where-  fromJSVal v = fmap Internals <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Internals where-  makeObject = makeObject . unInternals--instance IsGObject Internals where-  typeGType _ = gTypeInternals-  {-# INLINE typeGType #-}--gTypeInternals :: JSM GType-gTypeInternals = GType . Object <$> jsg "Internals"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.KeyboardEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent Mozilla KeyboardEvent documentation>-newtype KeyboardEvent = KeyboardEvent { unKeyboardEvent :: JSVal }--instance PToJSVal KeyboardEvent where-  pToJSVal = unKeyboardEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal KeyboardEvent where-  pFromJSVal = KeyboardEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal KeyboardEvent where-  toJSVal = return . unKeyboardEvent-  {-# INLINE toJSVal #-}--instance FromJSVal KeyboardEvent where-  fromJSVal v = fmap KeyboardEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject KeyboardEvent where-  makeObject = makeObject . unKeyboardEvent--instance IsUIEvent KeyboardEvent-instance IsEvent KeyboardEvent-instance IsGObject KeyboardEvent where-  typeGType _ = gTypeKeyboardEvent-  {-# INLINE typeGType #-}--gTypeKeyboardEvent :: JSM GType-gTypeKeyboardEvent = GType . Object <$> jsg "KeyboardEvent"-#else-#ifndef USE_OLD_WEBKIT-type IsKeyboardEvent o = KeyboardEventClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Location".------ <https://developer.mozilla.org/en-US/docs/Web/API/Location Mozilla Location documentation>-newtype Location = Location { unLocation :: JSVal }--instance PToJSVal Location where-  pToJSVal = unLocation-  {-# INLINE pToJSVal #-}--instance PFromJSVal Location where-  pFromJSVal = Location-  {-# INLINE pFromJSVal #-}--instance ToJSVal Location where-  toJSVal = return . unLocation-  {-# INLINE toJSVal #-}--instance FromJSVal Location where-  fromJSVal v = fmap Location <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Location where-  makeObject = makeObject . unLocation--instance IsGObject Location where-  typeGType _ = gTypeLocation-  {-# INLINE typeGType #-}--gTypeLocation :: JSM GType-gTypeLocation = GType . Object <$> jsg "Location"-#else-type IsLocation o = LocationClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MallocStatistics".------ <https://developer.mozilla.org/en-US/docs/Web/API/MallocStatistics Mozilla MallocStatistics documentation>-newtype MallocStatistics = MallocStatistics { unMallocStatistics :: JSVal }--instance PToJSVal MallocStatistics where-  pToJSVal = unMallocStatistics-  {-# INLINE pToJSVal #-}--instance PFromJSVal MallocStatistics where-  pFromJSVal = MallocStatistics-  {-# INLINE pFromJSVal #-}--instance ToJSVal MallocStatistics where-  toJSVal = return . unMallocStatistics-  {-# INLINE toJSVal #-}--instance FromJSVal MallocStatistics where-  fromJSVal v = fmap MallocStatistics <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MallocStatistics where-  makeObject = makeObject . unMallocStatistics--instance IsGObject MallocStatistics where-  typeGType _ = gTypeMallocStatistics-  {-# INLINE typeGType #-}--gTypeMallocStatistics :: JSM GType-gTypeMallocStatistics = GType . Object <$> jsg "MallocStatistics"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaController".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaController Mozilla MediaController documentation>-newtype MediaController = MediaController { unMediaController :: JSVal }--instance PToJSVal MediaController where-  pToJSVal = unMediaController-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaController where-  pFromJSVal = MediaController-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaController where-  toJSVal = return . unMediaController-  {-# INLINE toJSVal #-}--instance FromJSVal MediaController where-  fromJSVal v = fmap MediaController <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaController where-  makeObject = makeObject . unMediaController--instance IsEventTarget MediaController-instance IsGObject MediaController where-  typeGType _ = gTypeMediaController-  {-# INLINE typeGType #-}--gTypeMediaController :: JSM GType-gTypeMediaController = GType . Object <$> jsg "MediaController"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaControlsHost".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost Mozilla MediaControlsHost documentation>-newtype MediaControlsHost = MediaControlsHost { unMediaControlsHost :: JSVal }--instance PToJSVal MediaControlsHost where-  pToJSVal = unMediaControlsHost-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaControlsHost where-  pFromJSVal = MediaControlsHost-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaControlsHost where-  toJSVal = return . unMediaControlsHost-  {-# INLINE toJSVal #-}--instance FromJSVal MediaControlsHost where-  fromJSVal v = fmap MediaControlsHost <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaControlsHost where-  makeObject = makeObject . unMediaControlsHost--instance IsGObject MediaControlsHost where-  typeGType _ = gTypeMediaControlsHost-  {-# INLINE typeGType #-}--gTypeMediaControlsHost :: JSM GType-gTypeMediaControlsHost = GType . Object <$> jsg "MediaControlsHost"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaElementAudioSourceNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode Mozilla MediaElementAudioSourceNode documentation>-newtype MediaElementAudioSourceNode = MediaElementAudioSourceNode { unMediaElementAudioSourceNode :: JSVal }--instance PToJSVal MediaElementAudioSourceNode where-  pToJSVal = unMediaElementAudioSourceNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaElementAudioSourceNode where-  pFromJSVal = MediaElementAudioSourceNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaElementAudioSourceNode where-  toJSVal = return . unMediaElementAudioSourceNode-  {-# INLINE toJSVal #-}--instance FromJSVal MediaElementAudioSourceNode where-  fromJSVal v = fmap MediaElementAudioSourceNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaElementAudioSourceNode where-  makeObject = makeObject . unMediaElementAudioSourceNode--instance IsAudioNode MediaElementAudioSourceNode-instance IsEventTarget MediaElementAudioSourceNode-instance IsGObject MediaElementAudioSourceNode where-  typeGType _ = gTypeMediaElementAudioSourceNode-  {-# INLINE typeGType #-}--gTypeMediaElementAudioSourceNode :: JSM GType-gTypeMediaElementAudioSourceNode = GType . Object <$> jsg "MediaElementAudioSourceNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaError".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaError Mozilla MediaError documentation>-newtype MediaError = MediaError { unMediaError :: JSVal }--instance PToJSVal MediaError where-  pToJSVal = unMediaError-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaError where-  pFromJSVal = MediaError-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaError where-  toJSVal = return . unMediaError-  {-# INLINE toJSVal #-}--instance FromJSVal MediaError where-  fromJSVal v = fmap MediaError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaError where-  makeObject = makeObject . unMediaError--instance IsGObject MediaError where-  typeGType _ = gTypeMediaError-  {-# INLINE typeGType #-}--gTypeMediaError :: JSM GType-gTypeMediaError = GType . Object <$> jsg "MediaError"-#else-type IsMediaError o = MediaErrorClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaKeyError".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError Mozilla WebKitMediaKeyError documentation>-newtype MediaKeyError = MediaKeyError { unMediaKeyError :: JSVal }--instance PToJSVal MediaKeyError where-  pToJSVal = unMediaKeyError-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaKeyError where-  pFromJSVal = MediaKeyError-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaKeyError where-  toJSVal = return . unMediaKeyError-  {-# INLINE toJSVal #-}--instance FromJSVal MediaKeyError where-  fromJSVal v = fmap MediaKeyError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaKeyError where-  makeObject = makeObject . unMediaKeyError--instance IsGObject MediaKeyError where-  typeGType _ = gTypeMediaKeyError-  {-# INLINE typeGType #-}--gTypeMediaKeyError :: JSM GType-gTypeMediaKeyError = GType . Object <$> jsg "WebKitMediaKeyError"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaKeyEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent Mozilla MediaKeyEvent documentation>-newtype MediaKeyEvent = MediaKeyEvent { unMediaKeyEvent :: JSVal }--instance PToJSVal MediaKeyEvent where-  pToJSVal = unMediaKeyEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaKeyEvent where-  pFromJSVal = MediaKeyEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaKeyEvent where-  toJSVal = return . unMediaKeyEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MediaKeyEvent where-  fromJSVal v = fmap MediaKeyEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaKeyEvent where-  makeObject = makeObject . unMediaKeyEvent--instance IsEvent MediaKeyEvent-instance IsGObject MediaKeyEvent where-  typeGType _ = gTypeMediaKeyEvent-  {-# INLINE typeGType #-}--gTypeMediaKeyEvent :: JSM GType-gTypeMediaKeyEvent = GType . Object <$> jsg "MediaKeyEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaKeyMessageEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation>-newtype MediaKeyMessageEvent = MediaKeyMessageEvent { unMediaKeyMessageEvent :: JSVal }--instance PToJSVal MediaKeyMessageEvent where-  pToJSVal = unMediaKeyMessageEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaKeyMessageEvent where-  pFromJSVal = MediaKeyMessageEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaKeyMessageEvent where-  toJSVal = return . unMediaKeyMessageEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MediaKeyMessageEvent where-  fromJSVal v = fmap MediaKeyMessageEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaKeyMessageEvent where-  makeObject = makeObject . unMediaKeyMessageEvent--instance IsEvent MediaKeyMessageEvent-instance IsGObject MediaKeyMessageEvent where-  typeGType _ = gTypeMediaKeyMessageEvent-  {-# INLINE typeGType #-}--gTypeMediaKeyMessageEvent :: JSM GType-gTypeMediaKeyMessageEvent = GType . Object <$> jsg "WebKitMediaKeyMessageEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaKeyNeededEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyNeededEvent Mozilla MediaKeyNeededEvent documentation>-newtype MediaKeyNeededEvent = MediaKeyNeededEvent { unMediaKeyNeededEvent :: JSVal }--instance PToJSVal MediaKeyNeededEvent where-  pToJSVal = unMediaKeyNeededEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaKeyNeededEvent where-  pFromJSVal = MediaKeyNeededEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaKeyNeededEvent where-  toJSVal = return . unMediaKeyNeededEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MediaKeyNeededEvent where-  fromJSVal v = fmap MediaKeyNeededEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaKeyNeededEvent where-  makeObject = makeObject . unMediaKeyNeededEvent--instance IsEvent MediaKeyNeededEvent-instance IsGObject MediaKeyNeededEvent where-  typeGType _ = gTypeMediaKeyNeededEvent-  {-# INLINE typeGType #-}--gTypeMediaKeyNeededEvent :: JSM GType-gTypeMediaKeyNeededEvent = GType . Object <$> jsg "MediaKeyNeededEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaKeySession".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession Mozilla WebKitMediaKeySession documentation>-newtype MediaKeySession = MediaKeySession { unMediaKeySession :: JSVal }--instance PToJSVal MediaKeySession where-  pToJSVal = unMediaKeySession-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaKeySession where-  pFromJSVal = MediaKeySession-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaKeySession where-  toJSVal = return . unMediaKeySession-  {-# INLINE toJSVal #-}--instance FromJSVal MediaKeySession where-  fromJSVal v = fmap MediaKeySession <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaKeySession where-  makeObject = makeObject . unMediaKeySession--instance IsEventTarget MediaKeySession-instance IsGObject MediaKeySession where-  typeGType _ = gTypeMediaKeySession-  {-# INLINE typeGType #-}--gTypeMediaKeySession :: JSM GType-gTypeMediaKeySession = GType . Object <$> jsg "WebKitMediaKeySession"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaKeys".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation>-newtype MediaKeys = MediaKeys { unMediaKeys :: JSVal }--instance PToJSVal MediaKeys where-  pToJSVal = unMediaKeys-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaKeys where-  pFromJSVal = MediaKeys-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaKeys where-  toJSVal = return . unMediaKeys-  {-# INLINE toJSVal #-}--instance FromJSVal MediaKeys where-  fromJSVal v = fmap MediaKeys <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaKeys where-  makeObject = makeObject . unMediaKeys--instance IsGObject MediaKeys where-  typeGType _ = gTypeMediaKeys-  {-# INLINE typeGType #-}--gTypeMediaKeys :: JSM GType-gTypeMediaKeys = GType . Object <$> jsg "WebKitMediaKeys"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaList".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaList Mozilla MediaList documentation>-newtype MediaList = MediaList { unMediaList :: JSVal }--instance PToJSVal MediaList where-  pToJSVal = unMediaList-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaList where-  pFromJSVal = MediaList-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaList where-  toJSVal = return . unMediaList-  {-# INLINE toJSVal #-}--instance FromJSVal MediaList where-  fromJSVal v = fmap MediaList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaList where-  makeObject = makeObject . unMediaList--instance IsGObject MediaList where-  typeGType _ = gTypeMediaList-  {-# INLINE typeGType #-}--gTypeMediaList :: JSM GType-gTypeMediaList = GType . Object <$> jsg "MediaList"-#else-type IsMediaList o = MediaListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaQueryList".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList Mozilla MediaQueryList documentation>-newtype MediaQueryList = MediaQueryList { unMediaQueryList :: JSVal }--instance PToJSVal MediaQueryList where-  pToJSVal = unMediaQueryList-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaQueryList where-  pFromJSVal = MediaQueryList-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaQueryList where-  toJSVal = return . unMediaQueryList-  {-# INLINE toJSVal #-}--instance FromJSVal MediaQueryList where-  fromJSVal v = fmap MediaQueryList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaQueryList where-  makeObject = makeObject . unMediaQueryList--instance IsGObject MediaQueryList where-  typeGType _ = gTypeMediaQueryList-  {-# INLINE typeGType #-}--gTypeMediaQueryList :: JSM GType-gTypeMediaQueryList = GType . Object <$> jsg "MediaQueryList"-#else-type IsMediaQueryList o = MediaQueryListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaSource".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource Mozilla MediaSource documentation>-newtype MediaSource = MediaSource { unMediaSource :: JSVal }--instance PToJSVal MediaSource where-  pToJSVal = unMediaSource-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaSource where-  pFromJSVal = MediaSource-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaSource where-  toJSVal = return . unMediaSource-  {-# INLINE toJSVal #-}--instance FromJSVal MediaSource where-  fromJSVal v = fmap MediaSource <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaSource where-  makeObject = makeObject . unMediaSource--instance IsEventTarget MediaSource-instance IsGObject MediaSource where-  typeGType _ = gTypeMediaSource-  {-# INLINE typeGType #-}--gTypeMediaSource :: JSM GType-gTypeMediaSource = GType . Object <$> jsg "MediaSource"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaSourceStates".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates Mozilla MediaSourceStates documentation>-newtype MediaSourceStates = MediaSourceStates { unMediaSourceStates :: JSVal }--instance PToJSVal MediaSourceStates where-  pToJSVal = unMediaSourceStates-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaSourceStates where-  pFromJSVal = MediaSourceStates-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaSourceStates where-  toJSVal = return . unMediaSourceStates-  {-# INLINE toJSVal #-}--instance FromJSVal MediaSourceStates where-  fromJSVal v = fmap MediaSourceStates <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaSourceStates where-  makeObject = makeObject . unMediaSourceStates--instance IsGObject MediaSourceStates where-  typeGType _ = gTypeMediaSourceStates-  {-# INLINE typeGType #-}--gTypeMediaSourceStates :: JSM GType-gTypeMediaSourceStates = GType . Object <$> jsg "MediaSourceStates"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStream".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream Mozilla webkitMediaStream documentation>-newtype MediaStream = MediaStream { unMediaStream :: JSVal }--instance PToJSVal MediaStream where-  pToJSVal = unMediaStream-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStream where-  pFromJSVal = MediaStream-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStream where-  toJSVal = return . unMediaStream-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStream where-  fromJSVal v = fmap MediaStream <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStream where-  makeObject = makeObject . unMediaStream--instance IsEventTarget MediaStream-instance IsGObject MediaStream where-  typeGType _ = gTypeMediaStream-  {-# INLINE typeGType #-}--gTypeMediaStream :: JSM GType-gTypeMediaStream = GType . Object <$> jsg "webkitMediaStream"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStreamAudioDestinationNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode Mozilla MediaStreamAudioDestinationNode documentation>-newtype MediaStreamAudioDestinationNode = MediaStreamAudioDestinationNode { unMediaStreamAudioDestinationNode :: JSVal }--instance PToJSVal MediaStreamAudioDestinationNode where-  pToJSVal = unMediaStreamAudioDestinationNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStreamAudioDestinationNode where-  pFromJSVal = MediaStreamAudioDestinationNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStreamAudioDestinationNode where-  toJSVal = return . unMediaStreamAudioDestinationNode-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStreamAudioDestinationNode where-  fromJSVal v = fmap MediaStreamAudioDestinationNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStreamAudioDestinationNode where-  makeObject = makeObject . unMediaStreamAudioDestinationNode--instance IsAudioNode MediaStreamAudioDestinationNode-instance IsEventTarget MediaStreamAudioDestinationNode-instance IsGObject MediaStreamAudioDestinationNode where-  typeGType _ = gTypeMediaStreamAudioDestinationNode-  {-# INLINE typeGType #-}--gTypeMediaStreamAudioDestinationNode :: JSM GType-gTypeMediaStreamAudioDestinationNode = GType . Object <$> jsg "MediaStreamAudioDestinationNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStreamAudioSourceNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode Mozilla MediaStreamAudioSourceNode documentation>-newtype MediaStreamAudioSourceNode = MediaStreamAudioSourceNode { unMediaStreamAudioSourceNode :: JSVal }--instance PToJSVal MediaStreamAudioSourceNode where-  pToJSVal = unMediaStreamAudioSourceNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStreamAudioSourceNode where-  pFromJSVal = MediaStreamAudioSourceNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStreamAudioSourceNode where-  toJSVal = return . unMediaStreamAudioSourceNode-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStreamAudioSourceNode where-  fromJSVal v = fmap MediaStreamAudioSourceNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStreamAudioSourceNode where-  makeObject = makeObject . unMediaStreamAudioSourceNode--instance IsAudioNode MediaStreamAudioSourceNode-instance IsEventTarget MediaStreamAudioSourceNode-instance IsGObject MediaStreamAudioSourceNode where-  typeGType _ = gTypeMediaStreamAudioSourceNode-  {-# INLINE typeGType #-}--gTypeMediaStreamAudioSourceNode :: JSM GType-gTypeMediaStreamAudioSourceNode = GType . Object <$> jsg "MediaStreamAudioSourceNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStreamCapabilities".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamCapabilities Mozilla MediaStreamCapabilities documentation>-newtype MediaStreamCapabilities = MediaStreamCapabilities { unMediaStreamCapabilities :: JSVal }--instance PToJSVal MediaStreamCapabilities where-  pToJSVal = unMediaStreamCapabilities-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStreamCapabilities where-  pFromJSVal = MediaStreamCapabilities-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStreamCapabilities where-  toJSVal = return . unMediaStreamCapabilities-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStreamCapabilities where-  fromJSVal v = fmap MediaStreamCapabilities <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStreamCapabilities where-  makeObject = makeObject . unMediaStreamCapabilities--class IsGObject o => IsMediaStreamCapabilities o-toMediaStreamCapabilities :: IsMediaStreamCapabilities o => o -> MediaStreamCapabilities-toMediaStreamCapabilities = MediaStreamCapabilities . coerce--instance IsMediaStreamCapabilities MediaStreamCapabilities-instance IsGObject MediaStreamCapabilities where-  typeGType _ = gTypeMediaStreamCapabilities-  {-# INLINE typeGType #-}--gTypeMediaStreamCapabilities :: JSM GType-gTypeMediaStreamCapabilities = GType . Object <$> jsg "MediaStreamCapabilities"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStreamEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent Mozilla MediaStreamEvent documentation>-newtype MediaStreamEvent = MediaStreamEvent { unMediaStreamEvent :: JSVal }--instance PToJSVal MediaStreamEvent where-  pToJSVal = unMediaStreamEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStreamEvent where-  pFromJSVal = MediaStreamEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStreamEvent where-  toJSVal = return . unMediaStreamEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStreamEvent where-  fromJSVal v = fmap MediaStreamEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStreamEvent where-  makeObject = makeObject . unMediaStreamEvent--instance IsEvent MediaStreamEvent-instance IsGObject MediaStreamEvent where-  typeGType _ = gTypeMediaStreamEvent-  {-# INLINE typeGType #-}--gTypeMediaStreamEvent :: JSM GType-gTypeMediaStreamEvent = GType . Object <$> jsg "MediaStreamEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStreamTrack".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack Mozilla MediaStreamTrack documentation>-newtype MediaStreamTrack = MediaStreamTrack { unMediaStreamTrack :: JSVal }--instance PToJSVal MediaStreamTrack where-  pToJSVal = unMediaStreamTrack-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStreamTrack where-  pFromJSVal = MediaStreamTrack-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStreamTrack where-  toJSVal = return . unMediaStreamTrack-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStreamTrack where-  fromJSVal v = fmap MediaStreamTrack <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStreamTrack where-  makeObject = makeObject . unMediaStreamTrack--class IsEventTarget o => IsMediaStreamTrack o-toMediaStreamTrack :: IsMediaStreamTrack o => o -> MediaStreamTrack-toMediaStreamTrack = MediaStreamTrack . coerce--instance IsMediaStreamTrack MediaStreamTrack-instance IsEventTarget MediaStreamTrack-instance IsGObject MediaStreamTrack where-  typeGType _ = gTypeMediaStreamTrack-  {-# INLINE typeGType #-}--gTypeMediaStreamTrack :: JSM GType-gTypeMediaStreamTrack = GType . Object <$> jsg "MediaStreamTrack"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaStreamTrackEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent Mozilla MediaStreamTrackEvent documentation>-newtype MediaStreamTrackEvent = MediaStreamTrackEvent { unMediaStreamTrackEvent :: JSVal }--instance PToJSVal MediaStreamTrackEvent where-  pToJSVal = unMediaStreamTrackEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaStreamTrackEvent where-  pFromJSVal = MediaStreamTrackEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaStreamTrackEvent where-  toJSVal = return . unMediaStreamTrackEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MediaStreamTrackEvent where-  fromJSVal v = fmap MediaStreamTrackEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaStreamTrackEvent where-  makeObject = makeObject . unMediaStreamTrackEvent--instance IsEvent MediaStreamTrackEvent-instance IsGObject MediaStreamTrackEvent where-  typeGType _ = gTypeMediaStreamTrackEvent-  {-# INLINE typeGType #-}--gTypeMediaStreamTrackEvent :: JSM GType-gTypeMediaStreamTrackEvent = GType . Object <$> jsg "MediaStreamTrackEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaTrackConstraint".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraint Mozilla MediaTrackConstraint documentation>-newtype MediaTrackConstraint = MediaTrackConstraint { unMediaTrackConstraint :: JSVal }--instance PToJSVal MediaTrackConstraint where-  pToJSVal = unMediaTrackConstraint-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaTrackConstraint where-  pFromJSVal = MediaTrackConstraint-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaTrackConstraint where-  toJSVal = return . unMediaTrackConstraint-  {-# INLINE toJSVal #-}--instance FromJSVal MediaTrackConstraint where-  fromJSVal v = fmap MediaTrackConstraint <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaTrackConstraint where-  makeObject = makeObject . unMediaTrackConstraint--instance IsGObject MediaTrackConstraint where-  typeGType _ = gTypeMediaTrackConstraint-  {-# INLINE typeGType #-}--gTypeMediaTrackConstraint :: JSM GType-gTypeMediaTrackConstraint = GType . Object <$> jsg "MediaTrackConstraint"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaTrackConstraintSet".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraintSet Mozilla MediaTrackConstraintSet documentation>-newtype MediaTrackConstraintSet = MediaTrackConstraintSet { unMediaTrackConstraintSet :: JSVal }--instance PToJSVal MediaTrackConstraintSet where-  pToJSVal = unMediaTrackConstraintSet-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaTrackConstraintSet where-  pFromJSVal = MediaTrackConstraintSet-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaTrackConstraintSet where-  toJSVal = return . unMediaTrackConstraintSet-  {-# INLINE toJSVal #-}--instance FromJSVal MediaTrackConstraintSet where-  fromJSVal v = fmap MediaTrackConstraintSet <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaTrackConstraintSet where-  makeObject = makeObject . unMediaTrackConstraintSet--instance IsGObject MediaTrackConstraintSet where-  typeGType _ = gTypeMediaTrackConstraintSet-  {-# INLINE typeGType #-}--gTypeMediaTrackConstraintSet :: JSM GType-gTypeMediaTrackConstraintSet = GType . Object <$> jsg "MediaTrackConstraintSet"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MediaTrackConstraints".------ <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints Mozilla MediaTrackConstraints documentation>-newtype MediaTrackConstraints = MediaTrackConstraints { unMediaTrackConstraints :: JSVal }--instance PToJSVal MediaTrackConstraints where-  pToJSVal = unMediaTrackConstraints-  {-# INLINE pToJSVal #-}--instance PFromJSVal MediaTrackConstraints where-  pFromJSVal = MediaTrackConstraints-  {-# INLINE pFromJSVal #-}--instance ToJSVal MediaTrackConstraints where-  toJSVal = return . unMediaTrackConstraints-  {-# INLINE toJSVal #-}--instance FromJSVal MediaTrackConstraints where-  fromJSVal v = fmap MediaTrackConstraints <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MediaTrackConstraints where-  makeObject = makeObject . unMediaTrackConstraints--instance IsGObject MediaTrackConstraints where-  typeGType _ = gTypeMediaTrackConstraints-  {-# INLINE typeGType #-}--gTypeMediaTrackConstraints :: JSM GType-gTypeMediaTrackConstraints = GType . Object <$> jsg "MediaTrackConstraints"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MemoryInfo".------ <https://developer.mozilla.org/en-US/docs/Web/API/MemoryInfo Mozilla MemoryInfo documentation>-newtype MemoryInfo = MemoryInfo { unMemoryInfo :: JSVal }--instance PToJSVal MemoryInfo where-  pToJSVal = unMemoryInfo-  {-# INLINE pToJSVal #-}--instance PFromJSVal MemoryInfo where-  pFromJSVal = MemoryInfo-  {-# INLINE pFromJSVal #-}--instance ToJSVal MemoryInfo where-  toJSVal = return . unMemoryInfo-  {-# INLINE toJSVal #-}--instance FromJSVal MemoryInfo where-  fromJSVal v = fmap MemoryInfo <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MemoryInfo where-  makeObject = makeObject . unMemoryInfo--instance IsGObject MemoryInfo where-  typeGType _ = gTypeMemoryInfo-  {-# INLINE typeGType #-}--gTypeMemoryInfo :: JSM GType-gTypeMemoryInfo = GType . Object <$> jsg "MemoryInfo"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MessageChannel".------ <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel Mozilla MessageChannel documentation>-newtype MessageChannel = MessageChannel { unMessageChannel :: JSVal }--instance PToJSVal MessageChannel where-  pToJSVal = unMessageChannel-  {-# INLINE pToJSVal #-}--instance PFromJSVal MessageChannel where-  pFromJSVal = MessageChannel-  {-# INLINE pFromJSVal #-}--instance ToJSVal MessageChannel where-  toJSVal = return . unMessageChannel-  {-# INLINE toJSVal #-}--instance FromJSVal MessageChannel where-  fromJSVal v = fmap MessageChannel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MessageChannel where-  makeObject = makeObject . unMessageChannel--instance IsGObject MessageChannel where-  typeGType _ = gTypeMessageChannel-  {-# INLINE typeGType #-}--gTypeMessageChannel :: JSM GType-gTypeMessageChannel = GType . Object <$> jsg "MessageChannel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MessageEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent Mozilla MessageEvent documentation>-newtype MessageEvent = MessageEvent { unMessageEvent :: JSVal }--instance PToJSVal MessageEvent where-  pToJSVal = unMessageEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MessageEvent where-  pFromJSVal = MessageEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MessageEvent where-  toJSVal = return . unMessageEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MessageEvent where-  fromJSVal v = fmap MessageEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MessageEvent where-  makeObject = makeObject . unMessageEvent--instance IsEvent MessageEvent-instance IsGObject MessageEvent where-  typeGType _ = gTypeMessageEvent-  {-# INLINE typeGType #-}--gTypeMessageEvent :: JSM GType-gTypeMessageEvent = GType . Object <$> jsg "MessageEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MessagePort".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort Mozilla MessagePort documentation>-newtype MessagePort = MessagePort { unMessagePort :: JSVal }--instance PToJSVal MessagePort where-  pToJSVal = unMessagePort-  {-# INLINE pToJSVal #-}--instance PFromJSVal MessagePort where-  pFromJSVal = MessagePort-  {-# INLINE pFromJSVal #-}--instance ToJSVal MessagePort where-  toJSVal = return . unMessagePort-  {-# INLINE toJSVal #-}--instance FromJSVal MessagePort where-  fromJSVal v = fmap MessagePort <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MessagePort where-  makeObject = makeObject . unMessagePort--instance IsEventTarget MessagePort-instance IsGObject MessagePort where-  typeGType _ = gTypeMessagePort-  {-# INLINE typeGType #-}--gTypeMessagePort :: JSM GType-gTypeMessagePort = GType . Object <$> jsg "MessagePort"-#else-type IsMessagePort o = MessagePortClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MimeType".------ <https://developer.mozilla.org/en-US/docs/Web/API/MimeType Mozilla MimeType documentation>-newtype MimeType = MimeType { unMimeType :: JSVal }--instance PToJSVal MimeType where-  pToJSVal = unMimeType-  {-# INLINE pToJSVal #-}--instance PFromJSVal MimeType where-  pFromJSVal = MimeType-  {-# INLINE pFromJSVal #-}--instance ToJSVal MimeType where-  toJSVal = return . unMimeType-  {-# INLINE toJSVal #-}--instance FromJSVal MimeType where-  fromJSVal v = fmap MimeType <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MimeType where-  makeObject = makeObject . unMimeType--instance IsGObject MimeType where-  typeGType _ = gTypeMimeType-  {-# INLINE typeGType #-}--gTypeMimeType :: JSM GType-gTypeMimeType = GType . Object <$> jsg "MimeType"-#else-type IsMimeType o = MimeTypeClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MimeTypeArray".------ <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray Mozilla MimeTypeArray documentation>-newtype MimeTypeArray = MimeTypeArray { unMimeTypeArray :: JSVal }--instance PToJSVal MimeTypeArray where-  pToJSVal = unMimeTypeArray-  {-# INLINE pToJSVal #-}--instance PFromJSVal MimeTypeArray where-  pFromJSVal = MimeTypeArray-  {-# INLINE pFromJSVal #-}--instance ToJSVal MimeTypeArray where-  toJSVal = return . unMimeTypeArray-  {-# INLINE toJSVal #-}--instance FromJSVal MimeTypeArray where-  fromJSVal v = fmap MimeTypeArray <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MimeTypeArray where-  makeObject = makeObject . unMimeTypeArray--instance IsGObject MimeTypeArray where-  typeGType _ = gTypeMimeTypeArray-  {-# INLINE typeGType #-}--gTypeMimeTypeArray :: JSM GType-gTypeMimeTypeArray = GType . Object <$> jsg "MimeTypeArray"-#else-type IsMimeTypeArray o = MimeTypeArrayClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MouseEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent Mozilla MouseEvent documentation>-newtype MouseEvent = MouseEvent { unMouseEvent :: JSVal }--instance PToJSVal MouseEvent where-  pToJSVal = unMouseEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MouseEvent where-  pFromJSVal = MouseEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MouseEvent where-  toJSVal = return . unMouseEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MouseEvent where-  fromJSVal v = fmap MouseEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MouseEvent where-  makeObject = makeObject . unMouseEvent--class IsUIEvent o => IsMouseEvent o-toMouseEvent :: IsMouseEvent o => o -> MouseEvent-toMouseEvent = MouseEvent . coerce--instance IsMouseEvent MouseEvent-instance IsUIEvent MouseEvent-instance IsEvent MouseEvent-instance IsGObject MouseEvent where-  typeGType _ = gTypeMouseEvent-  {-# INLINE typeGType #-}--gTypeMouseEvent :: JSM GType-gTypeMouseEvent = GType . Object <$> jsg "MouseEvent"-#else-type IsMouseEvent o = MouseEventClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MutationEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent Mozilla MutationEvent documentation>-newtype MutationEvent = MutationEvent { unMutationEvent :: JSVal }--instance PToJSVal MutationEvent where-  pToJSVal = unMutationEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal MutationEvent where-  pFromJSVal = MutationEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal MutationEvent where-  toJSVal = return . unMutationEvent-  {-# INLINE toJSVal #-}--instance FromJSVal MutationEvent where-  fromJSVal v = fmap MutationEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MutationEvent where-  makeObject = makeObject . unMutationEvent--instance IsEvent MutationEvent-instance IsGObject MutationEvent where-  typeGType _ = gTypeMutationEvent-  {-# INLINE typeGType #-}--gTypeMutationEvent :: JSM GType-gTypeMutationEvent = GType . Object <$> jsg "MutationEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MutationObserver".------ <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Mozilla MutationObserver documentation>-newtype MutationObserver = MutationObserver { unMutationObserver :: JSVal }--instance PToJSVal MutationObserver where-  pToJSVal = unMutationObserver-  {-# INLINE pToJSVal #-}--instance PFromJSVal MutationObserver where-  pFromJSVal = MutationObserver-  {-# INLINE pFromJSVal #-}--instance ToJSVal MutationObserver where-  toJSVal = return . unMutationObserver-  {-# INLINE toJSVal #-}--instance FromJSVal MutationObserver where-  fromJSVal v = fmap MutationObserver <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MutationObserver where-  makeObject = makeObject . unMutationObserver--instance IsGObject MutationObserver where-  typeGType _ = gTypeMutationObserver-  {-# INLINE typeGType #-}--gTypeMutationObserver :: JSM GType-gTypeMutationObserver = GType . Object <$> jsg "MutationObserver"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.MutationRecord".------ <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord Mozilla MutationRecord documentation>-newtype MutationRecord = MutationRecord { unMutationRecord :: JSVal }--instance PToJSVal MutationRecord where-  pToJSVal = unMutationRecord-  {-# INLINE pToJSVal #-}--instance PFromJSVal MutationRecord where-  pFromJSVal = MutationRecord-  {-# INLINE pFromJSVal #-}--instance ToJSVal MutationRecord where-  toJSVal = return . unMutationRecord-  {-# INLINE toJSVal #-}--instance FromJSVal MutationRecord where-  fromJSVal v = fmap MutationRecord <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject MutationRecord where-  makeObject = makeObject . unMutationRecord--instance IsGObject MutationRecord where-  typeGType _ = gTypeMutationRecord-  {-# INLINE typeGType #-}--gTypeMutationRecord :: JSM GType-gTypeMutationRecord = GType . Object <$> jsg "MutationRecord"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.NamedNodeMap".------ <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap Mozilla NamedNodeMap documentation>-newtype NamedNodeMap = NamedNodeMap { unNamedNodeMap :: JSVal }--instance PToJSVal NamedNodeMap where-  pToJSVal = unNamedNodeMap-  {-# INLINE pToJSVal #-}--instance PFromJSVal NamedNodeMap where-  pFromJSVal = NamedNodeMap-  {-# INLINE pFromJSVal #-}--instance ToJSVal NamedNodeMap where-  toJSVal = return . unNamedNodeMap-  {-# INLINE toJSVal #-}--instance FromJSVal NamedNodeMap where-  fromJSVal v = fmap NamedNodeMap <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject NamedNodeMap where-  makeObject = makeObject . unNamedNodeMap--instance IsGObject NamedNodeMap where-  typeGType _ = gTypeNamedNodeMap-  {-# INLINE typeGType #-}--gTypeNamedNodeMap :: JSM GType-gTypeNamedNodeMap = GType . Object <$> jsg "NamedNodeMap"-#else-type IsNamedNodeMap o = NamedNodeMapClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Navigator".------ <https://developer.mozilla.org/en-US/docs/Web/API/Navigator Mozilla Navigator documentation>-newtype Navigator = Navigator { unNavigator :: JSVal }--instance PToJSVal Navigator where-  pToJSVal = unNavigator-  {-# INLINE pToJSVal #-}--instance PFromJSVal Navigator where-  pFromJSVal = Navigator-  {-# INLINE pFromJSVal #-}--instance ToJSVal Navigator where-  toJSVal = return . unNavigator-  {-# INLINE toJSVal #-}--instance FromJSVal Navigator where-  fromJSVal v = fmap Navigator <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Navigator where-  makeObject = makeObject . unNavigator--instance IsGObject Navigator where-  typeGType _ = gTypeNavigator-  {-# INLINE typeGType #-}--gTypeNavigator :: JSM GType-gTypeNavigator = GType . Object <$> jsg "Navigator"-#else-type IsNavigator o = NavigatorClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.NavigatorUserMediaError".--- Base interface functions are in:------     * "JSDOM.DOMError"------ <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaError Mozilla NavigatorUserMediaError documentation>-newtype NavigatorUserMediaError = NavigatorUserMediaError { unNavigatorUserMediaError :: JSVal }--instance PToJSVal NavigatorUserMediaError where-  pToJSVal = unNavigatorUserMediaError-  {-# INLINE pToJSVal #-}--instance PFromJSVal NavigatorUserMediaError where-  pFromJSVal = NavigatorUserMediaError-  {-# INLINE pFromJSVal #-}--instance ToJSVal NavigatorUserMediaError where-  toJSVal = return . unNavigatorUserMediaError-  {-# INLINE toJSVal #-}--instance FromJSVal NavigatorUserMediaError where-  fromJSVal v = fmap NavigatorUserMediaError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject NavigatorUserMediaError where-  makeObject = makeObject . unNavigatorUserMediaError--instance IsDOMError NavigatorUserMediaError-instance IsGObject NavigatorUserMediaError where-  typeGType _ = gTypeNavigatorUserMediaError-  {-# INLINE typeGType #-}--gTypeNavigatorUserMediaError :: JSM GType-gTypeNavigatorUserMediaError = GType . Object <$> jsg "NavigatorUserMediaError"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Node".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Node Mozilla Node documentation>-newtype Node = Node { unNode :: JSVal }--instance PToJSVal Node where-  pToJSVal = unNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal Node where-  pFromJSVal = Node-  {-# INLINE pFromJSVal #-}--instance ToJSVal Node where-  toJSVal = return . unNode-  {-# INLINE toJSVal #-}--instance FromJSVal Node where-  fromJSVal v = fmap Node <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Node where-  makeObject = makeObject . unNode--class IsEventTarget o => IsNode o-toNode :: IsNode o => o -> Node-toNode = Node . coerce--instance IsNode Node-instance IsEventTarget Node-instance IsGObject Node where-  typeGType _ = gTypeNode-  {-# INLINE typeGType #-}--gTypeNode :: JSM GType-gTypeNode = GType . Object <$> jsg "Node"-#else-type IsNode o = NodeClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.NodeFilter".------ <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter Mozilla NodeFilter documentation>-newtype NodeFilter = NodeFilter { unNodeFilter :: JSVal }--instance PToJSVal NodeFilter where-  pToJSVal = unNodeFilter-  {-# INLINE pToJSVal #-}--instance PFromJSVal NodeFilter where-  pFromJSVal = NodeFilter-  {-# INLINE pFromJSVal #-}--instance ToJSVal NodeFilter where-  toJSVal = return . unNodeFilter-  {-# INLINE toJSVal #-}--instance FromJSVal NodeFilter where-  fromJSVal v = fmap NodeFilter <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject NodeFilter where-  makeObject = makeObject . unNodeFilter--instance IsGObject NodeFilter where-  typeGType _ = gTypeNodeFilter-  {-# INLINE typeGType #-}--gTypeNodeFilter :: JSM GType-gTypeNodeFilter = GType . Object <$> jsg "NodeFilter"-#else-type IsNodeFilter o = NodeFilterClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.NodeIterator".------ <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator Mozilla NodeIterator documentation>-newtype NodeIterator = NodeIterator { unNodeIterator :: JSVal }--instance PToJSVal NodeIterator where-  pToJSVal = unNodeIterator-  {-# INLINE pToJSVal #-}--instance PFromJSVal NodeIterator where-  pFromJSVal = NodeIterator-  {-# INLINE pFromJSVal #-}--instance ToJSVal NodeIterator where-  toJSVal = return . unNodeIterator-  {-# INLINE toJSVal #-}--instance FromJSVal NodeIterator where-  fromJSVal v = fmap NodeIterator <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject NodeIterator where-  makeObject = makeObject . unNodeIterator--instance IsGObject NodeIterator where-  typeGType _ = gTypeNodeIterator-  {-# INLINE typeGType #-}--gTypeNodeIterator :: JSM GType-gTypeNodeIterator = GType . Object <$> jsg "NodeIterator"-#else-type IsNodeIterator o = NodeIteratorClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.NodeList".------ <https://developer.mozilla.org/en-US/docs/Web/API/NodeList Mozilla NodeList documentation>-newtype NodeList = NodeList { unNodeList :: JSVal }--instance PToJSVal NodeList where-  pToJSVal = unNodeList-  {-# INLINE pToJSVal #-}--instance PFromJSVal NodeList where-  pFromJSVal = NodeList-  {-# INLINE pFromJSVal #-}--instance ToJSVal NodeList where-  toJSVal = return . unNodeList-  {-# INLINE toJSVal #-}--instance FromJSVal NodeList where-  fromJSVal v = fmap NodeList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject NodeList where-  makeObject = makeObject . unNodeList--class IsGObject o => IsNodeList o-toNodeList :: IsNodeList o => o -> NodeList-toNodeList = NodeList . coerce--instance IsNodeList NodeList-instance IsGObject NodeList where-  typeGType _ = gTypeNodeList-  {-# INLINE typeGType #-}--gTypeNodeList :: JSM GType-gTypeNodeList = GType . Object <$> jsg "NodeList"-#else-type IsNodeList o = NodeListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Notification".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Notification Mozilla Notification documentation>-newtype Notification = Notification { unNotification :: JSVal }--instance PToJSVal Notification where-  pToJSVal = unNotification-  {-# INLINE pToJSVal #-}--instance PFromJSVal Notification where-  pFromJSVal = Notification-  {-# INLINE pFromJSVal #-}--instance ToJSVal Notification where-  toJSVal = return . unNotification-  {-# INLINE toJSVal #-}--instance FromJSVal Notification where-  fromJSVal v = fmap Notification <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Notification where-  makeObject = makeObject . unNotification--instance IsEventTarget Notification-instance IsGObject Notification where-  typeGType _ = gTypeNotification-  {-# INLINE typeGType #-}--gTypeNotification :: JSM GType-gTypeNotification = GType . Object <$> jsg "Notification"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.NotificationCenter".------ <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter Mozilla NotificationCenter documentation>-newtype NotificationCenter = NotificationCenter { unNotificationCenter :: JSVal }--instance PToJSVal NotificationCenter where-  pToJSVal = unNotificationCenter-  {-# INLINE pToJSVal #-}--instance PFromJSVal NotificationCenter where-  pFromJSVal = NotificationCenter-  {-# INLINE pFromJSVal #-}--instance ToJSVal NotificationCenter where-  toJSVal = return . unNotificationCenter-  {-# INLINE toJSVal #-}--instance FromJSVal NotificationCenter where-  fromJSVal v = fmap NotificationCenter <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject NotificationCenter where-  makeObject = makeObject . unNotificationCenter--instance IsGObject NotificationCenter where-  typeGType _ = gTypeNotificationCenter-  {-# INLINE typeGType #-}--gTypeNotificationCenter :: JSM GType-gTypeNotificationCenter = GType . Object <$> jsg "NotificationCenter"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESElementIndexUint".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESElementIndexUint Mozilla OESElementIndexUint documentation>-newtype OESElementIndexUint = OESElementIndexUint { unOESElementIndexUint :: JSVal }--instance PToJSVal OESElementIndexUint where-  pToJSVal = unOESElementIndexUint-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESElementIndexUint where-  pFromJSVal = OESElementIndexUint-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESElementIndexUint where-  toJSVal = return . unOESElementIndexUint-  {-# INLINE toJSVal #-}--instance FromJSVal OESElementIndexUint where-  fromJSVal v = fmap OESElementIndexUint <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESElementIndexUint where-  makeObject = makeObject . unOESElementIndexUint--instance IsGObject OESElementIndexUint where-  typeGType _ = gTypeOESElementIndexUint-  {-# INLINE typeGType #-}--gTypeOESElementIndexUint :: JSM GType-gTypeOESElementIndexUint = GType . Object <$> jsg "OESElementIndexUint"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESStandardDerivatives".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESStandardDerivatives Mozilla OESStandardDerivatives documentation>-newtype OESStandardDerivatives = OESStandardDerivatives { unOESStandardDerivatives :: JSVal }--instance PToJSVal OESStandardDerivatives where-  pToJSVal = unOESStandardDerivatives-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESStandardDerivatives where-  pFromJSVal = OESStandardDerivatives-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESStandardDerivatives where-  toJSVal = return . unOESStandardDerivatives-  {-# INLINE toJSVal #-}--instance FromJSVal OESStandardDerivatives where-  fromJSVal v = fmap OESStandardDerivatives <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESStandardDerivatives where-  makeObject = makeObject . unOESStandardDerivatives--instance IsGObject OESStandardDerivatives where-  typeGType _ = gTypeOESStandardDerivatives-  {-# INLINE typeGType #-}--gTypeOESStandardDerivatives :: JSM GType-gTypeOESStandardDerivatives = GType . Object <$> jsg "OESStandardDerivatives"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESTextureFloat".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloat Mozilla OESTextureFloat documentation>-newtype OESTextureFloat = OESTextureFloat { unOESTextureFloat :: JSVal }--instance PToJSVal OESTextureFloat where-  pToJSVal = unOESTextureFloat-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESTextureFloat where-  pFromJSVal = OESTextureFloat-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESTextureFloat where-  toJSVal = return . unOESTextureFloat-  {-# INLINE toJSVal #-}--instance FromJSVal OESTextureFloat where-  fromJSVal v = fmap OESTextureFloat <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESTextureFloat where-  makeObject = makeObject . unOESTextureFloat--instance IsGObject OESTextureFloat where-  typeGType _ = gTypeOESTextureFloat-  {-# INLINE typeGType #-}--gTypeOESTextureFloat :: JSM GType-gTypeOESTextureFloat = GType . Object <$> jsg "OESTextureFloat"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESTextureFloatLinear".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloatLinear Mozilla OESTextureFloatLinear documentation>-newtype OESTextureFloatLinear = OESTextureFloatLinear { unOESTextureFloatLinear :: JSVal }--instance PToJSVal OESTextureFloatLinear where-  pToJSVal = unOESTextureFloatLinear-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESTextureFloatLinear where-  pFromJSVal = OESTextureFloatLinear-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESTextureFloatLinear where-  toJSVal = return . unOESTextureFloatLinear-  {-# INLINE toJSVal #-}--instance FromJSVal OESTextureFloatLinear where-  fromJSVal v = fmap OESTextureFloatLinear <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESTextureFloatLinear where-  makeObject = makeObject . unOESTextureFloatLinear--instance IsGObject OESTextureFloatLinear where-  typeGType _ = gTypeOESTextureFloatLinear-  {-# INLINE typeGType #-}--gTypeOESTextureFloatLinear :: JSM GType-gTypeOESTextureFloatLinear = GType . Object <$> jsg "OESTextureFloatLinear"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESTextureHalfFloat".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloat Mozilla OESTextureHalfFloat documentation>-newtype OESTextureHalfFloat = OESTextureHalfFloat { unOESTextureHalfFloat :: JSVal }--instance PToJSVal OESTextureHalfFloat where-  pToJSVal = unOESTextureHalfFloat-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESTextureHalfFloat where-  pFromJSVal = OESTextureHalfFloat-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESTextureHalfFloat where-  toJSVal = return . unOESTextureHalfFloat-  {-# INLINE toJSVal #-}--instance FromJSVal OESTextureHalfFloat where-  fromJSVal v = fmap OESTextureHalfFloat <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESTextureHalfFloat where-  makeObject = makeObject . unOESTextureHalfFloat--instance IsGObject OESTextureHalfFloat where-  typeGType _ = gTypeOESTextureHalfFloat-  {-# INLINE typeGType #-}--gTypeOESTextureHalfFloat :: JSM GType-gTypeOESTextureHalfFloat = GType . Object <$> jsg "OESTextureHalfFloat"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESTextureHalfFloatLinear".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloatLinear Mozilla OESTextureHalfFloatLinear documentation>-newtype OESTextureHalfFloatLinear = OESTextureHalfFloatLinear { unOESTextureHalfFloatLinear :: JSVal }--instance PToJSVal OESTextureHalfFloatLinear where-  pToJSVal = unOESTextureHalfFloatLinear-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESTextureHalfFloatLinear where-  pFromJSVal = OESTextureHalfFloatLinear-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESTextureHalfFloatLinear where-  toJSVal = return . unOESTextureHalfFloatLinear-  {-# INLINE toJSVal #-}--instance FromJSVal OESTextureHalfFloatLinear where-  fromJSVal v = fmap OESTextureHalfFloatLinear <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESTextureHalfFloatLinear where-  makeObject = makeObject . unOESTextureHalfFloatLinear--instance IsGObject OESTextureHalfFloatLinear where-  typeGType _ = gTypeOESTextureHalfFloatLinear-  {-# INLINE typeGType #-}--gTypeOESTextureHalfFloatLinear :: JSM GType-gTypeOESTextureHalfFloatLinear = GType . Object <$> jsg "OESTextureHalfFloatLinear"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OESVertexArrayObject".------ <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject Mozilla OESVertexArrayObject documentation>-newtype OESVertexArrayObject = OESVertexArrayObject { unOESVertexArrayObject :: JSVal }--instance PToJSVal OESVertexArrayObject where-  pToJSVal = unOESVertexArrayObject-  {-# INLINE pToJSVal #-}--instance PFromJSVal OESVertexArrayObject where-  pFromJSVal = OESVertexArrayObject-  {-# INLINE pFromJSVal #-}--instance ToJSVal OESVertexArrayObject where-  toJSVal = return . unOESVertexArrayObject-  {-# INLINE toJSVal #-}--instance FromJSVal OESVertexArrayObject where-  fromJSVal v = fmap OESVertexArrayObject <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OESVertexArrayObject where-  makeObject = makeObject . unOESVertexArrayObject--instance IsGObject OESVertexArrayObject where-  typeGType _ = gTypeOESVertexArrayObject-  {-# INLINE typeGType #-}--gTypeOESVertexArrayObject :: JSM GType-gTypeOESVertexArrayObject = GType . Object <$> jsg "OESVertexArrayObject"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OfflineAudioCompletionEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent Mozilla OfflineAudioCompletionEvent documentation>-newtype OfflineAudioCompletionEvent = OfflineAudioCompletionEvent { unOfflineAudioCompletionEvent :: JSVal }--instance PToJSVal OfflineAudioCompletionEvent where-  pToJSVal = unOfflineAudioCompletionEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal OfflineAudioCompletionEvent where-  pFromJSVal = OfflineAudioCompletionEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal OfflineAudioCompletionEvent where-  toJSVal = return . unOfflineAudioCompletionEvent-  {-# INLINE toJSVal #-}--instance FromJSVal OfflineAudioCompletionEvent where-  fromJSVal v = fmap OfflineAudioCompletionEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OfflineAudioCompletionEvent where-  makeObject = makeObject . unOfflineAudioCompletionEvent--instance IsEvent OfflineAudioCompletionEvent-instance IsGObject OfflineAudioCompletionEvent where-  typeGType _ = gTypeOfflineAudioCompletionEvent-  {-# INLINE typeGType #-}--gTypeOfflineAudioCompletionEvent :: JSM GType-gTypeOfflineAudioCompletionEvent = GType . Object <$> jsg "OfflineAudioCompletionEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OfflineAudioContext".--- Base interface functions are in:------     * "JSDOM.AudioContext"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext Mozilla OfflineAudioContext documentation>-newtype OfflineAudioContext = OfflineAudioContext { unOfflineAudioContext :: JSVal }--instance PToJSVal OfflineAudioContext where-  pToJSVal = unOfflineAudioContext-  {-# INLINE pToJSVal #-}--instance PFromJSVal OfflineAudioContext where-  pFromJSVal = OfflineAudioContext-  {-# INLINE pFromJSVal #-}--instance ToJSVal OfflineAudioContext where-  toJSVal = return . unOfflineAudioContext-  {-# INLINE toJSVal #-}--instance FromJSVal OfflineAudioContext where-  fromJSVal v = fmap OfflineAudioContext <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OfflineAudioContext where-  makeObject = makeObject . unOfflineAudioContext--instance IsAudioContext OfflineAudioContext-instance IsEventTarget OfflineAudioContext-instance IsGObject OfflineAudioContext where-  typeGType _ = gTypeOfflineAudioContext-  {-# INLINE typeGType #-}--gTypeOfflineAudioContext :: JSM GType-gTypeOfflineAudioContext = GType . Object <$> jsg "OfflineAudioContext"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OscillatorNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode Mozilla OscillatorNode documentation>-newtype OscillatorNode = OscillatorNode { unOscillatorNode :: JSVal }--instance PToJSVal OscillatorNode where-  pToJSVal = unOscillatorNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal OscillatorNode where-  pFromJSVal = OscillatorNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal OscillatorNode where-  toJSVal = return . unOscillatorNode-  {-# INLINE toJSVal #-}--instance FromJSVal OscillatorNode where-  fromJSVal v = fmap OscillatorNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OscillatorNode where-  makeObject = makeObject . unOscillatorNode--instance IsAudioNode OscillatorNode-instance IsEventTarget OscillatorNode-instance IsGObject OscillatorNode where-  typeGType _ = gTypeOscillatorNode-  {-# INLINE typeGType #-}--gTypeOscillatorNode :: JSM GType-gTypeOscillatorNode = GType . Object <$> jsg "OscillatorNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.OverflowEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent Mozilla OverflowEvent documentation>-newtype OverflowEvent = OverflowEvent { unOverflowEvent :: JSVal }--instance PToJSVal OverflowEvent where-  pToJSVal = unOverflowEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal OverflowEvent where-  pFromJSVal = OverflowEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal OverflowEvent where-  toJSVal = return . unOverflowEvent-  {-# INLINE toJSVal #-}--instance FromJSVal OverflowEvent where-  fromJSVal v = fmap OverflowEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject OverflowEvent where-  makeObject = makeObject . unOverflowEvent--instance IsEvent OverflowEvent-instance IsGObject OverflowEvent where-  typeGType _ = gTypeOverflowEvent-  {-# INLINE typeGType #-}--gTypeOverflowEvent :: JSM GType-gTypeOverflowEvent = GType . Object <$> jsg "OverflowEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PageTransitionEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent Mozilla PageTransitionEvent documentation>-newtype PageTransitionEvent = PageTransitionEvent { unPageTransitionEvent :: JSVal }--instance PToJSVal PageTransitionEvent where-  pToJSVal = unPageTransitionEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal PageTransitionEvent where-  pFromJSVal = PageTransitionEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal PageTransitionEvent where-  toJSVal = return . unPageTransitionEvent-  {-# INLINE toJSVal #-}--instance FromJSVal PageTransitionEvent where-  fromJSVal v = fmap PageTransitionEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PageTransitionEvent where-  makeObject = makeObject . unPageTransitionEvent--instance IsEvent PageTransitionEvent-instance IsGObject PageTransitionEvent where-  typeGType _ = gTypePageTransitionEvent-  {-# INLINE typeGType #-}--gTypePageTransitionEvent :: JSM GType-gTypePageTransitionEvent = GType . Object <$> jsg "PageTransitionEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PannerNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode Mozilla webkitAudioPannerNode documentation>-newtype PannerNode = PannerNode { unPannerNode :: JSVal }--instance PToJSVal PannerNode where-  pToJSVal = unPannerNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal PannerNode where-  pFromJSVal = PannerNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal PannerNode where-  toJSVal = return . unPannerNode-  {-# INLINE toJSVal #-}--instance FromJSVal PannerNode where-  fromJSVal v = fmap PannerNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PannerNode where-  makeObject = makeObject . unPannerNode--instance IsAudioNode PannerNode-instance IsEventTarget PannerNode-instance IsGObject PannerNode where-  typeGType _ = gTypePannerNode-  {-# INLINE typeGType #-}--gTypePannerNode :: JSM GType-gTypePannerNode = GType . Object <$> jsg "webkitAudioPannerNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Path2D".------ <https://developer.mozilla.org/en-US/docs/Web/API/Path2D Mozilla Path2D documentation>-newtype Path2D = Path2D { unPath2D :: JSVal }--instance PToJSVal Path2D where-  pToJSVal = unPath2D-  {-# INLINE pToJSVal #-}--instance PFromJSVal Path2D where-  pFromJSVal = Path2D-  {-# INLINE pFromJSVal #-}--instance ToJSVal Path2D where-  toJSVal = return . unPath2D-  {-# INLINE toJSVal #-}--instance FromJSVal Path2D where-  fromJSVal v = fmap Path2D <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Path2D where-  makeObject = makeObject . unPath2D--instance IsGObject Path2D where-  typeGType _ = gTypePath2D-  {-# INLINE typeGType #-}--gTypePath2D :: JSM GType-gTypePath2D = GType . Object <$> jsg "Path2D"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Performance".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Performance Mozilla Performance documentation>-newtype Performance = Performance { unPerformance :: JSVal }--instance PToJSVal Performance where-  pToJSVal = unPerformance-  {-# INLINE pToJSVal #-}--instance PFromJSVal Performance where-  pFromJSVal = Performance-  {-# INLINE pFromJSVal #-}--instance ToJSVal Performance where-  toJSVal = return . unPerformance-  {-# INLINE toJSVal #-}--instance FromJSVal Performance where-  fromJSVal v = fmap Performance <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Performance where-  makeObject = makeObject . unPerformance--instance IsEventTarget Performance-instance IsGObject Performance where-  typeGType _ = gTypePerformance-  {-# INLINE typeGType #-}--gTypePerformance :: JSM GType-gTypePerformance = GType . Object <$> jsg "Performance"-#else-#ifndef USE_OLD_WEBKIT-type IsPerformance o = PerformanceClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceEntry".------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry Mozilla PerformanceEntry documentation>-newtype PerformanceEntry = PerformanceEntry { unPerformanceEntry :: JSVal }--instance PToJSVal PerformanceEntry where-  pToJSVal = unPerformanceEntry-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceEntry where-  pFromJSVal = PerformanceEntry-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceEntry where-  toJSVal = return . unPerformanceEntry-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceEntry where-  fromJSVal v = fmap PerformanceEntry <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceEntry where-  makeObject = makeObject . unPerformanceEntry--class IsGObject o => IsPerformanceEntry o-toPerformanceEntry :: IsPerformanceEntry o => o -> PerformanceEntry-toPerformanceEntry = PerformanceEntry . coerce--instance IsPerformanceEntry PerformanceEntry-instance IsGObject PerformanceEntry where-  typeGType _ = gTypePerformanceEntry-  {-# INLINE typeGType #-}--gTypePerformanceEntry :: JSM GType-gTypePerformanceEntry = GType . Object <$> jsg "PerformanceEntry"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceEntryList".------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList Mozilla PerformanceEntryList documentation>-newtype PerformanceEntryList = PerformanceEntryList { unPerformanceEntryList :: JSVal }--instance PToJSVal PerformanceEntryList where-  pToJSVal = unPerformanceEntryList-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceEntryList where-  pFromJSVal = PerformanceEntryList-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceEntryList where-  toJSVal = return . unPerformanceEntryList-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceEntryList where-  fromJSVal v = fmap PerformanceEntryList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceEntryList where-  makeObject = makeObject . unPerformanceEntryList--instance IsGObject PerformanceEntryList where-  typeGType _ = gTypePerformanceEntryList-  {-# INLINE typeGType #-}--gTypePerformanceEntryList :: JSM GType-gTypePerformanceEntryList = GType . Object <$> jsg "PerformanceEntryList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceMark".--- Base interface functions are in:------     * "JSDOM.PerformanceEntry"------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMark Mozilla PerformanceMark documentation>-newtype PerformanceMark = PerformanceMark { unPerformanceMark :: JSVal }--instance PToJSVal PerformanceMark where-  pToJSVal = unPerformanceMark-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceMark where-  pFromJSVal = PerformanceMark-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceMark where-  toJSVal = return . unPerformanceMark-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceMark where-  fromJSVal v = fmap PerformanceMark <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceMark where-  makeObject = makeObject . unPerformanceMark--instance IsPerformanceEntry PerformanceMark-instance IsGObject PerformanceMark where-  typeGType _ = gTypePerformanceMark-  {-# INLINE typeGType #-}--gTypePerformanceMark :: JSM GType-gTypePerformanceMark = GType . Object <$> jsg "PerformanceMark"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceMeasure".--- Base interface functions are in:------     * "JSDOM.PerformanceEntry"------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMeasure Mozilla PerformanceMeasure documentation>-newtype PerformanceMeasure = PerformanceMeasure { unPerformanceMeasure :: JSVal }--instance PToJSVal PerformanceMeasure where-  pToJSVal = unPerformanceMeasure-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceMeasure where-  pFromJSVal = PerformanceMeasure-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceMeasure where-  toJSVal = return . unPerformanceMeasure-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceMeasure where-  fromJSVal v = fmap PerformanceMeasure <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceMeasure where-  makeObject = makeObject . unPerformanceMeasure--instance IsPerformanceEntry PerformanceMeasure-instance IsGObject PerformanceMeasure where-  typeGType _ = gTypePerformanceMeasure-  {-# INLINE typeGType #-}--gTypePerformanceMeasure :: JSM GType-gTypePerformanceMeasure = GType . Object <$> jsg "PerformanceMeasure"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceNavigation".------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation Mozilla PerformanceNavigation documentation>-newtype PerformanceNavigation = PerformanceNavigation { unPerformanceNavigation :: JSVal }--instance PToJSVal PerformanceNavigation where-  pToJSVal = unPerformanceNavigation-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceNavigation where-  pFromJSVal = PerformanceNavigation-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceNavigation where-  toJSVal = return . unPerformanceNavigation-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceNavigation where-  fromJSVal v = fmap PerformanceNavigation <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceNavigation where-  makeObject = makeObject . unPerformanceNavigation--instance IsGObject PerformanceNavigation where-  typeGType _ = gTypePerformanceNavigation-  {-# INLINE typeGType #-}--gTypePerformanceNavigation :: JSM GType-gTypePerformanceNavigation = GType . Object <$> jsg "PerformanceNavigation"-#else-#ifndef USE_OLD_WEBKIT-type IsPerformanceNavigation o = PerformanceNavigationClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceResourceTiming".--- Base interface functions are in:------     * "JSDOM.PerformanceEntry"------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming Mozilla PerformanceResourceTiming documentation>-newtype PerformanceResourceTiming = PerformanceResourceTiming { unPerformanceResourceTiming :: JSVal }--instance PToJSVal PerformanceResourceTiming where-  pToJSVal = unPerformanceResourceTiming-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceResourceTiming where-  pFromJSVal = PerformanceResourceTiming-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceResourceTiming where-  toJSVal = return . unPerformanceResourceTiming-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceResourceTiming where-  fromJSVal v = fmap PerformanceResourceTiming <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceResourceTiming where-  makeObject = makeObject . unPerformanceResourceTiming--instance IsPerformanceEntry PerformanceResourceTiming-instance IsGObject PerformanceResourceTiming where-  typeGType _ = gTypePerformanceResourceTiming-  {-# INLINE typeGType #-}--gTypePerformanceResourceTiming :: JSM GType-gTypePerformanceResourceTiming = GType . Object <$> jsg "PerformanceResourceTiming"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PerformanceTiming".------ <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming Mozilla PerformanceTiming documentation>-newtype PerformanceTiming = PerformanceTiming { unPerformanceTiming :: JSVal }--instance PToJSVal PerformanceTiming where-  pToJSVal = unPerformanceTiming-  {-# INLINE pToJSVal #-}--instance PFromJSVal PerformanceTiming where-  pFromJSVal = PerformanceTiming-  {-# INLINE pFromJSVal #-}--instance ToJSVal PerformanceTiming where-  toJSVal = return . unPerformanceTiming-  {-# INLINE toJSVal #-}--instance FromJSVal PerformanceTiming where-  fromJSVal v = fmap PerformanceTiming <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PerformanceTiming where-  makeObject = makeObject . unPerformanceTiming--instance IsGObject PerformanceTiming where-  typeGType _ = gTypePerformanceTiming-  {-# INLINE typeGType #-}--gTypePerformanceTiming :: JSM GType-gTypePerformanceTiming = GType . Object <$> jsg "PerformanceTiming"-#else-#ifndef USE_OLD_WEBKIT-type IsPerformanceTiming o = PerformanceTimingClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PeriodicWave".------ <https://developer.mozilla.org/en-US/docs/Web/API/PeriodicWave Mozilla PeriodicWave documentation>-newtype PeriodicWave = PeriodicWave { unPeriodicWave :: JSVal }--instance PToJSVal PeriodicWave where-  pToJSVal = unPeriodicWave-  {-# INLINE pToJSVal #-}--instance PFromJSVal PeriodicWave where-  pFromJSVal = PeriodicWave-  {-# INLINE pFromJSVal #-}--instance ToJSVal PeriodicWave where-  toJSVal = return . unPeriodicWave-  {-# INLINE toJSVal #-}--instance FromJSVal PeriodicWave where-  fromJSVal v = fmap PeriodicWave <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PeriodicWave where-  makeObject = makeObject . unPeriodicWave--instance IsGObject PeriodicWave where-  typeGType _ = gTypePeriodicWave-  {-# INLINE typeGType #-}--gTypePeriodicWave :: JSM GType-gTypePeriodicWave = GType . Object <$> jsg "PeriodicWave"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Plugin".------ <https://developer.mozilla.org/en-US/docs/Web/API/Plugin Mozilla Plugin documentation>-newtype Plugin = Plugin { unPlugin :: JSVal }--instance PToJSVal Plugin where-  pToJSVal = unPlugin-  {-# INLINE pToJSVal #-}--instance PFromJSVal Plugin where-  pFromJSVal = Plugin-  {-# INLINE pFromJSVal #-}--instance ToJSVal Plugin where-  toJSVal = return . unPlugin-  {-# INLINE toJSVal #-}--instance FromJSVal Plugin where-  fromJSVal v = fmap Plugin <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Plugin where-  makeObject = makeObject . unPlugin--instance IsGObject Plugin where-  typeGType _ = gTypePlugin-  {-# INLINE typeGType #-}--gTypePlugin :: JSM GType-gTypePlugin = GType . Object <$> jsg "Plugin"-#else-type IsPlugin o = PluginClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PluginArray".------ <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray Mozilla PluginArray documentation>-newtype PluginArray = PluginArray { unPluginArray :: JSVal }--instance PToJSVal PluginArray where-  pToJSVal = unPluginArray-  {-# INLINE pToJSVal #-}--instance PFromJSVal PluginArray where-  pFromJSVal = PluginArray-  {-# INLINE pFromJSVal #-}--instance ToJSVal PluginArray where-  toJSVal = return . unPluginArray-  {-# INLINE toJSVal #-}--instance FromJSVal PluginArray where-  fromJSVal v = fmap PluginArray <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PluginArray where-  makeObject = makeObject . unPluginArray--instance IsGObject PluginArray where-  typeGType _ = gTypePluginArray-  {-# INLINE typeGType #-}--gTypePluginArray :: JSM GType-gTypePluginArray = GType . Object <$> jsg "PluginArray"-#else-type IsPluginArray o = PluginArrayClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PopStateEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent Mozilla PopStateEvent documentation>-newtype PopStateEvent = PopStateEvent { unPopStateEvent :: JSVal }--instance PToJSVal PopStateEvent where-  pToJSVal = unPopStateEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal PopStateEvent where-  pFromJSVal = PopStateEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal PopStateEvent where-  toJSVal = return . unPopStateEvent-  {-# INLINE toJSVal #-}--instance FromJSVal PopStateEvent where-  fromJSVal v = fmap PopStateEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PopStateEvent where-  makeObject = makeObject . unPopStateEvent--instance IsEvent PopStateEvent-instance IsGObject PopStateEvent where-  typeGType _ = gTypePopStateEvent-  {-# INLINE typeGType #-}--gTypePopStateEvent :: JSM GType-gTypePopStateEvent = GType . Object <$> jsg "PopStateEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.PositionError".------ <https://developer.mozilla.org/en-US/docs/Web/API/PositionError Mozilla PositionError documentation>-newtype PositionError = PositionError { unPositionError :: JSVal }--instance PToJSVal PositionError where-  pToJSVal = unPositionError-  {-# INLINE pToJSVal #-}--instance PFromJSVal PositionError where-  pFromJSVal = PositionError-  {-# INLINE pFromJSVal #-}--instance ToJSVal PositionError where-  toJSVal = return . unPositionError-  {-# INLINE toJSVal #-}--instance FromJSVal PositionError where-  fromJSVal v = fmap PositionError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject PositionError where-  makeObject = makeObject . unPositionError--instance IsGObject PositionError where-  typeGType _ = gTypePositionError-  {-# INLINE typeGType #-}--gTypePositionError :: JSM GType-gTypePositionError = GType . Object <$> jsg "PositionError"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ProcessingInstruction".--- Base interface functions are in:------     * "JSDOM.CharacterData"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction Mozilla ProcessingInstruction documentation>-newtype ProcessingInstruction = ProcessingInstruction { unProcessingInstruction :: JSVal }--instance PToJSVal ProcessingInstruction where-  pToJSVal = unProcessingInstruction-  {-# INLINE pToJSVal #-}--instance PFromJSVal ProcessingInstruction where-  pFromJSVal = ProcessingInstruction-  {-# INLINE pFromJSVal #-}--instance ToJSVal ProcessingInstruction where-  toJSVal = return . unProcessingInstruction-  {-# INLINE toJSVal #-}--instance FromJSVal ProcessingInstruction where-  fromJSVal v = fmap ProcessingInstruction <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ProcessingInstruction where-  makeObject = makeObject . unProcessingInstruction--instance IsCharacterData ProcessingInstruction-instance IsNode ProcessingInstruction-instance IsEventTarget ProcessingInstruction-instance IsGObject ProcessingInstruction where-  typeGType _ = gTypeProcessingInstruction-  {-# INLINE typeGType #-}--gTypeProcessingInstruction :: JSM GType-gTypeProcessingInstruction = GType . Object <$> jsg "ProcessingInstruction"-#else-type IsProcessingInstruction o = ProcessingInstructionClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ProgressEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent Mozilla ProgressEvent documentation>-newtype ProgressEvent = ProgressEvent { unProgressEvent :: JSVal }--instance PToJSVal ProgressEvent where-  pToJSVal = unProgressEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal ProgressEvent where-  pFromJSVal = ProgressEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal ProgressEvent where-  toJSVal = return . unProgressEvent-  {-# INLINE toJSVal #-}--instance FromJSVal ProgressEvent where-  fromJSVal v = fmap ProgressEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ProgressEvent where-  makeObject = makeObject . unProgressEvent--class IsEvent o => IsProgressEvent o-toProgressEvent :: IsProgressEvent o => o -> ProgressEvent-toProgressEvent = ProgressEvent . coerce--instance IsProgressEvent ProgressEvent-instance IsEvent ProgressEvent-instance IsGObject ProgressEvent where-  typeGType _ = gTypeProgressEvent-  {-# INLINE typeGType #-}--gTypeProgressEvent :: JSM GType-gTypeProgressEvent = GType . Object <$> jsg "ProgressEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.QuickTimePluginReplacement".------ <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement Mozilla QuickTimePluginReplacement documentation>-newtype QuickTimePluginReplacement = QuickTimePluginReplacement { unQuickTimePluginReplacement :: JSVal }--instance PToJSVal QuickTimePluginReplacement where-  pToJSVal = unQuickTimePluginReplacement-  {-# INLINE pToJSVal #-}--instance PFromJSVal QuickTimePluginReplacement where-  pFromJSVal = QuickTimePluginReplacement-  {-# INLINE pFromJSVal #-}--instance ToJSVal QuickTimePluginReplacement where-  toJSVal = return . unQuickTimePluginReplacement-  {-# INLINE toJSVal #-}--instance FromJSVal QuickTimePluginReplacement where-  fromJSVal v = fmap QuickTimePluginReplacement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject QuickTimePluginReplacement where-  makeObject = makeObject . unQuickTimePluginReplacement--instance IsGObject QuickTimePluginReplacement where-  typeGType _ = gTypeQuickTimePluginReplacement-  {-# INLINE typeGType #-}--gTypeQuickTimePluginReplacement :: JSM GType-gTypeQuickTimePluginReplacement = GType . Object <$> jsg "QuickTimePluginReplacement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RGBColor".------ <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor Mozilla RGBColor documentation>-newtype RGBColor = RGBColor { unRGBColor :: JSVal }--instance PToJSVal RGBColor where-  pToJSVal = unRGBColor-  {-# INLINE pToJSVal #-}--instance PFromJSVal RGBColor where-  pFromJSVal = RGBColor-  {-# INLINE pFromJSVal #-}--instance ToJSVal RGBColor where-  toJSVal = return . unRGBColor-  {-# INLINE toJSVal #-}--instance FromJSVal RGBColor where-  fromJSVal v = fmap RGBColor <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RGBColor where-  makeObject = makeObject . unRGBColor--instance IsGObject RGBColor where-  typeGType _ = gTypeRGBColor-  {-# INLINE typeGType #-}--gTypeRGBColor :: JSM GType-gTypeRGBColor = GType . Object <$> jsg "RGBColor"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCConfiguration".------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration Mozilla RTCConfiguration documentation>-newtype RTCConfiguration = RTCConfiguration { unRTCConfiguration :: JSVal }--instance PToJSVal RTCConfiguration where-  pToJSVal = unRTCConfiguration-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCConfiguration where-  pFromJSVal = RTCConfiguration-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCConfiguration where-  toJSVal = return . unRTCConfiguration-  {-# INLINE toJSVal #-}--instance FromJSVal RTCConfiguration where-  fromJSVal v = fmap RTCConfiguration <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCConfiguration where-  makeObject = makeObject . unRTCConfiguration--instance IsGObject RTCConfiguration where-  typeGType _ = gTypeRTCConfiguration-  {-# INLINE typeGType #-}--gTypeRTCConfiguration :: JSM GType-gTypeRTCConfiguration = GType . Object <$> jsg "RTCConfiguration"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCDTMFSender".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender Mozilla RTCDTMFSender documentation>-newtype RTCDTMFSender = RTCDTMFSender { unRTCDTMFSender :: JSVal }--instance PToJSVal RTCDTMFSender where-  pToJSVal = unRTCDTMFSender-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCDTMFSender where-  pFromJSVal = RTCDTMFSender-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCDTMFSender where-  toJSVal = return . unRTCDTMFSender-  {-# INLINE toJSVal #-}--instance FromJSVal RTCDTMFSender where-  fromJSVal v = fmap RTCDTMFSender <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCDTMFSender where-  makeObject = makeObject . unRTCDTMFSender--instance IsEventTarget RTCDTMFSender-instance IsGObject RTCDTMFSender where-  typeGType _ = gTypeRTCDTMFSender-  {-# INLINE typeGType #-}--gTypeRTCDTMFSender :: JSM GType-gTypeRTCDTMFSender = GType . Object <$> jsg "RTCDTMFSender"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCDTMFToneChangeEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFToneChangeEvent Mozilla RTCDTMFToneChangeEvent documentation>-newtype RTCDTMFToneChangeEvent = RTCDTMFToneChangeEvent { unRTCDTMFToneChangeEvent :: JSVal }--instance PToJSVal RTCDTMFToneChangeEvent where-  pToJSVal = unRTCDTMFToneChangeEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCDTMFToneChangeEvent where-  pFromJSVal = RTCDTMFToneChangeEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCDTMFToneChangeEvent where-  toJSVal = return . unRTCDTMFToneChangeEvent-  {-# INLINE toJSVal #-}--instance FromJSVal RTCDTMFToneChangeEvent where-  fromJSVal v = fmap RTCDTMFToneChangeEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCDTMFToneChangeEvent where-  makeObject = makeObject . unRTCDTMFToneChangeEvent--instance IsEvent RTCDTMFToneChangeEvent-instance IsGObject RTCDTMFToneChangeEvent where-  typeGType _ = gTypeRTCDTMFToneChangeEvent-  {-# INLINE typeGType #-}--gTypeRTCDTMFToneChangeEvent :: JSM GType-gTypeRTCDTMFToneChangeEvent = GType . Object <$> jsg "RTCDTMFToneChangeEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCDataChannel".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel Mozilla RTCDataChannel documentation>-newtype RTCDataChannel = RTCDataChannel { unRTCDataChannel :: JSVal }--instance PToJSVal RTCDataChannel where-  pToJSVal = unRTCDataChannel-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCDataChannel where-  pFromJSVal = RTCDataChannel-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCDataChannel where-  toJSVal = return . unRTCDataChannel-  {-# INLINE toJSVal #-}--instance FromJSVal RTCDataChannel where-  fromJSVal v = fmap RTCDataChannel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCDataChannel where-  makeObject = makeObject . unRTCDataChannel--instance IsEventTarget RTCDataChannel-instance IsGObject RTCDataChannel where-  typeGType _ = gTypeRTCDataChannel-  {-# INLINE typeGType #-}--gTypeRTCDataChannel :: JSM GType-gTypeRTCDataChannel = GType . Object <$> jsg "RTCDataChannel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCDataChannelEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent Mozilla RTCDataChannelEvent documentation>-newtype RTCDataChannelEvent = RTCDataChannelEvent { unRTCDataChannelEvent :: JSVal }--instance PToJSVal RTCDataChannelEvent where-  pToJSVal = unRTCDataChannelEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCDataChannelEvent where-  pFromJSVal = RTCDataChannelEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCDataChannelEvent where-  toJSVal = return . unRTCDataChannelEvent-  {-# INLINE toJSVal #-}--instance FromJSVal RTCDataChannelEvent where-  fromJSVal v = fmap RTCDataChannelEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCDataChannelEvent where-  makeObject = makeObject . unRTCDataChannelEvent--instance IsEvent RTCDataChannelEvent-instance IsGObject RTCDataChannelEvent where-  typeGType _ = gTypeRTCDataChannelEvent-  {-# INLINE typeGType #-}--gTypeRTCDataChannelEvent :: JSM GType-gTypeRTCDataChannelEvent = GType . Object <$> jsg "RTCDataChannelEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCIceCandidate".------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate Mozilla RTCIceCandidate documentation>-newtype RTCIceCandidate = RTCIceCandidate { unRTCIceCandidate :: JSVal }--instance PToJSVal RTCIceCandidate where-  pToJSVal = unRTCIceCandidate-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCIceCandidate where-  pFromJSVal = RTCIceCandidate-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCIceCandidate where-  toJSVal = return . unRTCIceCandidate-  {-# INLINE toJSVal #-}--instance FromJSVal RTCIceCandidate where-  fromJSVal v = fmap RTCIceCandidate <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCIceCandidate where-  makeObject = makeObject . unRTCIceCandidate--instance IsGObject RTCIceCandidate where-  typeGType _ = gTypeRTCIceCandidate-  {-# INLINE typeGType #-}--gTypeRTCIceCandidate :: JSM GType-gTypeRTCIceCandidate = GType . Object <$> jsg "RTCIceCandidate"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCIceCandidateEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent Mozilla RTCIceCandidateEvent documentation>-newtype RTCIceCandidateEvent = RTCIceCandidateEvent { unRTCIceCandidateEvent :: JSVal }--instance PToJSVal RTCIceCandidateEvent where-  pToJSVal = unRTCIceCandidateEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCIceCandidateEvent where-  pFromJSVal = RTCIceCandidateEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCIceCandidateEvent where-  toJSVal = return . unRTCIceCandidateEvent-  {-# INLINE toJSVal #-}--instance FromJSVal RTCIceCandidateEvent where-  fromJSVal v = fmap RTCIceCandidateEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCIceCandidateEvent where-  makeObject = makeObject . unRTCIceCandidateEvent--instance IsEvent RTCIceCandidateEvent-instance IsGObject RTCIceCandidateEvent where-  typeGType _ = gTypeRTCIceCandidateEvent-  {-# INLINE typeGType #-}--gTypeRTCIceCandidateEvent :: JSM GType-gTypeRTCIceCandidateEvent = GType . Object <$> jsg "RTCIceCandidateEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCIceServer".------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer Mozilla RTCIceServer documentation>-newtype RTCIceServer = RTCIceServer { unRTCIceServer :: JSVal }--instance PToJSVal RTCIceServer where-  pToJSVal = unRTCIceServer-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCIceServer where-  pFromJSVal = RTCIceServer-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCIceServer where-  toJSVal = return . unRTCIceServer-  {-# INLINE toJSVal #-}--instance FromJSVal RTCIceServer where-  fromJSVal v = fmap RTCIceServer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCIceServer where-  makeObject = makeObject . unRTCIceServer--instance IsGObject RTCIceServer where-  typeGType _ = gTypeRTCIceServer-  {-# INLINE typeGType #-}--gTypeRTCIceServer :: JSM GType-gTypeRTCIceServer = GType . Object <$> jsg "RTCIceServer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCPeerConnection".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection Mozilla webkitRTCPeerConnection documentation>-newtype RTCPeerConnection = RTCPeerConnection { unRTCPeerConnection :: JSVal }--instance PToJSVal RTCPeerConnection where-  pToJSVal = unRTCPeerConnection-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCPeerConnection where-  pFromJSVal = RTCPeerConnection-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCPeerConnection where-  toJSVal = return . unRTCPeerConnection-  {-# INLINE toJSVal #-}--instance FromJSVal RTCPeerConnection where-  fromJSVal v = fmap RTCPeerConnection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCPeerConnection where-  makeObject = makeObject . unRTCPeerConnection--instance IsEventTarget RTCPeerConnection-instance IsGObject RTCPeerConnection where-  typeGType _ = gTypeRTCPeerConnection-  {-# INLINE typeGType #-}--gTypeRTCPeerConnection :: JSM GType-gTypeRTCPeerConnection = GType . Object <$> jsg "webkitRTCPeerConnection"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCSessionDescription".------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription Mozilla RTCSessionDescription documentation>-newtype RTCSessionDescription = RTCSessionDescription { unRTCSessionDescription :: JSVal }--instance PToJSVal RTCSessionDescription where-  pToJSVal = unRTCSessionDescription-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCSessionDescription where-  pFromJSVal = RTCSessionDescription-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCSessionDescription where-  toJSVal = return . unRTCSessionDescription-  {-# INLINE toJSVal #-}--instance FromJSVal RTCSessionDescription where-  fromJSVal v = fmap RTCSessionDescription <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCSessionDescription where-  makeObject = makeObject . unRTCSessionDescription--instance IsGObject RTCSessionDescription where-  typeGType _ = gTypeRTCSessionDescription-  {-# INLINE typeGType #-}--gTypeRTCSessionDescription :: JSM GType-gTypeRTCSessionDescription = GType . Object <$> jsg "RTCSessionDescription"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCStatsReport".------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport Mozilla RTCStatsReport documentation>-newtype RTCStatsReport = RTCStatsReport { unRTCStatsReport :: JSVal }--instance PToJSVal RTCStatsReport where-  pToJSVal = unRTCStatsReport-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCStatsReport where-  pFromJSVal = RTCStatsReport-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCStatsReport where-  toJSVal = return . unRTCStatsReport-  {-# INLINE toJSVal #-}--instance FromJSVal RTCStatsReport where-  fromJSVal v = fmap RTCStatsReport <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCStatsReport where-  makeObject = makeObject . unRTCStatsReport--instance IsGObject RTCStatsReport where-  typeGType _ = gTypeRTCStatsReport-  {-# INLINE typeGType #-}--gTypeRTCStatsReport :: JSM GType-gTypeRTCStatsReport = GType . Object <$> jsg "RTCStatsReport"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RTCStatsResponse".------ <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse Mozilla RTCStatsResponse documentation>-newtype RTCStatsResponse = RTCStatsResponse { unRTCStatsResponse :: JSVal }--instance PToJSVal RTCStatsResponse where-  pToJSVal = unRTCStatsResponse-  {-# INLINE pToJSVal #-}--instance PFromJSVal RTCStatsResponse where-  pFromJSVal = RTCStatsResponse-  {-# INLINE pFromJSVal #-}--instance ToJSVal RTCStatsResponse where-  toJSVal = return . unRTCStatsResponse-  {-# INLINE toJSVal #-}--instance FromJSVal RTCStatsResponse where-  fromJSVal v = fmap RTCStatsResponse <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RTCStatsResponse where-  makeObject = makeObject . unRTCStatsResponse--instance IsGObject RTCStatsResponse where-  typeGType _ = gTypeRTCStatsResponse-  {-# INLINE typeGType #-}--gTypeRTCStatsResponse :: JSM GType-gTypeRTCStatsResponse = GType . Object <$> jsg "RTCStatsResponse"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.RadioNodeList".--- Base interface functions are in:------     * "JSDOM.NodeList"------ <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList Mozilla RadioNodeList documentation>-newtype RadioNodeList = RadioNodeList { unRadioNodeList :: JSVal }--instance PToJSVal RadioNodeList where-  pToJSVal = unRadioNodeList-  {-# INLINE pToJSVal #-}--instance PFromJSVal RadioNodeList where-  pFromJSVal = RadioNodeList-  {-# INLINE pFromJSVal #-}--instance ToJSVal RadioNodeList where-  toJSVal = return . unRadioNodeList-  {-# INLINE toJSVal #-}--instance FromJSVal RadioNodeList where-  fromJSVal v = fmap RadioNodeList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject RadioNodeList where-  makeObject = makeObject . unRadioNodeList--instance IsNodeList RadioNodeList-instance IsGObject RadioNodeList where-  typeGType _ = gTypeRadioNodeList-  {-# INLINE typeGType #-}--gTypeRadioNodeList :: JSM GType-gTypeRadioNodeList = GType . Object <$> jsg "RadioNodeList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Range".------ <https://developer.mozilla.org/en-US/docs/Web/API/Range Mozilla Range documentation>-newtype Range = Range { unRange :: JSVal }--instance PToJSVal Range where-  pToJSVal = unRange-  {-# INLINE pToJSVal #-}--instance PFromJSVal Range where-  pFromJSVal = Range-  {-# INLINE pFromJSVal #-}--instance ToJSVal Range where-  toJSVal = return . unRange-  {-# INLINE toJSVal #-}--instance FromJSVal Range where-  fromJSVal v = fmap Range <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Range where-  makeObject = makeObject . unRange--instance IsGObject Range where-  typeGType _ = gTypeRange-  {-# INLINE typeGType #-}--gTypeRange :: JSM GType-gTypeRange = GType . Object <$> jsg "Range"-#else-type IsRange o = RangeClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ReadableStream".------ <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream Mozilla ReadableStream documentation>-newtype ReadableStream = ReadableStream { unReadableStream :: JSVal }--instance PToJSVal ReadableStream where-  pToJSVal = unReadableStream-  {-# INLINE pToJSVal #-}--instance PFromJSVal ReadableStream where-  pFromJSVal = ReadableStream-  {-# INLINE pFromJSVal #-}--instance ToJSVal ReadableStream where-  toJSVal = return . unReadableStream-  {-# INLINE toJSVal #-}--instance FromJSVal ReadableStream where-  fromJSVal v = fmap ReadableStream <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ReadableStream where-  makeObject = makeObject . unReadableStream--instance IsGObject ReadableStream where-  typeGType _ = gTypeReadableStream-  {-# INLINE typeGType #-}--gTypeReadableStream :: JSM GType-gTypeReadableStream = GType . Object <$> jsg "ReadableStream"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Rect".------ <https://developer.mozilla.org/en-US/docs/Web/API/Rect Mozilla Rect documentation>-newtype Rect = Rect { unRect :: JSVal }--instance PToJSVal Rect where-  pToJSVal = unRect-  {-# INLINE pToJSVal #-}--instance PFromJSVal Rect where-  pFromJSVal = Rect-  {-# INLINE pFromJSVal #-}--instance ToJSVal Rect where-  toJSVal = return . unRect-  {-# INLINE toJSVal #-}--instance FromJSVal Rect where-  fromJSVal v = fmap Rect <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Rect where-  makeObject = makeObject . unRect--instance IsGObject Rect where-  typeGType _ = gTypeRect-  {-# INLINE typeGType #-}--gTypeRect :: JSM GType-gTypeRect = GType . Object <$> jsg "Rect"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SQLError".------ <https://developer.mozilla.org/en-US/docs/Web/API/SQLError Mozilla SQLError documentation>-newtype SQLError = SQLError { unSQLError :: JSVal }--instance PToJSVal SQLError where-  pToJSVal = unSQLError-  {-# INLINE pToJSVal #-}--instance PFromJSVal SQLError where-  pFromJSVal = SQLError-  {-# INLINE pFromJSVal #-}--instance ToJSVal SQLError where-  toJSVal = return . unSQLError-  {-# INLINE toJSVal #-}--instance FromJSVal SQLError where-  fromJSVal v = fmap SQLError <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SQLError where-  makeObject = makeObject . unSQLError--instance IsGObject SQLError where-  typeGType _ = gTypeSQLError-  {-# INLINE typeGType #-}--gTypeSQLError :: JSM GType-gTypeSQLError = GType . Object <$> jsg "SQLError"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SQLResultSet".------ <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet Mozilla SQLResultSet documentation>-newtype SQLResultSet = SQLResultSet { unSQLResultSet :: JSVal }--instance PToJSVal SQLResultSet where-  pToJSVal = unSQLResultSet-  {-# INLINE pToJSVal #-}--instance PFromJSVal SQLResultSet where-  pFromJSVal = SQLResultSet-  {-# INLINE pFromJSVal #-}--instance ToJSVal SQLResultSet where-  toJSVal = return . unSQLResultSet-  {-# INLINE toJSVal #-}--instance FromJSVal SQLResultSet where-  fromJSVal v = fmap SQLResultSet <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SQLResultSet where-  makeObject = makeObject . unSQLResultSet--instance IsGObject SQLResultSet where-  typeGType _ = gTypeSQLResultSet-  {-# INLINE typeGType #-}--gTypeSQLResultSet :: JSM GType-gTypeSQLResultSet = GType . Object <$> jsg "SQLResultSet"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SQLResultSetRowList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList Mozilla SQLResultSetRowList documentation>-newtype SQLResultSetRowList = SQLResultSetRowList { unSQLResultSetRowList :: JSVal }--instance PToJSVal SQLResultSetRowList where-  pToJSVal = unSQLResultSetRowList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SQLResultSetRowList where-  pFromJSVal = SQLResultSetRowList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SQLResultSetRowList where-  toJSVal = return . unSQLResultSetRowList-  {-# INLINE toJSVal #-}--instance FromJSVal SQLResultSetRowList where-  fromJSVal v = fmap SQLResultSetRowList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SQLResultSetRowList where-  makeObject = makeObject . unSQLResultSetRowList--instance IsGObject SQLResultSetRowList where-  typeGType _ = gTypeSQLResultSetRowList-  {-# INLINE typeGType #-}--gTypeSQLResultSetRowList :: JSM GType-gTypeSQLResultSetRowList = GType . Object <$> jsg "SQLResultSetRowList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SQLTransaction".------ <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransaction Mozilla SQLTransaction documentation>-newtype SQLTransaction = SQLTransaction { unSQLTransaction :: JSVal }--instance PToJSVal SQLTransaction where-  pToJSVal = unSQLTransaction-  {-# INLINE pToJSVal #-}--instance PFromJSVal SQLTransaction where-  pFromJSVal = SQLTransaction-  {-# INLINE pFromJSVal #-}--instance ToJSVal SQLTransaction where-  toJSVal = return . unSQLTransaction-  {-# INLINE toJSVal #-}--instance FromJSVal SQLTransaction where-  fromJSVal v = fmap SQLTransaction <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SQLTransaction where-  makeObject = makeObject . unSQLTransaction--instance IsGObject SQLTransaction where-  typeGType _ = gTypeSQLTransaction-  {-# INLINE typeGType #-}--gTypeSQLTransaction :: JSM GType-gTypeSQLTransaction = GType . Object <$> jsg "SQLTransaction"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement Mozilla SVGAElement documentation>-newtype SVGAElement = SVGAElement { unSVGAElement :: JSVal }--instance PToJSVal SVGAElement where-  pToJSVal = unSVGAElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAElement where-  pFromJSVal = SVGAElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAElement where-  toJSVal = return . unSVGAElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAElement where-  fromJSVal v = fmap SVGAElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAElement where-  makeObject = makeObject . unSVGAElement--instance IsSVGGraphicsElement SVGAElement-instance IsSVGElement SVGAElement-instance IsElement SVGAElement-instance IsNode SVGAElement-instance IsEventTarget SVGAElement-instance IsGObject SVGAElement where-  typeGType _ = gTypeSVGAElement-  {-# INLINE typeGType #-}--gTypeSVGAElement :: JSM GType-gTypeSVGAElement = GType . Object <$> jsg "SVGAElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAltGlyphDefElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphDefElement Mozilla SVGAltGlyphDefElement documentation>-newtype SVGAltGlyphDefElement = SVGAltGlyphDefElement { unSVGAltGlyphDefElement :: JSVal }--instance PToJSVal SVGAltGlyphDefElement where-  pToJSVal = unSVGAltGlyphDefElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAltGlyphDefElement where-  pFromJSVal = SVGAltGlyphDefElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAltGlyphDefElement where-  toJSVal = return . unSVGAltGlyphDefElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAltGlyphDefElement where-  fromJSVal v = fmap SVGAltGlyphDefElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAltGlyphDefElement where-  makeObject = makeObject . unSVGAltGlyphDefElement--instance IsSVGElement SVGAltGlyphDefElement-instance IsElement SVGAltGlyphDefElement-instance IsNode SVGAltGlyphDefElement-instance IsEventTarget SVGAltGlyphDefElement-instance IsGObject SVGAltGlyphDefElement where-  typeGType _ = gTypeSVGAltGlyphDefElement-  {-# INLINE typeGType #-}--gTypeSVGAltGlyphDefElement :: JSM GType-gTypeSVGAltGlyphDefElement = GType . Object <$> jsg "SVGAltGlyphDefElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAltGlyphElement".--- Base interface functions are in:------     * "JSDOM.SVGTextPositioningElement"---     * "JSDOM.SVGTextContentElement"---     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement Mozilla SVGAltGlyphElement documentation>-newtype SVGAltGlyphElement = SVGAltGlyphElement { unSVGAltGlyphElement :: JSVal }--instance PToJSVal SVGAltGlyphElement where-  pToJSVal = unSVGAltGlyphElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAltGlyphElement where-  pFromJSVal = SVGAltGlyphElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAltGlyphElement where-  toJSVal = return . unSVGAltGlyphElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAltGlyphElement where-  fromJSVal v = fmap SVGAltGlyphElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAltGlyphElement where-  makeObject = makeObject . unSVGAltGlyphElement--instance IsSVGTextPositioningElement SVGAltGlyphElement-instance IsSVGTextContentElement SVGAltGlyphElement-instance IsSVGGraphicsElement SVGAltGlyphElement-instance IsSVGElement SVGAltGlyphElement-instance IsElement SVGAltGlyphElement-instance IsNode SVGAltGlyphElement-instance IsEventTarget SVGAltGlyphElement-instance IsGObject SVGAltGlyphElement where-  typeGType _ = gTypeSVGAltGlyphElement-  {-# INLINE typeGType #-}--gTypeSVGAltGlyphElement :: JSM GType-gTypeSVGAltGlyphElement = GType . Object <$> jsg "SVGAltGlyphElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAltGlyphItemElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphItemElement Mozilla SVGAltGlyphItemElement documentation>-newtype SVGAltGlyphItemElement = SVGAltGlyphItemElement { unSVGAltGlyphItemElement :: JSVal }--instance PToJSVal SVGAltGlyphItemElement where-  pToJSVal = unSVGAltGlyphItemElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAltGlyphItemElement where-  pFromJSVal = SVGAltGlyphItemElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAltGlyphItemElement where-  toJSVal = return . unSVGAltGlyphItemElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAltGlyphItemElement where-  fromJSVal v = fmap SVGAltGlyphItemElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAltGlyphItemElement where-  makeObject = makeObject . unSVGAltGlyphItemElement--instance IsSVGElement SVGAltGlyphItemElement-instance IsElement SVGAltGlyphItemElement-instance IsNode SVGAltGlyphItemElement-instance IsEventTarget SVGAltGlyphItemElement-instance IsGObject SVGAltGlyphItemElement where-  typeGType _ = gTypeSVGAltGlyphItemElement-  {-# INLINE typeGType #-}--gTypeSVGAltGlyphItemElement :: JSM GType-gTypeSVGAltGlyphItemElement = GType . Object <$> jsg "SVGAltGlyphItemElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAngle".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle Mozilla SVGAngle documentation>-newtype SVGAngle = SVGAngle { unSVGAngle :: JSVal }--instance PToJSVal SVGAngle where-  pToJSVal = unSVGAngle-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAngle where-  pFromJSVal = SVGAngle-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAngle where-  toJSVal = return . unSVGAngle-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAngle where-  fromJSVal v = fmap SVGAngle <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAngle where-  makeObject = makeObject . unSVGAngle--instance IsGObject SVGAngle where-  typeGType _ = gTypeSVGAngle-  {-# INLINE typeGType #-}--gTypeSVGAngle :: JSM GType-gTypeSVGAngle = GType . Object <$> jsg "SVGAngle"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimateColorElement".--- Base interface functions are in:------     * "JSDOM.SVGAnimationElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateColorElement Mozilla SVGAnimateColorElement documentation>-newtype SVGAnimateColorElement = SVGAnimateColorElement { unSVGAnimateColorElement :: JSVal }--instance PToJSVal SVGAnimateColorElement where-  pToJSVal = unSVGAnimateColorElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimateColorElement where-  pFromJSVal = SVGAnimateColorElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimateColorElement where-  toJSVal = return . unSVGAnimateColorElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimateColorElement where-  fromJSVal v = fmap SVGAnimateColorElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimateColorElement where-  makeObject = makeObject . unSVGAnimateColorElement--instance IsSVGAnimationElement SVGAnimateColorElement-instance IsSVGElement SVGAnimateColorElement-instance IsElement SVGAnimateColorElement-instance IsNode SVGAnimateColorElement-instance IsEventTarget SVGAnimateColorElement-instance IsGObject SVGAnimateColorElement where-  typeGType _ = gTypeSVGAnimateColorElement-  {-# INLINE typeGType #-}--gTypeSVGAnimateColorElement :: JSM GType-gTypeSVGAnimateColorElement = GType . Object <$> jsg "SVGAnimateColorElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimateElement".--- Base interface functions are in:------     * "JSDOM.SVGAnimationElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateElement Mozilla SVGAnimateElement documentation>-newtype SVGAnimateElement = SVGAnimateElement { unSVGAnimateElement :: JSVal }--instance PToJSVal SVGAnimateElement where-  pToJSVal = unSVGAnimateElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimateElement where-  pFromJSVal = SVGAnimateElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimateElement where-  toJSVal = return . unSVGAnimateElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimateElement where-  fromJSVal v = fmap SVGAnimateElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimateElement where-  makeObject = makeObject . unSVGAnimateElement--instance IsSVGAnimationElement SVGAnimateElement-instance IsSVGElement SVGAnimateElement-instance IsElement SVGAnimateElement-instance IsNode SVGAnimateElement-instance IsEventTarget SVGAnimateElement-instance IsGObject SVGAnimateElement where-  typeGType _ = gTypeSVGAnimateElement-  {-# INLINE typeGType #-}--gTypeSVGAnimateElement :: JSM GType-gTypeSVGAnimateElement = GType . Object <$> jsg "SVGAnimateElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimateMotionElement".--- Base interface functions are in:------     * "JSDOM.SVGAnimationElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateMotionElement Mozilla SVGAnimateMotionElement documentation>-newtype SVGAnimateMotionElement = SVGAnimateMotionElement { unSVGAnimateMotionElement :: JSVal }--instance PToJSVal SVGAnimateMotionElement where-  pToJSVal = unSVGAnimateMotionElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimateMotionElement where-  pFromJSVal = SVGAnimateMotionElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimateMotionElement where-  toJSVal = return . unSVGAnimateMotionElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimateMotionElement where-  fromJSVal v = fmap SVGAnimateMotionElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimateMotionElement where-  makeObject = makeObject . unSVGAnimateMotionElement--instance IsSVGAnimationElement SVGAnimateMotionElement-instance IsSVGElement SVGAnimateMotionElement-instance IsElement SVGAnimateMotionElement-instance IsNode SVGAnimateMotionElement-instance IsEventTarget SVGAnimateMotionElement-instance IsGObject SVGAnimateMotionElement where-  typeGType _ = gTypeSVGAnimateMotionElement-  {-# INLINE typeGType #-}--gTypeSVGAnimateMotionElement :: JSM GType-gTypeSVGAnimateMotionElement = GType . Object <$> jsg "SVGAnimateMotionElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimateTransformElement".--- Base interface functions are in:------     * "JSDOM.SVGAnimationElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateTransformElement Mozilla SVGAnimateTransformElement documentation>-newtype SVGAnimateTransformElement = SVGAnimateTransformElement { unSVGAnimateTransformElement :: JSVal }--instance PToJSVal SVGAnimateTransformElement where-  pToJSVal = unSVGAnimateTransformElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimateTransformElement where-  pFromJSVal = SVGAnimateTransformElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimateTransformElement where-  toJSVal = return . unSVGAnimateTransformElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimateTransformElement where-  fromJSVal v = fmap SVGAnimateTransformElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimateTransformElement where-  makeObject = makeObject . unSVGAnimateTransformElement--instance IsSVGAnimationElement SVGAnimateTransformElement-instance IsSVGElement SVGAnimateTransformElement-instance IsElement SVGAnimateTransformElement-instance IsNode SVGAnimateTransformElement-instance IsEventTarget SVGAnimateTransformElement-instance IsGObject SVGAnimateTransformElement where-  typeGType _ = gTypeSVGAnimateTransformElement-  {-# INLINE typeGType #-}--gTypeSVGAnimateTransformElement :: JSM GType-gTypeSVGAnimateTransformElement = GType . Object <$> jsg "SVGAnimateTransformElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedAngle".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle Mozilla SVGAnimatedAngle documentation>-newtype SVGAnimatedAngle = SVGAnimatedAngle { unSVGAnimatedAngle :: JSVal }--instance PToJSVal SVGAnimatedAngle where-  pToJSVal = unSVGAnimatedAngle-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedAngle where-  pFromJSVal = SVGAnimatedAngle-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedAngle where-  toJSVal = return . unSVGAnimatedAngle-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedAngle where-  fromJSVal v = fmap SVGAnimatedAngle <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedAngle where-  makeObject = makeObject . unSVGAnimatedAngle--instance IsGObject SVGAnimatedAngle where-  typeGType _ = gTypeSVGAnimatedAngle-  {-# INLINE typeGType #-}--gTypeSVGAnimatedAngle :: JSM GType-gTypeSVGAnimatedAngle = GType . Object <$> jsg "SVGAnimatedAngle"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedBoolean".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean Mozilla SVGAnimatedBoolean documentation>-newtype SVGAnimatedBoolean = SVGAnimatedBoolean { unSVGAnimatedBoolean :: JSVal }--instance PToJSVal SVGAnimatedBoolean where-  pToJSVal = unSVGAnimatedBoolean-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedBoolean where-  pFromJSVal = SVGAnimatedBoolean-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedBoolean where-  toJSVal = return . unSVGAnimatedBoolean-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedBoolean where-  fromJSVal v = fmap SVGAnimatedBoolean <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedBoolean where-  makeObject = makeObject . unSVGAnimatedBoolean--instance IsGObject SVGAnimatedBoolean where-  typeGType _ = gTypeSVGAnimatedBoolean-  {-# INLINE typeGType #-}--gTypeSVGAnimatedBoolean :: JSM GType-gTypeSVGAnimatedBoolean = GType . Object <$> jsg "SVGAnimatedBoolean"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedEnumeration".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration Mozilla SVGAnimatedEnumeration documentation>-newtype SVGAnimatedEnumeration = SVGAnimatedEnumeration { unSVGAnimatedEnumeration :: JSVal }--instance PToJSVal SVGAnimatedEnumeration where-  pToJSVal = unSVGAnimatedEnumeration-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedEnumeration where-  pFromJSVal = SVGAnimatedEnumeration-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedEnumeration where-  toJSVal = return . unSVGAnimatedEnumeration-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedEnumeration where-  fromJSVal v = fmap SVGAnimatedEnumeration <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedEnumeration where-  makeObject = makeObject . unSVGAnimatedEnumeration--instance IsGObject SVGAnimatedEnumeration where-  typeGType _ = gTypeSVGAnimatedEnumeration-  {-# INLINE typeGType #-}--gTypeSVGAnimatedEnumeration :: JSM GType-gTypeSVGAnimatedEnumeration = GType . Object <$> jsg "SVGAnimatedEnumeration"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedInteger".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger Mozilla SVGAnimatedInteger documentation>-newtype SVGAnimatedInteger = SVGAnimatedInteger { unSVGAnimatedInteger :: JSVal }--instance PToJSVal SVGAnimatedInteger where-  pToJSVal = unSVGAnimatedInteger-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedInteger where-  pFromJSVal = SVGAnimatedInteger-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedInteger where-  toJSVal = return . unSVGAnimatedInteger-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedInteger where-  fromJSVal v = fmap SVGAnimatedInteger <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedInteger where-  makeObject = makeObject . unSVGAnimatedInteger--instance IsGObject SVGAnimatedInteger where-  typeGType _ = gTypeSVGAnimatedInteger-  {-# INLINE typeGType #-}--gTypeSVGAnimatedInteger :: JSM GType-gTypeSVGAnimatedInteger = GType . Object <$> jsg "SVGAnimatedInteger"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedLength".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength Mozilla SVGAnimatedLength documentation>-newtype SVGAnimatedLength = SVGAnimatedLength { unSVGAnimatedLength :: JSVal }--instance PToJSVal SVGAnimatedLength where-  pToJSVal = unSVGAnimatedLength-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedLength where-  pFromJSVal = SVGAnimatedLength-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedLength where-  toJSVal = return . unSVGAnimatedLength-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedLength where-  fromJSVal v = fmap SVGAnimatedLength <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedLength where-  makeObject = makeObject . unSVGAnimatedLength--instance IsGObject SVGAnimatedLength where-  typeGType _ = gTypeSVGAnimatedLength-  {-# INLINE typeGType #-}--gTypeSVGAnimatedLength :: JSM GType-gTypeSVGAnimatedLength = GType . Object <$> jsg "SVGAnimatedLength"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedLengthList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList Mozilla SVGAnimatedLengthList documentation>-newtype SVGAnimatedLengthList = SVGAnimatedLengthList { unSVGAnimatedLengthList :: JSVal }--instance PToJSVal SVGAnimatedLengthList where-  pToJSVal = unSVGAnimatedLengthList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedLengthList where-  pFromJSVal = SVGAnimatedLengthList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedLengthList where-  toJSVal = return . unSVGAnimatedLengthList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedLengthList where-  fromJSVal v = fmap SVGAnimatedLengthList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedLengthList where-  makeObject = makeObject . unSVGAnimatedLengthList--instance IsGObject SVGAnimatedLengthList where-  typeGType _ = gTypeSVGAnimatedLengthList-  {-# INLINE typeGType #-}--gTypeSVGAnimatedLengthList :: JSM GType-gTypeSVGAnimatedLengthList = GType . Object <$> jsg "SVGAnimatedLengthList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedNumber".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber Mozilla SVGAnimatedNumber documentation>-newtype SVGAnimatedNumber = SVGAnimatedNumber { unSVGAnimatedNumber :: JSVal }--instance PToJSVal SVGAnimatedNumber where-  pToJSVal = unSVGAnimatedNumber-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedNumber where-  pFromJSVal = SVGAnimatedNumber-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedNumber where-  toJSVal = return . unSVGAnimatedNumber-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedNumber where-  fromJSVal v = fmap SVGAnimatedNumber <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedNumber where-  makeObject = makeObject . unSVGAnimatedNumber--instance IsGObject SVGAnimatedNumber where-  typeGType _ = gTypeSVGAnimatedNumber-  {-# INLINE typeGType #-}--gTypeSVGAnimatedNumber :: JSM GType-gTypeSVGAnimatedNumber = GType . Object <$> jsg "SVGAnimatedNumber"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedNumberList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList Mozilla SVGAnimatedNumberList documentation>-newtype SVGAnimatedNumberList = SVGAnimatedNumberList { unSVGAnimatedNumberList :: JSVal }--instance PToJSVal SVGAnimatedNumberList where-  pToJSVal = unSVGAnimatedNumberList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedNumberList where-  pFromJSVal = SVGAnimatedNumberList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedNumberList where-  toJSVal = return . unSVGAnimatedNumberList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedNumberList where-  fromJSVal v = fmap SVGAnimatedNumberList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedNumberList where-  makeObject = makeObject . unSVGAnimatedNumberList--instance IsGObject SVGAnimatedNumberList where-  typeGType _ = gTypeSVGAnimatedNumberList-  {-# INLINE typeGType #-}--gTypeSVGAnimatedNumberList :: JSM GType-gTypeSVGAnimatedNumberList = GType . Object <$> jsg "SVGAnimatedNumberList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedPreserveAspectRatio".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio Mozilla SVGAnimatedPreserveAspectRatio documentation>-newtype SVGAnimatedPreserveAspectRatio = SVGAnimatedPreserveAspectRatio { unSVGAnimatedPreserveAspectRatio :: JSVal }--instance PToJSVal SVGAnimatedPreserveAspectRatio where-  pToJSVal = unSVGAnimatedPreserveAspectRatio-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedPreserveAspectRatio where-  pFromJSVal = SVGAnimatedPreserveAspectRatio-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedPreserveAspectRatio where-  toJSVal = return . unSVGAnimatedPreserveAspectRatio-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedPreserveAspectRatio where-  fromJSVal v = fmap SVGAnimatedPreserveAspectRatio <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedPreserveAspectRatio where-  makeObject = makeObject . unSVGAnimatedPreserveAspectRatio--instance IsGObject SVGAnimatedPreserveAspectRatio where-  typeGType _ = gTypeSVGAnimatedPreserveAspectRatio-  {-# INLINE typeGType #-}--gTypeSVGAnimatedPreserveAspectRatio :: JSM GType-gTypeSVGAnimatedPreserveAspectRatio = GType . Object <$> jsg "SVGAnimatedPreserveAspectRatio"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedRect".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect Mozilla SVGAnimatedRect documentation>-newtype SVGAnimatedRect = SVGAnimatedRect { unSVGAnimatedRect :: JSVal }--instance PToJSVal SVGAnimatedRect where-  pToJSVal = unSVGAnimatedRect-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedRect where-  pFromJSVal = SVGAnimatedRect-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedRect where-  toJSVal = return . unSVGAnimatedRect-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedRect where-  fromJSVal v = fmap SVGAnimatedRect <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedRect where-  makeObject = makeObject . unSVGAnimatedRect--instance IsGObject SVGAnimatedRect where-  typeGType _ = gTypeSVGAnimatedRect-  {-# INLINE typeGType #-}--gTypeSVGAnimatedRect :: JSM GType-gTypeSVGAnimatedRect = GType . Object <$> jsg "SVGAnimatedRect"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedString".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString Mozilla SVGAnimatedString documentation>-newtype SVGAnimatedString = SVGAnimatedString { unSVGAnimatedString :: JSVal }--instance PToJSVal SVGAnimatedString where-  pToJSVal = unSVGAnimatedString-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedString where-  pFromJSVal = SVGAnimatedString-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedString where-  toJSVal = return . unSVGAnimatedString-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedString where-  fromJSVal v = fmap SVGAnimatedString <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedString where-  makeObject = makeObject . unSVGAnimatedString--instance IsGObject SVGAnimatedString where-  typeGType _ = gTypeSVGAnimatedString-  {-# INLINE typeGType #-}--gTypeSVGAnimatedString :: JSM GType-gTypeSVGAnimatedString = GType . Object <$> jsg "SVGAnimatedString"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimatedTransformList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList Mozilla SVGAnimatedTransformList documentation>-newtype SVGAnimatedTransformList = SVGAnimatedTransformList { unSVGAnimatedTransformList :: JSVal }--instance PToJSVal SVGAnimatedTransformList where-  pToJSVal = unSVGAnimatedTransformList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimatedTransformList where-  pFromJSVal = SVGAnimatedTransformList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimatedTransformList where-  toJSVal = return . unSVGAnimatedTransformList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimatedTransformList where-  fromJSVal v = fmap SVGAnimatedTransformList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimatedTransformList where-  makeObject = makeObject . unSVGAnimatedTransformList--instance IsGObject SVGAnimatedTransformList where-  typeGType _ = gTypeSVGAnimatedTransformList-  {-# INLINE typeGType #-}--gTypeSVGAnimatedTransformList :: JSM GType-gTypeSVGAnimatedTransformList = GType . Object <$> jsg "SVGAnimatedTransformList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGAnimationElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement Mozilla SVGAnimationElement documentation>-newtype SVGAnimationElement = SVGAnimationElement { unSVGAnimationElement :: JSVal }--instance PToJSVal SVGAnimationElement where-  pToJSVal = unSVGAnimationElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGAnimationElement where-  pFromJSVal = SVGAnimationElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGAnimationElement where-  toJSVal = return . unSVGAnimationElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGAnimationElement where-  fromJSVal v = fmap SVGAnimationElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGAnimationElement where-  makeObject = makeObject . unSVGAnimationElement--class IsSVGElement o => IsSVGAnimationElement o-toSVGAnimationElement :: IsSVGAnimationElement o => o -> SVGAnimationElement-toSVGAnimationElement = SVGAnimationElement . coerce--instance IsSVGAnimationElement SVGAnimationElement-instance IsSVGElement SVGAnimationElement-instance IsElement SVGAnimationElement-instance IsNode SVGAnimationElement-instance IsEventTarget SVGAnimationElement-instance IsGObject SVGAnimationElement where-  typeGType _ = gTypeSVGAnimationElement-  {-# INLINE typeGType #-}--gTypeSVGAnimationElement :: JSM GType-gTypeSVGAnimationElement = GType . Object <$> jsg "SVGAnimationElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGCircleElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement Mozilla SVGCircleElement documentation>-newtype SVGCircleElement = SVGCircleElement { unSVGCircleElement :: JSVal }--instance PToJSVal SVGCircleElement where-  pToJSVal = unSVGCircleElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGCircleElement where-  pFromJSVal = SVGCircleElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGCircleElement where-  toJSVal = return . unSVGCircleElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGCircleElement where-  fromJSVal v = fmap SVGCircleElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGCircleElement where-  makeObject = makeObject . unSVGCircleElement--instance IsSVGGraphicsElement SVGCircleElement-instance IsSVGElement SVGCircleElement-instance IsElement SVGCircleElement-instance IsNode SVGCircleElement-instance IsEventTarget SVGCircleElement-instance IsGObject SVGCircleElement where-  typeGType _ = gTypeSVGCircleElement-  {-# INLINE typeGType #-}--gTypeSVGCircleElement :: JSM GType-gTypeSVGCircleElement = GType . Object <$> jsg "SVGCircleElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGClipPathElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement Mozilla SVGClipPathElement documentation>-newtype SVGClipPathElement = SVGClipPathElement { unSVGClipPathElement :: JSVal }--instance PToJSVal SVGClipPathElement where-  pToJSVal = unSVGClipPathElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGClipPathElement where-  pFromJSVal = SVGClipPathElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGClipPathElement where-  toJSVal = return . unSVGClipPathElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGClipPathElement where-  fromJSVal v = fmap SVGClipPathElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGClipPathElement where-  makeObject = makeObject . unSVGClipPathElement--instance IsSVGGraphicsElement SVGClipPathElement-instance IsSVGElement SVGClipPathElement-instance IsElement SVGClipPathElement-instance IsNode SVGClipPathElement-instance IsEventTarget SVGClipPathElement-instance IsGObject SVGClipPathElement where-  typeGType _ = gTypeSVGClipPathElement-  {-# INLINE typeGType #-}--gTypeSVGClipPathElement :: JSM GType-gTypeSVGClipPathElement = GType . Object <$> jsg "SVGClipPathElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGColor".--- Base interface functions are in:------     * "JSDOM.CSSValue"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor Mozilla SVGColor documentation>-newtype SVGColor = SVGColor { unSVGColor :: JSVal }--instance PToJSVal SVGColor where-  pToJSVal = unSVGColor-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGColor where-  pFromJSVal = SVGColor-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGColor where-  toJSVal = return . unSVGColor-  {-# INLINE toJSVal #-}--instance FromJSVal SVGColor where-  fromJSVal v = fmap SVGColor <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGColor where-  makeObject = makeObject . unSVGColor--class IsCSSValue o => IsSVGColor o-toSVGColor :: IsSVGColor o => o -> SVGColor-toSVGColor = SVGColor . coerce--instance IsSVGColor SVGColor-instance IsCSSValue SVGColor-instance IsGObject SVGColor where-  typeGType _ = gTypeSVGColor-  {-# INLINE typeGType #-}--gTypeSVGColor :: JSM GType-gTypeSVGColor = GType . Object <$> jsg "SVGColor"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGComponentTransferFunctionElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement Mozilla SVGComponentTransferFunctionElement documentation>-newtype SVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement { unSVGComponentTransferFunctionElement :: JSVal }--instance PToJSVal SVGComponentTransferFunctionElement where-  pToJSVal = unSVGComponentTransferFunctionElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGComponentTransferFunctionElement where-  pFromJSVal = SVGComponentTransferFunctionElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGComponentTransferFunctionElement where-  toJSVal = return . unSVGComponentTransferFunctionElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGComponentTransferFunctionElement where-  fromJSVal v = fmap SVGComponentTransferFunctionElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGComponentTransferFunctionElement where-  makeObject = makeObject . unSVGComponentTransferFunctionElement--class IsSVGElement o => IsSVGComponentTransferFunctionElement o-toSVGComponentTransferFunctionElement :: IsSVGComponentTransferFunctionElement o => o -> SVGComponentTransferFunctionElement-toSVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement . coerce--instance IsSVGComponentTransferFunctionElement SVGComponentTransferFunctionElement-instance IsSVGElement SVGComponentTransferFunctionElement-instance IsElement SVGComponentTransferFunctionElement-instance IsNode SVGComponentTransferFunctionElement-instance IsEventTarget SVGComponentTransferFunctionElement-instance IsGObject SVGComponentTransferFunctionElement where-  typeGType _ = gTypeSVGComponentTransferFunctionElement-  {-# INLINE typeGType #-}--gTypeSVGComponentTransferFunctionElement :: JSM GType-gTypeSVGComponentTransferFunctionElement = GType . Object <$> jsg "SVGComponentTransferFunctionElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGCursorElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement Mozilla SVGCursorElement documentation>-newtype SVGCursorElement = SVGCursorElement { unSVGCursorElement :: JSVal }--instance PToJSVal SVGCursorElement where-  pToJSVal = unSVGCursorElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGCursorElement where-  pFromJSVal = SVGCursorElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGCursorElement where-  toJSVal = return . unSVGCursorElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGCursorElement where-  fromJSVal v = fmap SVGCursorElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGCursorElement where-  makeObject = makeObject . unSVGCursorElement--instance IsSVGElement SVGCursorElement-instance IsElement SVGCursorElement-instance IsNode SVGCursorElement-instance IsEventTarget SVGCursorElement-instance IsGObject SVGCursorElement where-  typeGType _ = gTypeSVGCursorElement-  {-# INLINE typeGType #-}--gTypeSVGCursorElement :: JSM GType-gTypeSVGCursorElement = GType . Object <$> jsg "SVGCursorElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGDefsElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGDefsElement Mozilla SVGDefsElement documentation>-newtype SVGDefsElement = SVGDefsElement { unSVGDefsElement :: JSVal }--instance PToJSVal SVGDefsElement where-  pToJSVal = unSVGDefsElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGDefsElement where-  pFromJSVal = SVGDefsElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGDefsElement where-  toJSVal = return . unSVGDefsElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGDefsElement where-  fromJSVal v = fmap SVGDefsElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGDefsElement where-  makeObject = makeObject . unSVGDefsElement--instance IsSVGGraphicsElement SVGDefsElement-instance IsSVGElement SVGDefsElement-instance IsElement SVGDefsElement-instance IsNode SVGDefsElement-instance IsEventTarget SVGDefsElement-instance IsGObject SVGDefsElement where-  typeGType _ = gTypeSVGDefsElement-  {-# INLINE typeGType #-}--gTypeSVGDefsElement :: JSM GType-gTypeSVGDefsElement = GType . Object <$> jsg "SVGDefsElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGDescElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGDescElement Mozilla SVGDescElement documentation>-newtype SVGDescElement = SVGDescElement { unSVGDescElement :: JSVal }--instance PToJSVal SVGDescElement where-  pToJSVal = unSVGDescElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGDescElement where-  pFromJSVal = SVGDescElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGDescElement where-  toJSVal = return . unSVGDescElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGDescElement where-  fromJSVal v = fmap SVGDescElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGDescElement where-  makeObject = makeObject . unSVGDescElement--instance IsSVGElement SVGDescElement-instance IsElement SVGDescElement-instance IsNode SVGDescElement-instance IsEventTarget SVGDescElement-instance IsGObject SVGDescElement where-  typeGType _ = gTypeSVGDescElement-  {-# INLINE typeGType #-}--gTypeSVGDescElement :: JSM GType-gTypeSVGDescElement = GType . Object <$> jsg "SVGDescElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGDocument".--- Base interface functions are in:------     * "JSDOM.Document"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument Mozilla SVGDocument documentation>-newtype SVGDocument = SVGDocument { unSVGDocument :: JSVal }--instance PToJSVal SVGDocument where-  pToJSVal = unSVGDocument-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGDocument where-  pFromJSVal = SVGDocument-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGDocument where-  toJSVal = return . unSVGDocument-  {-# INLINE toJSVal #-}--instance FromJSVal SVGDocument where-  fromJSVal v = fmap SVGDocument <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGDocument where-  makeObject = makeObject . unSVGDocument--instance IsDocument SVGDocument-instance IsNode SVGDocument-instance IsEventTarget SVGDocument-instance IsGObject SVGDocument where-  typeGType _ = gTypeSVGDocument-  {-# INLINE typeGType #-}--gTypeSVGDocument :: JSM GType-gTypeSVGDocument = GType . Object <$> jsg "SVGDocument"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGElement".--- Base interface functions are in:------     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement Mozilla SVGElement documentation>-newtype SVGElement = SVGElement { unSVGElement :: JSVal }--instance PToJSVal SVGElement where-  pToJSVal = unSVGElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGElement where-  pFromJSVal = SVGElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGElement where-  toJSVal = return . unSVGElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGElement where-  fromJSVal v = fmap SVGElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGElement where-  makeObject = makeObject . unSVGElement--class IsElement o => IsSVGElement o-toSVGElement :: IsSVGElement o => o -> SVGElement-toSVGElement = SVGElement . coerce--instance IsSVGElement SVGElement-instance IsElement SVGElement-instance IsNode SVGElement-instance IsEventTarget SVGElement-instance IsGObject SVGElement where-  typeGType _ = gTypeSVGElement-  {-# INLINE typeGType #-}--gTypeSVGElement :: JSM GType-gTypeSVGElement = GType . Object <$> jsg "SVGElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGEllipseElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement Mozilla SVGEllipseElement documentation>-newtype SVGEllipseElement = SVGEllipseElement { unSVGEllipseElement :: JSVal }--instance PToJSVal SVGEllipseElement where-  pToJSVal = unSVGEllipseElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGEllipseElement where-  pFromJSVal = SVGEllipseElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGEllipseElement where-  toJSVal = return . unSVGEllipseElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGEllipseElement where-  fromJSVal v = fmap SVGEllipseElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGEllipseElement where-  makeObject = makeObject . unSVGEllipseElement--instance IsSVGGraphicsElement SVGEllipseElement-instance IsSVGElement SVGEllipseElement-instance IsElement SVGEllipseElement-instance IsNode SVGEllipseElement-instance IsEventTarget SVGEllipseElement-instance IsGObject SVGEllipseElement where-  typeGType _ = gTypeSVGEllipseElement-  {-# INLINE typeGType #-}--gTypeSVGEllipseElement :: JSM GType-gTypeSVGEllipseElement = GType . Object <$> jsg "SVGEllipseElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGExternalResourcesRequired".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired Mozilla SVGExternalResourcesRequired documentation>-newtype SVGExternalResourcesRequired = SVGExternalResourcesRequired { unSVGExternalResourcesRequired :: JSVal }--instance PToJSVal SVGExternalResourcesRequired where-  pToJSVal = unSVGExternalResourcesRequired-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGExternalResourcesRequired where-  pFromJSVal = SVGExternalResourcesRequired-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGExternalResourcesRequired where-  toJSVal = return . unSVGExternalResourcesRequired-  {-# INLINE toJSVal #-}--instance FromJSVal SVGExternalResourcesRequired where-  fromJSVal v = fmap SVGExternalResourcesRequired <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGExternalResourcesRequired where-  makeObject = makeObject . unSVGExternalResourcesRequired--instance IsGObject SVGExternalResourcesRequired where-  typeGType _ = gTypeSVGExternalResourcesRequired-  {-# INLINE typeGType #-}--gTypeSVGExternalResourcesRequired :: JSM GType-gTypeSVGExternalResourcesRequired = GType . Object <$> jsg "SVGExternalResourcesRequired"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEBlendElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement Mozilla SVGFEBlendElement documentation>-newtype SVGFEBlendElement = SVGFEBlendElement { unSVGFEBlendElement :: JSVal }--instance PToJSVal SVGFEBlendElement where-  pToJSVal = unSVGFEBlendElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEBlendElement where-  pFromJSVal = SVGFEBlendElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEBlendElement where-  toJSVal = return . unSVGFEBlendElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEBlendElement where-  fromJSVal v = fmap SVGFEBlendElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEBlendElement where-  makeObject = makeObject . unSVGFEBlendElement--instance IsSVGElement SVGFEBlendElement-instance IsElement SVGFEBlendElement-instance IsNode SVGFEBlendElement-instance IsEventTarget SVGFEBlendElement-instance IsGObject SVGFEBlendElement where-  typeGType _ = gTypeSVGFEBlendElement-  {-# INLINE typeGType #-}--gTypeSVGFEBlendElement :: JSM GType-gTypeSVGFEBlendElement = GType . Object <$> jsg "SVGFEBlendElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEColorMatrixElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement Mozilla SVGFEColorMatrixElement documentation>-newtype SVGFEColorMatrixElement = SVGFEColorMatrixElement { unSVGFEColorMatrixElement :: JSVal }--instance PToJSVal SVGFEColorMatrixElement where-  pToJSVal = unSVGFEColorMatrixElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEColorMatrixElement where-  pFromJSVal = SVGFEColorMatrixElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEColorMatrixElement where-  toJSVal = return . unSVGFEColorMatrixElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEColorMatrixElement where-  fromJSVal v = fmap SVGFEColorMatrixElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEColorMatrixElement where-  makeObject = makeObject . unSVGFEColorMatrixElement--instance IsSVGElement SVGFEColorMatrixElement-instance IsElement SVGFEColorMatrixElement-instance IsNode SVGFEColorMatrixElement-instance IsEventTarget SVGFEColorMatrixElement-instance IsGObject SVGFEColorMatrixElement where-  typeGType _ = gTypeSVGFEColorMatrixElement-  {-# INLINE typeGType #-}--gTypeSVGFEColorMatrixElement :: JSM GType-gTypeSVGFEColorMatrixElement = GType . Object <$> jsg "SVGFEColorMatrixElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEComponentTransferElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement Mozilla SVGFEComponentTransferElement documentation>-newtype SVGFEComponentTransferElement = SVGFEComponentTransferElement { unSVGFEComponentTransferElement :: JSVal }--instance PToJSVal SVGFEComponentTransferElement where-  pToJSVal = unSVGFEComponentTransferElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEComponentTransferElement where-  pFromJSVal = SVGFEComponentTransferElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEComponentTransferElement where-  toJSVal = return . unSVGFEComponentTransferElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEComponentTransferElement where-  fromJSVal v = fmap SVGFEComponentTransferElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEComponentTransferElement where-  makeObject = makeObject . unSVGFEComponentTransferElement--instance IsSVGElement SVGFEComponentTransferElement-instance IsElement SVGFEComponentTransferElement-instance IsNode SVGFEComponentTransferElement-instance IsEventTarget SVGFEComponentTransferElement-instance IsGObject SVGFEComponentTransferElement where-  typeGType _ = gTypeSVGFEComponentTransferElement-  {-# INLINE typeGType #-}--gTypeSVGFEComponentTransferElement :: JSM GType-gTypeSVGFEComponentTransferElement = GType . Object <$> jsg "SVGFEComponentTransferElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFECompositeElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement Mozilla SVGFECompositeElement documentation>-newtype SVGFECompositeElement = SVGFECompositeElement { unSVGFECompositeElement :: JSVal }--instance PToJSVal SVGFECompositeElement where-  pToJSVal = unSVGFECompositeElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFECompositeElement where-  pFromJSVal = SVGFECompositeElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFECompositeElement where-  toJSVal = return . unSVGFECompositeElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFECompositeElement where-  fromJSVal v = fmap SVGFECompositeElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFECompositeElement where-  makeObject = makeObject . unSVGFECompositeElement--instance IsSVGElement SVGFECompositeElement-instance IsElement SVGFECompositeElement-instance IsNode SVGFECompositeElement-instance IsEventTarget SVGFECompositeElement-instance IsGObject SVGFECompositeElement where-  typeGType _ = gTypeSVGFECompositeElement-  {-# INLINE typeGType #-}--gTypeSVGFECompositeElement :: JSM GType-gTypeSVGFECompositeElement = GType . Object <$> jsg "SVGFECompositeElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEConvolveMatrixElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement Mozilla SVGFEConvolveMatrixElement documentation>-newtype SVGFEConvolveMatrixElement = SVGFEConvolveMatrixElement { unSVGFEConvolveMatrixElement :: JSVal }--instance PToJSVal SVGFEConvolveMatrixElement where-  pToJSVal = unSVGFEConvolveMatrixElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEConvolveMatrixElement where-  pFromJSVal = SVGFEConvolveMatrixElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEConvolveMatrixElement where-  toJSVal = return . unSVGFEConvolveMatrixElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEConvolveMatrixElement where-  fromJSVal v = fmap SVGFEConvolveMatrixElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEConvolveMatrixElement where-  makeObject = makeObject . unSVGFEConvolveMatrixElement--instance IsSVGElement SVGFEConvolveMatrixElement-instance IsElement SVGFEConvolveMatrixElement-instance IsNode SVGFEConvolveMatrixElement-instance IsEventTarget SVGFEConvolveMatrixElement-instance IsGObject SVGFEConvolveMatrixElement where-  typeGType _ = gTypeSVGFEConvolveMatrixElement-  {-# INLINE typeGType #-}--gTypeSVGFEConvolveMatrixElement :: JSM GType-gTypeSVGFEConvolveMatrixElement = GType . Object <$> jsg "SVGFEConvolveMatrixElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEDiffuseLightingElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement Mozilla SVGFEDiffuseLightingElement documentation>-newtype SVGFEDiffuseLightingElement = SVGFEDiffuseLightingElement { unSVGFEDiffuseLightingElement :: JSVal }--instance PToJSVal SVGFEDiffuseLightingElement where-  pToJSVal = unSVGFEDiffuseLightingElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEDiffuseLightingElement where-  pFromJSVal = SVGFEDiffuseLightingElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEDiffuseLightingElement where-  toJSVal = return . unSVGFEDiffuseLightingElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEDiffuseLightingElement where-  fromJSVal v = fmap SVGFEDiffuseLightingElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEDiffuseLightingElement where-  makeObject = makeObject . unSVGFEDiffuseLightingElement--instance IsSVGElement SVGFEDiffuseLightingElement-instance IsElement SVGFEDiffuseLightingElement-instance IsNode SVGFEDiffuseLightingElement-instance IsEventTarget SVGFEDiffuseLightingElement-instance IsGObject SVGFEDiffuseLightingElement where-  typeGType _ = gTypeSVGFEDiffuseLightingElement-  {-# INLINE typeGType #-}--gTypeSVGFEDiffuseLightingElement :: JSM GType-gTypeSVGFEDiffuseLightingElement = GType . Object <$> jsg "SVGFEDiffuseLightingElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEDisplacementMapElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement Mozilla SVGFEDisplacementMapElement documentation>-newtype SVGFEDisplacementMapElement = SVGFEDisplacementMapElement { unSVGFEDisplacementMapElement :: JSVal }--instance PToJSVal SVGFEDisplacementMapElement where-  pToJSVal = unSVGFEDisplacementMapElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEDisplacementMapElement where-  pFromJSVal = SVGFEDisplacementMapElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEDisplacementMapElement where-  toJSVal = return . unSVGFEDisplacementMapElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEDisplacementMapElement where-  fromJSVal v = fmap SVGFEDisplacementMapElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEDisplacementMapElement where-  makeObject = makeObject . unSVGFEDisplacementMapElement--instance IsSVGElement SVGFEDisplacementMapElement-instance IsElement SVGFEDisplacementMapElement-instance IsNode SVGFEDisplacementMapElement-instance IsEventTarget SVGFEDisplacementMapElement-instance IsGObject SVGFEDisplacementMapElement where-  typeGType _ = gTypeSVGFEDisplacementMapElement-  {-# INLINE typeGType #-}--gTypeSVGFEDisplacementMapElement :: JSM GType-gTypeSVGFEDisplacementMapElement = GType . Object <$> jsg "SVGFEDisplacementMapElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEDistantLightElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement Mozilla SVGFEDistantLightElement documentation>-newtype SVGFEDistantLightElement = SVGFEDistantLightElement { unSVGFEDistantLightElement :: JSVal }--instance PToJSVal SVGFEDistantLightElement where-  pToJSVal = unSVGFEDistantLightElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEDistantLightElement where-  pFromJSVal = SVGFEDistantLightElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEDistantLightElement where-  toJSVal = return . unSVGFEDistantLightElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEDistantLightElement where-  fromJSVal v = fmap SVGFEDistantLightElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEDistantLightElement where-  makeObject = makeObject . unSVGFEDistantLightElement--instance IsSVGElement SVGFEDistantLightElement-instance IsElement SVGFEDistantLightElement-instance IsNode SVGFEDistantLightElement-instance IsEventTarget SVGFEDistantLightElement-instance IsGObject SVGFEDistantLightElement where-  typeGType _ = gTypeSVGFEDistantLightElement-  {-# INLINE typeGType #-}--gTypeSVGFEDistantLightElement :: JSM GType-gTypeSVGFEDistantLightElement = GType . Object <$> jsg "SVGFEDistantLightElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEDropShadowElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement Mozilla SVGFEDropShadowElement documentation>-newtype SVGFEDropShadowElement = SVGFEDropShadowElement { unSVGFEDropShadowElement :: JSVal }--instance PToJSVal SVGFEDropShadowElement where-  pToJSVal = unSVGFEDropShadowElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEDropShadowElement where-  pFromJSVal = SVGFEDropShadowElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEDropShadowElement where-  toJSVal = return . unSVGFEDropShadowElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEDropShadowElement where-  fromJSVal v = fmap SVGFEDropShadowElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEDropShadowElement where-  makeObject = makeObject . unSVGFEDropShadowElement--instance IsSVGElement SVGFEDropShadowElement-instance IsElement SVGFEDropShadowElement-instance IsNode SVGFEDropShadowElement-instance IsEventTarget SVGFEDropShadowElement-instance IsGObject SVGFEDropShadowElement where-  typeGType _ = gTypeSVGFEDropShadowElement-  {-# INLINE typeGType #-}--gTypeSVGFEDropShadowElement :: JSM GType-gTypeSVGFEDropShadowElement = GType . Object <$> jsg "SVGFEDropShadowElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEFloodElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFloodElement Mozilla SVGFEFloodElement documentation>-newtype SVGFEFloodElement = SVGFEFloodElement { unSVGFEFloodElement :: JSVal }--instance PToJSVal SVGFEFloodElement where-  pToJSVal = unSVGFEFloodElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEFloodElement where-  pFromJSVal = SVGFEFloodElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEFloodElement where-  toJSVal = return . unSVGFEFloodElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEFloodElement where-  fromJSVal v = fmap SVGFEFloodElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEFloodElement where-  makeObject = makeObject . unSVGFEFloodElement--instance IsSVGElement SVGFEFloodElement-instance IsElement SVGFEFloodElement-instance IsNode SVGFEFloodElement-instance IsEventTarget SVGFEFloodElement-instance IsGObject SVGFEFloodElement where-  typeGType _ = gTypeSVGFEFloodElement-  {-# INLINE typeGType #-}--gTypeSVGFEFloodElement :: JSM GType-gTypeSVGFEFloodElement = GType . Object <$> jsg "SVGFEFloodElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEFuncAElement".--- Base interface functions are in:------     * "JSDOM.SVGComponentTransferFunctionElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncAElement Mozilla SVGFEFuncAElement documentation>-newtype SVGFEFuncAElement = SVGFEFuncAElement { unSVGFEFuncAElement :: JSVal }--instance PToJSVal SVGFEFuncAElement where-  pToJSVal = unSVGFEFuncAElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEFuncAElement where-  pFromJSVal = SVGFEFuncAElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEFuncAElement where-  toJSVal = return . unSVGFEFuncAElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEFuncAElement where-  fromJSVal v = fmap SVGFEFuncAElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEFuncAElement where-  makeObject = makeObject . unSVGFEFuncAElement--instance IsSVGComponentTransferFunctionElement SVGFEFuncAElement-instance IsSVGElement SVGFEFuncAElement-instance IsElement SVGFEFuncAElement-instance IsNode SVGFEFuncAElement-instance IsEventTarget SVGFEFuncAElement-instance IsGObject SVGFEFuncAElement where-  typeGType _ = gTypeSVGFEFuncAElement-  {-# INLINE typeGType #-}--gTypeSVGFEFuncAElement :: JSM GType-gTypeSVGFEFuncAElement = GType . Object <$> jsg "SVGFEFuncAElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEFuncBElement".--- Base interface functions are in:------     * "JSDOM.SVGComponentTransferFunctionElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncBElement Mozilla SVGFEFuncBElement documentation>-newtype SVGFEFuncBElement = SVGFEFuncBElement { unSVGFEFuncBElement :: JSVal }--instance PToJSVal SVGFEFuncBElement where-  pToJSVal = unSVGFEFuncBElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEFuncBElement where-  pFromJSVal = SVGFEFuncBElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEFuncBElement where-  toJSVal = return . unSVGFEFuncBElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEFuncBElement where-  fromJSVal v = fmap SVGFEFuncBElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEFuncBElement where-  makeObject = makeObject . unSVGFEFuncBElement--instance IsSVGComponentTransferFunctionElement SVGFEFuncBElement-instance IsSVGElement SVGFEFuncBElement-instance IsElement SVGFEFuncBElement-instance IsNode SVGFEFuncBElement-instance IsEventTarget SVGFEFuncBElement-instance IsGObject SVGFEFuncBElement where-  typeGType _ = gTypeSVGFEFuncBElement-  {-# INLINE typeGType #-}--gTypeSVGFEFuncBElement :: JSM GType-gTypeSVGFEFuncBElement = GType . Object <$> jsg "SVGFEFuncBElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEFuncGElement".--- Base interface functions are in:------     * "JSDOM.SVGComponentTransferFunctionElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncGElement Mozilla SVGFEFuncGElement documentation>-newtype SVGFEFuncGElement = SVGFEFuncGElement { unSVGFEFuncGElement :: JSVal }--instance PToJSVal SVGFEFuncGElement where-  pToJSVal = unSVGFEFuncGElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEFuncGElement where-  pFromJSVal = SVGFEFuncGElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEFuncGElement where-  toJSVal = return . unSVGFEFuncGElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEFuncGElement where-  fromJSVal v = fmap SVGFEFuncGElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEFuncGElement where-  makeObject = makeObject . unSVGFEFuncGElement--instance IsSVGComponentTransferFunctionElement SVGFEFuncGElement-instance IsSVGElement SVGFEFuncGElement-instance IsElement SVGFEFuncGElement-instance IsNode SVGFEFuncGElement-instance IsEventTarget SVGFEFuncGElement-instance IsGObject SVGFEFuncGElement where-  typeGType _ = gTypeSVGFEFuncGElement-  {-# INLINE typeGType #-}--gTypeSVGFEFuncGElement :: JSM GType-gTypeSVGFEFuncGElement = GType . Object <$> jsg "SVGFEFuncGElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEFuncRElement".--- Base interface functions are in:------     * "JSDOM.SVGComponentTransferFunctionElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncRElement Mozilla SVGFEFuncRElement documentation>-newtype SVGFEFuncRElement = SVGFEFuncRElement { unSVGFEFuncRElement :: JSVal }--instance PToJSVal SVGFEFuncRElement where-  pToJSVal = unSVGFEFuncRElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEFuncRElement where-  pFromJSVal = SVGFEFuncRElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEFuncRElement where-  toJSVal = return . unSVGFEFuncRElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEFuncRElement where-  fromJSVal v = fmap SVGFEFuncRElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEFuncRElement where-  makeObject = makeObject . unSVGFEFuncRElement--instance IsSVGComponentTransferFunctionElement SVGFEFuncRElement-instance IsSVGElement SVGFEFuncRElement-instance IsElement SVGFEFuncRElement-instance IsNode SVGFEFuncRElement-instance IsEventTarget SVGFEFuncRElement-instance IsGObject SVGFEFuncRElement where-  typeGType _ = gTypeSVGFEFuncRElement-  {-# INLINE typeGType #-}--gTypeSVGFEFuncRElement :: JSM GType-gTypeSVGFEFuncRElement = GType . Object <$> jsg "SVGFEFuncRElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEGaussianBlurElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement Mozilla SVGFEGaussianBlurElement documentation>-newtype SVGFEGaussianBlurElement = SVGFEGaussianBlurElement { unSVGFEGaussianBlurElement :: JSVal }--instance PToJSVal SVGFEGaussianBlurElement where-  pToJSVal = unSVGFEGaussianBlurElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEGaussianBlurElement where-  pFromJSVal = SVGFEGaussianBlurElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEGaussianBlurElement where-  toJSVal = return . unSVGFEGaussianBlurElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEGaussianBlurElement where-  fromJSVal v = fmap SVGFEGaussianBlurElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEGaussianBlurElement where-  makeObject = makeObject . unSVGFEGaussianBlurElement--instance IsSVGElement SVGFEGaussianBlurElement-instance IsElement SVGFEGaussianBlurElement-instance IsNode SVGFEGaussianBlurElement-instance IsEventTarget SVGFEGaussianBlurElement-instance IsGObject SVGFEGaussianBlurElement where-  typeGType _ = gTypeSVGFEGaussianBlurElement-  {-# INLINE typeGType #-}--gTypeSVGFEGaussianBlurElement :: JSM GType-gTypeSVGFEGaussianBlurElement = GType . Object <$> jsg "SVGFEGaussianBlurElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEImageElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement Mozilla SVGFEImageElement documentation>-newtype SVGFEImageElement = SVGFEImageElement { unSVGFEImageElement :: JSVal }--instance PToJSVal SVGFEImageElement where-  pToJSVal = unSVGFEImageElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEImageElement where-  pFromJSVal = SVGFEImageElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEImageElement where-  toJSVal = return . unSVGFEImageElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEImageElement where-  fromJSVal v = fmap SVGFEImageElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEImageElement where-  makeObject = makeObject . unSVGFEImageElement--instance IsSVGElement SVGFEImageElement-instance IsElement SVGFEImageElement-instance IsNode SVGFEImageElement-instance IsEventTarget SVGFEImageElement-instance IsGObject SVGFEImageElement where-  typeGType _ = gTypeSVGFEImageElement-  {-# INLINE typeGType #-}--gTypeSVGFEImageElement :: JSM GType-gTypeSVGFEImageElement = GType . Object <$> jsg "SVGFEImageElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEMergeElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeElement Mozilla SVGFEMergeElement documentation>-newtype SVGFEMergeElement = SVGFEMergeElement { unSVGFEMergeElement :: JSVal }--instance PToJSVal SVGFEMergeElement where-  pToJSVal = unSVGFEMergeElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEMergeElement where-  pFromJSVal = SVGFEMergeElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEMergeElement where-  toJSVal = return . unSVGFEMergeElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEMergeElement where-  fromJSVal v = fmap SVGFEMergeElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEMergeElement where-  makeObject = makeObject . unSVGFEMergeElement--instance IsSVGElement SVGFEMergeElement-instance IsElement SVGFEMergeElement-instance IsNode SVGFEMergeElement-instance IsEventTarget SVGFEMergeElement-instance IsGObject SVGFEMergeElement where-  typeGType _ = gTypeSVGFEMergeElement-  {-# INLINE typeGType #-}--gTypeSVGFEMergeElement :: JSM GType-gTypeSVGFEMergeElement = GType . Object <$> jsg "SVGFEMergeElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEMergeNodeElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement Mozilla SVGFEMergeNodeElement documentation>-newtype SVGFEMergeNodeElement = SVGFEMergeNodeElement { unSVGFEMergeNodeElement :: JSVal }--instance PToJSVal SVGFEMergeNodeElement where-  pToJSVal = unSVGFEMergeNodeElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEMergeNodeElement where-  pFromJSVal = SVGFEMergeNodeElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEMergeNodeElement where-  toJSVal = return . unSVGFEMergeNodeElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEMergeNodeElement where-  fromJSVal v = fmap SVGFEMergeNodeElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEMergeNodeElement where-  makeObject = makeObject . unSVGFEMergeNodeElement--instance IsSVGElement SVGFEMergeNodeElement-instance IsElement SVGFEMergeNodeElement-instance IsNode SVGFEMergeNodeElement-instance IsEventTarget SVGFEMergeNodeElement-instance IsGObject SVGFEMergeNodeElement where-  typeGType _ = gTypeSVGFEMergeNodeElement-  {-# INLINE typeGType #-}--gTypeSVGFEMergeNodeElement :: JSM GType-gTypeSVGFEMergeNodeElement = GType . Object <$> jsg "SVGFEMergeNodeElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEMorphologyElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement Mozilla SVGFEMorphologyElement documentation>-newtype SVGFEMorphologyElement = SVGFEMorphologyElement { unSVGFEMorphologyElement :: JSVal }--instance PToJSVal SVGFEMorphologyElement where-  pToJSVal = unSVGFEMorphologyElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEMorphologyElement where-  pFromJSVal = SVGFEMorphologyElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEMorphologyElement where-  toJSVal = return . unSVGFEMorphologyElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEMorphologyElement where-  fromJSVal v = fmap SVGFEMorphologyElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEMorphologyElement where-  makeObject = makeObject . unSVGFEMorphologyElement--instance IsSVGElement SVGFEMorphologyElement-instance IsElement SVGFEMorphologyElement-instance IsNode SVGFEMorphologyElement-instance IsEventTarget SVGFEMorphologyElement-instance IsGObject SVGFEMorphologyElement where-  typeGType _ = gTypeSVGFEMorphologyElement-  {-# INLINE typeGType #-}--gTypeSVGFEMorphologyElement :: JSM GType-gTypeSVGFEMorphologyElement = GType . Object <$> jsg "SVGFEMorphologyElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEOffsetElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement Mozilla SVGFEOffsetElement documentation>-newtype SVGFEOffsetElement = SVGFEOffsetElement { unSVGFEOffsetElement :: JSVal }--instance PToJSVal SVGFEOffsetElement where-  pToJSVal = unSVGFEOffsetElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEOffsetElement where-  pFromJSVal = SVGFEOffsetElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEOffsetElement where-  toJSVal = return . unSVGFEOffsetElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEOffsetElement where-  fromJSVal v = fmap SVGFEOffsetElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEOffsetElement where-  makeObject = makeObject . unSVGFEOffsetElement--instance IsSVGElement SVGFEOffsetElement-instance IsElement SVGFEOffsetElement-instance IsNode SVGFEOffsetElement-instance IsEventTarget SVGFEOffsetElement-instance IsGObject SVGFEOffsetElement where-  typeGType _ = gTypeSVGFEOffsetElement-  {-# INLINE typeGType #-}--gTypeSVGFEOffsetElement :: JSM GType-gTypeSVGFEOffsetElement = GType . Object <$> jsg "SVGFEOffsetElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFEPointLightElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement Mozilla SVGFEPointLightElement documentation>-newtype SVGFEPointLightElement = SVGFEPointLightElement { unSVGFEPointLightElement :: JSVal }--instance PToJSVal SVGFEPointLightElement where-  pToJSVal = unSVGFEPointLightElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFEPointLightElement where-  pFromJSVal = SVGFEPointLightElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFEPointLightElement where-  toJSVal = return . unSVGFEPointLightElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFEPointLightElement where-  fromJSVal v = fmap SVGFEPointLightElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFEPointLightElement where-  makeObject = makeObject . unSVGFEPointLightElement--instance IsSVGElement SVGFEPointLightElement-instance IsElement SVGFEPointLightElement-instance IsNode SVGFEPointLightElement-instance IsEventTarget SVGFEPointLightElement-instance IsGObject SVGFEPointLightElement where-  typeGType _ = gTypeSVGFEPointLightElement-  {-# INLINE typeGType #-}--gTypeSVGFEPointLightElement :: JSM GType-gTypeSVGFEPointLightElement = GType . Object <$> jsg "SVGFEPointLightElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFESpecularLightingElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement Mozilla SVGFESpecularLightingElement documentation>-newtype SVGFESpecularLightingElement = SVGFESpecularLightingElement { unSVGFESpecularLightingElement :: JSVal }--instance PToJSVal SVGFESpecularLightingElement where-  pToJSVal = unSVGFESpecularLightingElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFESpecularLightingElement where-  pFromJSVal = SVGFESpecularLightingElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFESpecularLightingElement where-  toJSVal = return . unSVGFESpecularLightingElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFESpecularLightingElement where-  fromJSVal v = fmap SVGFESpecularLightingElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFESpecularLightingElement where-  makeObject = makeObject . unSVGFESpecularLightingElement--instance IsSVGElement SVGFESpecularLightingElement-instance IsElement SVGFESpecularLightingElement-instance IsNode SVGFESpecularLightingElement-instance IsEventTarget SVGFESpecularLightingElement-instance IsGObject SVGFESpecularLightingElement where-  typeGType _ = gTypeSVGFESpecularLightingElement-  {-# INLINE typeGType #-}--gTypeSVGFESpecularLightingElement :: JSM GType-gTypeSVGFESpecularLightingElement = GType . Object <$> jsg "SVGFESpecularLightingElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFESpotLightElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement Mozilla SVGFESpotLightElement documentation>-newtype SVGFESpotLightElement = SVGFESpotLightElement { unSVGFESpotLightElement :: JSVal }--instance PToJSVal SVGFESpotLightElement where-  pToJSVal = unSVGFESpotLightElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFESpotLightElement where-  pFromJSVal = SVGFESpotLightElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFESpotLightElement where-  toJSVal = return . unSVGFESpotLightElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFESpotLightElement where-  fromJSVal v = fmap SVGFESpotLightElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFESpotLightElement where-  makeObject = makeObject . unSVGFESpotLightElement--instance IsSVGElement SVGFESpotLightElement-instance IsElement SVGFESpotLightElement-instance IsNode SVGFESpotLightElement-instance IsEventTarget SVGFESpotLightElement-instance IsGObject SVGFESpotLightElement where-  typeGType _ = gTypeSVGFESpotLightElement-  {-# INLINE typeGType #-}--gTypeSVGFESpotLightElement :: JSM GType-gTypeSVGFESpotLightElement = GType . Object <$> jsg "SVGFESpotLightElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFETileElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement Mozilla SVGFETileElement documentation>-newtype SVGFETileElement = SVGFETileElement { unSVGFETileElement :: JSVal }--instance PToJSVal SVGFETileElement where-  pToJSVal = unSVGFETileElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFETileElement where-  pFromJSVal = SVGFETileElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFETileElement where-  toJSVal = return . unSVGFETileElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFETileElement where-  fromJSVal v = fmap SVGFETileElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFETileElement where-  makeObject = makeObject . unSVGFETileElement--instance IsSVGElement SVGFETileElement-instance IsElement SVGFETileElement-instance IsNode SVGFETileElement-instance IsEventTarget SVGFETileElement-instance IsGObject SVGFETileElement where-  typeGType _ = gTypeSVGFETileElement-  {-# INLINE typeGType #-}--gTypeSVGFETileElement :: JSM GType-gTypeSVGFETileElement = GType . Object <$> jsg "SVGFETileElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFETurbulenceElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement Mozilla SVGFETurbulenceElement documentation>-newtype SVGFETurbulenceElement = SVGFETurbulenceElement { unSVGFETurbulenceElement :: JSVal }--instance PToJSVal SVGFETurbulenceElement where-  pToJSVal = unSVGFETurbulenceElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFETurbulenceElement where-  pFromJSVal = SVGFETurbulenceElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFETurbulenceElement where-  toJSVal = return . unSVGFETurbulenceElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFETurbulenceElement where-  fromJSVal v = fmap SVGFETurbulenceElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFETurbulenceElement where-  makeObject = makeObject . unSVGFETurbulenceElement--instance IsSVGElement SVGFETurbulenceElement-instance IsElement SVGFETurbulenceElement-instance IsNode SVGFETurbulenceElement-instance IsEventTarget SVGFETurbulenceElement-instance IsGObject SVGFETurbulenceElement where-  typeGType _ = gTypeSVGFETurbulenceElement-  {-# INLINE typeGType #-}--gTypeSVGFETurbulenceElement :: JSM GType-gTypeSVGFETurbulenceElement = GType . Object <$> jsg "SVGFETurbulenceElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFilterElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement Mozilla SVGFilterElement documentation>-newtype SVGFilterElement = SVGFilterElement { unSVGFilterElement :: JSVal }--instance PToJSVal SVGFilterElement where-  pToJSVal = unSVGFilterElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFilterElement where-  pFromJSVal = SVGFilterElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFilterElement where-  toJSVal = return . unSVGFilterElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFilterElement where-  fromJSVal v = fmap SVGFilterElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFilterElement where-  makeObject = makeObject . unSVGFilterElement--instance IsSVGElement SVGFilterElement-instance IsElement SVGFilterElement-instance IsNode SVGFilterElement-instance IsEventTarget SVGFilterElement-instance IsGObject SVGFilterElement where-  typeGType _ = gTypeSVGFilterElement-  {-# INLINE typeGType #-}--gTypeSVGFilterElement :: JSM GType-gTypeSVGFilterElement = GType . Object <$> jsg "SVGFilterElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFilterPrimitiveStandardAttributes".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes Mozilla SVGFilterPrimitiveStandardAttributes documentation>-newtype SVGFilterPrimitiveStandardAttributes = SVGFilterPrimitiveStandardAttributes { unSVGFilterPrimitiveStandardAttributes :: JSVal }--instance PToJSVal SVGFilterPrimitiveStandardAttributes where-  pToJSVal = unSVGFilterPrimitiveStandardAttributes-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFilterPrimitiveStandardAttributes where-  pFromJSVal = SVGFilterPrimitiveStandardAttributes-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFilterPrimitiveStandardAttributes where-  toJSVal = return . unSVGFilterPrimitiveStandardAttributes-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFilterPrimitiveStandardAttributes where-  fromJSVal v = fmap SVGFilterPrimitiveStandardAttributes <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFilterPrimitiveStandardAttributes where-  makeObject = makeObject . unSVGFilterPrimitiveStandardAttributes--instance IsGObject SVGFilterPrimitiveStandardAttributes where-  typeGType _ = gTypeSVGFilterPrimitiveStandardAttributes-  {-# INLINE typeGType #-}--gTypeSVGFilterPrimitiveStandardAttributes :: JSM GType-gTypeSVGFilterPrimitiveStandardAttributes = GType . Object <$> jsg "SVGFilterPrimitiveStandardAttributes"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFitToViewBox".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox Mozilla SVGFitToViewBox documentation>-newtype SVGFitToViewBox = SVGFitToViewBox { unSVGFitToViewBox :: JSVal }--instance PToJSVal SVGFitToViewBox where-  pToJSVal = unSVGFitToViewBox-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFitToViewBox where-  pFromJSVal = SVGFitToViewBox-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFitToViewBox where-  toJSVal = return . unSVGFitToViewBox-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFitToViewBox where-  fromJSVal v = fmap SVGFitToViewBox <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFitToViewBox where-  makeObject = makeObject . unSVGFitToViewBox--instance IsGObject SVGFitToViewBox where-  typeGType _ = gTypeSVGFitToViewBox-  {-# INLINE typeGType #-}--gTypeSVGFitToViewBox :: JSM GType-gTypeSVGFitToViewBox = GType . Object <$> jsg "SVGFitToViewBox"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFontElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontElement Mozilla SVGFontElement documentation>-newtype SVGFontElement = SVGFontElement { unSVGFontElement :: JSVal }--instance PToJSVal SVGFontElement where-  pToJSVal = unSVGFontElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFontElement where-  pFromJSVal = SVGFontElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFontElement where-  toJSVal = return . unSVGFontElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFontElement where-  fromJSVal v = fmap SVGFontElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFontElement where-  makeObject = makeObject . unSVGFontElement--instance IsSVGElement SVGFontElement-instance IsElement SVGFontElement-instance IsNode SVGFontElement-instance IsEventTarget SVGFontElement-instance IsGObject SVGFontElement where-  typeGType _ = gTypeSVGFontElement-  {-# INLINE typeGType #-}--gTypeSVGFontElement :: JSM GType-gTypeSVGFontElement = GType . Object <$> jsg "SVGFontElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFontFaceElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceElement Mozilla SVGFontFaceElement documentation>-newtype SVGFontFaceElement = SVGFontFaceElement { unSVGFontFaceElement :: JSVal }--instance PToJSVal SVGFontFaceElement where-  pToJSVal = unSVGFontFaceElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFontFaceElement where-  pFromJSVal = SVGFontFaceElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFontFaceElement where-  toJSVal = return . unSVGFontFaceElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFontFaceElement where-  fromJSVal v = fmap SVGFontFaceElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFontFaceElement where-  makeObject = makeObject . unSVGFontFaceElement--instance IsSVGElement SVGFontFaceElement-instance IsElement SVGFontFaceElement-instance IsNode SVGFontFaceElement-instance IsEventTarget SVGFontFaceElement-instance IsGObject SVGFontFaceElement where-  typeGType _ = gTypeSVGFontFaceElement-  {-# INLINE typeGType #-}--gTypeSVGFontFaceElement :: JSM GType-gTypeSVGFontFaceElement = GType . Object <$> jsg "SVGFontFaceElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFontFaceFormatElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceFormatElement Mozilla SVGFontFaceFormatElement documentation>-newtype SVGFontFaceFormatElement = SVGFontFaceFormatElement { unSVGFontFaceFormatElement :: JSVal }--instance PToJSVal SVGFontFaceFormatElement where-  pToJSVal = unSVGFontFaceFormatElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFontFaceFormatElement where-  pFromJSVal = SVGFontFaceFormatElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFontFaceFormatElement where-  toJSVal = return . unSVGFontFaceFormatElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFontFaceFormatElement where-  fromJSVal v = fmap SVGFontFaceFormatElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFontFaceFormatElement where-  makeObject = makeObject . unSVGFontFaceFormatElement--instance IsSVGElement SVGFontFaceFormatElement-instance IsElement SVGFontFaceFormatElement-instance IsNode SVGFontFaceFormatElement-instance IsEventTarget SVGFontFaceFormatElement-instance IsGObject SVGFontFaceFormatElement where-  typeGType _ = gTypeSVGFontFaceFormatElement-  {-# INLINE typeGType #-}--gTypeSVGFontFaceFormatElement :: JSM GType-gTypeSVGFontFaceFormatElement = GType . Object <$> jsg "SVGFontFaceFormatElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFontFaceNameElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceNameElement Mozilla SVGFontFaceNameElement documentation>-newtype SVGFontFaceNameElement = SVGFontFaceNameElement { unSVGFontFaceNameElement :: JSVal }--instance PToJSVal SVGFontFaceNameElement where-  pToJSVal = unSVGFontFaceNameElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFontFaceNameElement where-  pFromJSVal = SVGFontFaceNameElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFontFaceNameElement where-  toJSVal = return . unSVGFontFaceNameElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFontFaceNameElement where-  fromJSVal v = fmap SVGFontFaceNameElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFontFaceNameElement where-  makeObject = makeObject . unSVGFontFaceNameElement--instance IsSVGElement SVGFontFaceNameElement-instance IsElement SVGFontFaceNameElement-instance IsNode SVGFontFaceNameElement-instance IsEventTarget SVGFontFaceNameElement-instance IsGObject SVGFontFaceNameElement where-  typeGType _ = gTypeSVGFontFaceNameElement-  {-# INLINE typeGType #-}--gTypeSVGFontFaceNameElement :: JSM GType-gTypeSVGFontFaceNameElement = GType . Object <$> jsg "SVGFontFaceNameElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFontFaceSrcElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceSrcElement Mozilla SVGFontFaceSrcElement documentation>-newtype SVGFontFaceSrcElement = SVGFontFaceSrcElement { unSVGFontFaceSrcElement :: JSVal }--instance PToJSVal SVGFontFaceSrcElement where-  pToJSVal = unSVGFontFaceSrcElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFontFaceSrcElement where-  pFromJSVal = SVGFontFaceSrcElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFontFaceSrcElement where-  toJSVal = return . unSVGFontFaceSrcElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFontFaceSrcElement where-  fromJSVal v = fmap SVGFontFaceSrcElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFontFaceSrcElement where-  makeObject = makeObject . unSVGFontFaceSrcElement--instance IsSVGElement SVGFontFaceSrcElement-instance IsElement SVGFontFaceSrcElement-instance IsNode SVGFontFaceSrcElement-instance IsEventTarget SVGFontFaceSrcElement-instance IsGObject SVGFontFaceSrcElement where-  typeGType _ = gTypeSVGFontFaceSrcElement-  {-# INLINE typeGType #-}--gTypeSVGFontFaceSrcElement :: JSM GType-gTypeSVGFontFaceSrcElement = GType . Object <$> jsg "SVGFontFaceSrcElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGFontFaceUriElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceUriElement Mozilla SVGFontFaceUriElement documentation>-newtype SVGFontFaceUriElement = SVGFontFaceUriElement { unSVGFontFaceUriElement :: JSVal }--instance PToJSVal SVGFontFaceUriElement where-  pToJSVal = unSVGFontFaceUriElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGFontFaceUriElement where-  pFromJSVal = SVGFontFaceUriElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGFontFaceUriElement where-  toJSVal = return . unSVGFontFaceUriElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGFontFaceUriElement where-  fromJSVal v = fmap SVGFontFaceUriElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGFontFaceUriElement where-  makeObject = makeObject . unSVGFontFaceUriElement--instance IsSVGElement SVGFontFaceUriElement-instance IsElement SVGFontFaceUriElement-instance IsNode SVGFontFaceUriElement-instance IsEventTarget SVGFontFaceUriElement-instance IsGObject SVGFontFaceUriElement where-  typeGType _ = gTypeSVGFontFaceUriElement-  {-# INLINE typeGType #-}--gTypeSVGFontFaceUriElement :: JSM GType-gTypeSVGFontFaceUriElement = GType . Object <$> jsg "SVGFontFaceUriElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGForeignObjectElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement Mozilla SVGForeignObjectElement documentation>-newtype SVGForeignObjectElement = SVGForeignObjectElement { unSVGForeignObjectElement :: JSVal }--instance PToJSVal SVGForeignObjectElement where-  pToJSVal = unSVGForeignObjectElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGForeignObjectElement where-  pFromJSVal = SVGForeignObjectElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGForeignObjectElement where-  toJSVal = return . unSVGForeignObjectElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGForeignObjectElement where-  fromJSVal v = fmap SVGForeignObjectElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGForeignObjectElement where-  makeObject = makeObject . unSVGForeignObjectElement--instance IsSVGGraphicsElement SVGForeignObjectElement-instance IsSVGElement SVGForeignObjectElement-instance IsElement SVGForeignObjectElement-instance IsNode SVGForeignObjectElement-instance IsEventTarget SVGForeignObjectElement-instance IsGObject SVGForeignObjectElement where-  typeGType _ = gTypeSVGForeignObjectElement-  {-# INLINE typeGType #-}--gTypeSVGForeignObjectElement :: JSM GType-gTypeSVGForeignObjectElement = GType . Object <$> jsg "SVGForeignObjectElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGGElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGGElement Mozilla SVGGElement documentation>-newtype SVGGElement = SVGGElement { unSVGGElement :: JSVal }--instance PToJSVal SVGGElement where-  pToJSVal = unSVGGElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGGElement where-  pFromJSVal = SVGGElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGGElement where-  toJSVal = return . unSVGGElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGGElement where-  fromJSVal v = fmap SVGGElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGGElement where-  makeObject = makeObject . unSVGGElement--instance IsSVGGraphicsElement SVGGElement-instance IsSVGElement SVGGElement-instance IsElement SVGGElement-instance IsNode SVGGElement-instance IsEventTarget SVGGElement-instance IsGObject SVGGElement where-  typeGType _ = gTypeSVGGElement-  {-# INLINE typeGType #-}--gTypeSVGGElement :: JSM GType-gTypeSVGGElement = GType . Object <$> jsg "SVGGElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGGlyphElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphElement Mozilla SVGGlyphElement documentation>-newtype SVGGlyphElement = SVGGlyphElement { unSVGGlyphElement :: JSVal }--instance PToJSVal SVGGlyphElement where-  pToJSVal = unSVGGlyphElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGGlyphElement where-  pFromJSVal = SVGGlyphElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGGlyphElement where-  toJSVal = return . unSVGGlyphElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGGlyphElement where-  fromJSVal v = fmap SVGGlyphElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGGlyphElement where-  makeObject = makeObject . unSVGGlyphElement--instance IsSVGElement SVGGlyphElement-instance IsElement SVGGlyphElement-instance IsNode SVGGlyphElement-instance IsEventTarget SVGGlyphElement-instance IsGObject SVGGlyphElement where-  typeGType _ = gTypeSVGGlyphElement-  {-# INLINE typeGType #-}--gTypeSVGGlyphElement :: JSM GType-gTypeSVGGlyphElement = GType . Object <$> jsg "SVGGlyphElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGGlyphRefElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement Mozilla SVGGlyphRefElement documentation>-newtype SVGGlyphRefElement = SVGGlyphRefElement { unSVGGlyphRefElement :: JSVal }--instance PToJSVal SVGGlyphRefElement where-  pToJSVal = unSVGGlyphRefElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGGlyphRefElement where-  pFromJSVal = SVGGlyphRefElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGGlyphRefElement where-  toJSVal = return . unSVGGlyphRefElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGGlyphRefElement where-  fromJSVal v = fmap SVGGlyphRefElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGGlyphRefElement where-  makeObject = makeObject . unSVGGlyphRefElement--instance IsSVGElement SVGGlyphRefElement-instance IsElement SVGGlyphRefElement-instance IsNode SVGGlyphRefElement-instance IsEventTarget SVGGlyphRefElement-instance IsGObject SVGGlyphRefElement where-  typeGType _ = gTypeSVGGlyphRefElement-  {-# INLINE typeGType #-}--gTypeSVGGlyphRefElement :: JSM GType-gTypeSVGGlyphRefElement = GType . Object <$> jsg "SVGGlyphRefElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGGradientElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement Mozilla SVGGradientElement documentation>-newtype SVGGradientElement = SVGGradientElement { unSVGGradientElement :: JSVal }--instance PToJSVal SVGGradientElement where-  pToJSVal = unSVGGradientElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGGradientElement where-  pFromJSVal = SVGGradientElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGGradientElement where-  toJSVal = return . unSVGGradientElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGGradientElement where-  fromJSVal v = fmap SVGGradientElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGGradientElement where-  makeObject = makeObject . unSVGGradientElement--class IsSVGElement o => IsSVGGradientElement o-toSVGGradientElement :: IsSVGGradientElement o => o -> SVGGradientElement-toSVGGradientElement = SVGGradientElement . coerce--instance IsSVGGradientElement SVGGradientElement-instance IsSVGElement SVGGradientElement-instance IsElement SVGGradientElement-instance IsNode SVGGradientElement-instance IsEventTarget SVGGradientElement-instance IsGObject SVGGradientElement where-  typeGType _ = gTypeSVGGradientElement-  {-# INLINE typeGType #-}--gTypeSVGGradientElement :: JSM GType-gTypeSVGGradientElement = GType . Object <$> jsg "SVGGradientElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGGraphicsElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement Mozilla SVGGraphicsElement documentation>-newtype SVGGraphicsElement = SVGGraphicsElement { unSVGGraphicsElement :: JSVal }--instance PToJSVal SVGGraphicsElement where-  pToJSVal = unSVGGraphicsElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGGraphicsElement where-  pFromJSVal = SVGGraphicsElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGGraphicsElement where-  toJSVal = return . unSVGGraphicsElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGGraphicsElement where-  fromJSVal v = fmap SVGGraphicsElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGGraphicsElement where-  makeObject = makeObject . unSVGGraphicsElement--class IsSVGElement o => IsSVGGraphicsElement o-toSVGGraphicsElement :: IsSVGGraphicsElement o => o -> SVGGraphicsElement-toSVGGraphicsElement = SVGGraphicsElement . coerce--instance IsSVGGraphicsElement SVGGraphicsElement-instance IsSVGElement SVGGraphicsElement-instance IsElement SVGGraphicsElement-instance IsNode SVGGraphicsElement-instance IsEventTarget SVGGraphicsElement-instance IsGObject SVGGraphicsElement where-  typeGType _ = gTypeSVGGraphicsElement-  {-# INLINE typeGType #-}--gTypeSVGGraphicsElement :: JSM GType-gTypeSVGGraphicsElement = GType . Object <$> jsg "SVGGraphicsElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGHKernElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGHKernElement Mozilla SVGHKernElement documentation>-newtype SVGHKernElement = SVGHKernElement { unSVGHKernElement :: JSVal }--instance PToJSVal SVGHKernElement where-  pToJSVal = unSVGHKernElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGHKernElement where-  pFromJSVal = SVGHKernElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGHKernElement where-  toJSVal = return . unSVGHKernElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGHKernElement where-  fromJSVal v = fmap SVGHKernElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGHKernElement where-  makeObject = makeObject . unSVGHKernElement--instance IsSVGElement SVGHKernElement-instance IsElement SVGHKernElement-instance IsNode SVGHKernElement-instance IsEventTarget SVGHKernElement-instance IsGObject SVGHKernElement where-  typeGType _ = gTypeSVGHKernElement-  {-# INLINE typeGType #-}--gTypeSVGHKernElement :: JSM GType-gTypeSVGHKernElement = GType . Object <$> jsg "SVGHKernElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGImageElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement Mozilla SVGImageElement documentation>-newtype SVGImageElement = SVGImageElement { unSVGImageElement :: JSVal }--instance PToJSVal SVGImageElement where-  pToJSVal = unSVGImageElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGImageElement where-  pFromJSVal = SVGImageElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGImageElement where-  toJSVal = return . unSVGImageElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGImageElement where-  fromJSVal v = fmap SVGImageElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGImageElement where-  makeObject = makeObject . unSVGImageElement--instance IsSVGGraphicsElement SVGImageElement-instance IsSVGElement SVGImageElement-instance IsElement SVGImageElement-instance IsNode SVGImageElement-instance IsEventTarget SVGImageElement-instance IsGObject SVGImageElement where-  typeGType _ = gTypeSVGImageElement-  {-# INLINE typeGType #-}--gTypeSVGImageElement :: JSM GType-gTypeSVGImageElement = GType . Object <$> jsg "SVGImageElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGLength".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength Mozilla SVGLength documentation>-newtype SVGLength = SVGLength { unSVGLength :: JSVal }--instance PToJSVal SVGLength where-  pToJSVal = unSVGLength-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGLength where-  pFromJSVal = SVGLength-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGLength where-  toJSVal = return . unSVGLength-  {-# INLINE toJSVal #-}--instance FromJSVal SVGLength where-  fromJSVal v = fmap SVGLength <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGLength where-  makeObject = makeObject . unSVGLength--instance IsGObject SVGLength where-  typeGType _ = gTypeSVGLength-  {-# INLINE typeGType #-}--gTypeSVGLength :: JSM GType-gTypeSVGLength = GType . Object <$> jsg "SVGLength"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGLengthList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList Mozilla SVGLengthList documentation>-newtype SVGLengthList = SVGLengthList { unSVGLengthList :: JSVal }--instance PToJSVal SVGLengthList where-  pToJSVal = unSVGLengthList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGLengthList where-  pFromJSVal = SVGLengthList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGLengthList where-  toJSVal = return . unSVGLengthList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGLengthList where-  fromJSVal v = fmap SVGLengthList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGLengthList where-  makeObject = makeObject . unSVGLengthList--instance IsGObject SVGLengthList where-  typeGType _ = gTypeSVGLengthList-  {-# INLINE typeGType #-}--gTypeSVGLengthList :: JSM GType-gTypeSVGLengthList = GType . Object <$> jsg "SVGLengthList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGLineElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement Mozilla SVGLineElement documentation>-newtype SVGLineElement = SVGLineElement { unSVGLineElement :: JSVal }--instance PToJSVal SVGLineElement where-  pToJSVal = unSVGLineElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGLineElement where-  pFromJSVal = SVGLineElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGLineElement where-  toJSVal = return . unSVGLineElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGLineElement where-  fromJSVal v = fmap SVGLineElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGLineElement where-  makeObject = makeObject . unSVGLineElement--instance IsSVGGraphicsElement SVGLineElement-instance IsSVGElement SVGLineElement-instance IsElement SVGLineElement-instance IsNode SVGLineElement-instance IsEventTarget SVGLineElement-instance IsGObject SVGLineElement where-  typeGType _ = gTypeSVGLineElement-  {-# INLINE typeGType #-}--gTypeSVGLineElement :: JSM GType-gTypeSVGLineElement = GType . Object <$> jsg "SVGLineElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGLinearGradientElement".--- Base interface functions are in:------     * "JSDOM.SVGGradientElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement Mozilla SVGLinearGradientElement documentation>-newtype SVGLinearGradientElement = SVGLinearGradientElement { unSVGLinearGradientElement :: JSVal }--instance PToJSVal SVGLinearGradientElement where-  pToJSVal = unSVGLinearGradientElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGLinearGradientElement where-  pFromJSVal = SVGLinearGradientElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGLinearGradientElement where-  toJSVal = return . unSVGLinearGradientElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGLinearGradientElement where-  fromJSVal v = fmap SVGLinearGradientElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGLinearGradientElement where-  makeObject = makeObject . unSVGLinearGradientElement--instance IsSVGGradientElement SVGLinearGradientElement-instance IsSVGElement SVGLinearGradientElement-instance IsElement SVGLinearGradientElement-instance IsNode SVGLinearGradientElement-instance IsEventTarget SVGLinearGradientElement-instance IsGObject SVGLinearGradientElement where-  typeGType _ = gTypeSVGLinearGradientElement-  {-# INLINE typeGType #-}--gTypeSVGLinearGradientElement :: JSM GType-gTypeSVGLinearGradientElement = GType . Object <$> jsg "SVGLinearGradientElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGMPathElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGMPathElement Mozilla SVGMPathElement documentation>-newtype SVGMPathElement = SVGMPathElement { unSVGMPathElement :: JSVal }--instance PToJSVal SVGMPathElement where-  pToJSVal = unSVGMPathElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGMPathElement where-  pFromJSVal = SVGMPathElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGMPathElement where-  toJSVal = return . unSVGMPathElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGMPathElement where-  fromJSVal v = fmap SVGMPathElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGMPathElement where-  makeObject = makeObject . unSVGMPathElement--instance IsSVGElement SVGMPathElement-instance IsElement SVGMPathElement-instance IsNode SVGMPathElement-instance IsEventTarget SVGMPathElement-instance IsGObject SVGMPathElement where-  typeGType _ = gTypeSVGMPathElement-  {-# INLINE typeGType #-}--gTypeSVGMPathElement :: JSM GType-gTypeSVGMPathElement = GType . Object <$> jsg "SVGMPathElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGMarkerElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement Mozilla SVGMarkerElement documentation>-newtype SVGMarkerElement = SVGMarkerElement { unSVGMarkerElement :: JSVal }--instance PToJSVal SVGMarkerElement where-  pToJSVal = unSVGMarkerElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGMarkerElement where-  pFromJSVal = SVGMarkerElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGMarkerElement where-  toJSVal = return . unSVGMarkerElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGMarkerElement where-  fromJSVal v = fmap SVGMarkerElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGMarkerElement where-  makeObject = makeObject . unSVGMarkerElement--instance IsSVGElement SVGMarkerElement-instance IsElement SVGMarkerElement-instance IsNode SVGMarkerElement-instance IsEventTarget SVGMarkerElement-instance IsGObject SVGMarkerElement where-  typeGType _ = gTypeSVGMarkerElement-  {-# INLINE typeGType #-}--gTypeSVGMarkerElement :: JSM GType-gTypeSVGMarkerElement = GType . Object <$> jsg "SVGMarkerElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGMaskElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement Mozilla SVGMaskElement documentation>-newtype SVGMaskElement = SVGMaskElement { unSVGMaskElement :: JSVal }--instance PToJSVal SVGMaskElement where-  pToJSVal = unSVGMaskElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGMaskElement where-  pFromJSVal = SVGMaskElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGMaskElement where-  toJSVal = return . unSVGMaskElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGMaskElement where-  fromJSVal v = fmap SVGMaskElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGMaskElement where-  makeObject = makeObject . unSVGMaskElement--instance IsSVGElement SVGMaskElement-instance IsElement SVGMaskElement-instance IsNode SVGMaskElement-instance IsEventTarget SVGMaskElement-instance IsGObject SVGMaskElement where-  typeGType _ = gTypeSVGMaskElement-  {-# INLINE typeGType #-}--gTypeSVGMaskElement :: JSM GType-gTypeSVGMaskElement = GType . Object <$> jsg "SVGMaskElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGMatrix".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix Mozilla SVGMatrix documentation>-newtype SVGMatrix = SVGMatrix { unSVGMatrix :: JSVal }--instance PToJSVal SVGMatrix where-  pToJSVal = unSVGMatrix-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGMatrix where-  pFromJSVal = SVGMatrix-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGMatrix where-  toJSVal = return . unSVGMatrix-  {-# INLINE toJSVal #-}--instance FromJSVal SVGMatrix where-  fromJSVal v = fmap SVGMatrix <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGMatrix where-  makeObject = makeObject . unSVGMatrix--instance IsGObject SVGMatrix where-  typeGType _ = gTypeSVGMatrix-  {-# INLINE typeGType #-}--gTypeSVGMatrix :: JSM GType-gTypeSVGMatrix = GType . Object <$> jsg "SVGMatrix"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGMetadataElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGMetadataElement Mozilla SVGMetadataElement documentation>-newtype SVGMetadataElement = SVGMetadataElement { unSVGMetadataElement :: JSVal }--instance PToJSVal SVGMetadataElement where-  pToJSVal = unSVGMetadataElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGMetadataElement where-  pFromJSVal = SVGMetadataElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGMetadataElement where-  toJSVal = return . unSVGMetadataElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGMetadataElement where-  fromJSVal v = fmap SVGMetadataElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGMetadataElement where-  makeObject = makeObject . unSVGMetadataElement--instance IsSVGElement SVGMetadataElement-instance IsElement SVGMetadataElement-instance IsNode SVGMetadataElement-instance IsEventTarget SVGMetadataElement-instance IsGObject SVGMetadataElement where-  typeGType _ = gTypeSVGMetadataElement-  {-# INLINE typeGType #-}--gTypeSVGMetadataElement :: JSM GType-gTypeSVGMetadataElement = GType . Object <$> jsg "SVGMetadataElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGMissingGlyphElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGMissingGlyphElement Mozilla SVGMissingGlyphElement documentation>-newtype SVGMissingGlyphElement = SVGMissingGlyphElement { unSVGMissingGlyphElement :: JSVal }--instance PToJSVal SVGMissingGlyphElement where-  pToJSVal = unSVGMissingGlyphElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGMissingGlyphElement where-  pFromJSVal = SVGMissingGlyphElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGMissingGlyphElement where-  toJSVal = return . unSVGMissingGlyphElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGMissingGlyphElement where-  fromJSVal v = fmap SVGMissingGlyphElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGMissingGlyphElement where-  makeObject = makeObject . unSVGMissingGlyphElement--instance IsSVGElement SVGMissingGlyphElement-instance IsElement SVGMissingGlyphElement-instance IsNode SVGMissingGlyphElement-instance IsEventTarget SVGMissingGlyphElement-instance IsGObject SVGMissingGlyphElement where-  typeGType _ = gTypeSVGMissingGlyphElement-  {-# INLINE typeGType #-}--gTypeSVGMissingGlyphElement :: JSM GType-gTypeSVGMissingGlyphElement = GType . Object <$> jsg "SVGMissingGlyphElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGNumber".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumber Mozilla SVGNumber documentation>-newtype SVGNumber = SVGNumber { unSVGNumber :: JSVal }--instance PToJSVal SVGNumber where-  pToJSVal = unSVGNumber-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGNumber where-  pFromJSVal = SVGNumber-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGNumber where-  toJSVal = return . unSVGNumber-  {-# INLINE toJSVal #-}--instance FromJSVal SVGNumber where-  fromJSVal v = fmap SVGNumber <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGNumber where-  makeObject = makeObject . unSVGNumber--instance IsGObject SVGNumber where-  typeGType _ = gTypeSVGNumber-  {-# INLINE typeGType #-}--gTypeSVGNumber :: JSM GType-gTypeSVGNumber = GType . Object <$> jsg "SVGNumber"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGNumberList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList Mozilla SVGNumberList documentation>-newtype SVGNumberList = SVGNumberList { unSVGNumberList :: JSVal }--instance PToJSVal SVGNumberList where-  pToJSVal = unSVGNumberList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGNumberList where-  pFromJSVal = SVGNumberList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGNumberList where-  toJSVal = return . unSVGNumberList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGNumberList where-  fromJSVal v = fmap SVGNumberList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGNumberList where-  makeObject = makeObject . unSVGNumberList--instance IsGObject SVGNumberList where-  typeGType _ = gTypeSVGNumberList-  {-# INLINE typeGType #-}--gTypeSVGNumberList :: JSM GType-gTypeSVGNumberList = GType . Object <$> jsg "SVGNumberList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPaint".--- Base interface functions are in:------     * "JSDOM.SVGColor"---     * "JSDOM.CSSValue"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint Mozilla SVGPaint documentation>-newtype SVGPaint = SVGPaint { unSVGPaint :: JSVal }--instance PToJSVal SVGPaint where-  pToJSVal = unSVGPaint-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPaint where-  pFromJSVal = SVGPaint-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPaint where-  toJSVal = return . unSVGPaint-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPaint where-  fromJSVal v = fmap SVGPaint <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPaint where-  makeObject = makeObject . unSVGPaint--instance IsSVGColor SVGPaint-instance IsCSSValue SVGPaint-instance IsGObject SVGPaint where-  typeGType _ = gTypeSVGPaint-  {-# INLINE typeGType #-}--gTypeSVGPaint :: JSM GType-gTypeSVGPaint = GType . Object <$> jsg "SVGPaint"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement Mozilla SVGPathElement documentation>-newtype SVGPathElement = SVGPathElement { unSVGPathElement :: JSVal }--instance PToJSVal SVGPathElement where-  pToJSVal = unSVGPathElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathElement where-  pFromJSVal = SVGPathElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathElement where-  toJSVal = return . unSVGPathElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathElement where-  fromJSVal v = fmap SVGPathElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathElement where-  makeObject = makeObject . unSVGPathElement--instance IsSVGGraphicsElement SVGPathElement-instance IsSVGElement SVGPathElement-instance IsElement SVGPathElement-instance IsNode SVGPathElement-instance IsEventTarget SVGPathElement-instance IsGObject SVGPathElement where-  typeGType _ = gTypeSVGPathElement-  {-# INLINE typeGType #-}--gTypeSVGPathElement :: JSM GType-gTypeSVGPathElement = GType . Object <$> jsg "SVGPathElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSeg".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSeg Mozilla SVGPathSeg documentation>-newtype SVGPathSeg = SVGPathSeg { unSVGPathSeg :: JSVal }--instance PToJSVal SVGPathSeg where-  pToJSVal = unSVGPathSeg-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSeg where-  pFromJSVal = SVGPathSeg-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSeg where-  toJSVal = return . unSVGPathSeg-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSeg where-  fromJSVal v = fmap SVGPathSeg <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSeg where-  makeObject = makeObject . unSVGPathSeg--class IsGObject o => IsSVGPathSeg o-toSVGPathSeg :: IsSVGPathSeg o => o -> SVGPathSeg-toSVGPathSeg = SVGPathSeg . coerce--instance IsSVGPathSeg SVGPathSeg-instance IsGObject SVGPathSeg where-  typeGType _ = gTypeSVGPathSeg-  {-# INLINE typeGType #-}--gTypeSVGPathSeg :: JSM GType-gTypeSVGPathSeg = GType . Object <$> jsg "SVGPathSeg"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegArcAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs Mozilla SVGPathSegArcAbs documentation>-newtype SVGPathSegArcAbs = SVGPathSegArcAbs { unSVGPathSegArcAbs :: JSVal }--instance PToJSVal SVGPathSegArcAbs where-  pToJSVal = unSVGPathSegArcAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegArcAbs where-  pFromJSVal = SVGPathSegArcAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegArcAbs where-  toJSVal = return . unSVGPathSegArcAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegArcAbs where-  fromJSVal v = fmap SVGPathSegArcAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegArcAbs where-  makeObject = makeObject . unSVGPathSegArcAbs--instance IsSVGPathSeg SVGPathSegArcAbs-instance IsGObject SVGPathSegArcAbs where-  typeGType _ = gTypeSVGPathSegArcAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegArcAbs :: JSM GType-gTypeSVGPathSegArcAbs = GType . Object <$> jsg "SVGPathSegArcAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegArcRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel Mozilla SVGPathSegArcRel documentation>-newtype SVGPathSegArcRel = SVGPathSegArcRel { unSVGPathSegArcRel :: JSVal }--instance PToJSVal SVGPathSegArcRel where-  pToJSVal = unSVGPathSegArcRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegArcRel where-  pFromJSVal = SVGPathSegArcRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegArcRel where-  toJSVal = return . unSVGPathSegArcRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegArcRel where-  fromJSVal v = fmap SVGPathSegArcRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegArcRel where-  makeObject = makeObject . unSVGPathSegArcRel--instance IsSVGPathSeg SVGPathSegArcRel-instance IsGObject SVGPathSegArcRel where-  typeGType _ = gTypeSVGPathSegArcRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegArcRel :: JSM GType-gTypeSVGPathSegArcRel = GType . Object <$> jsg "SVGPathSegArcRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegClosePath".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegClosePath Mozilla SVGPathSegClosePath documentation>-newtype SVGPathSegClosePath = SVGPathSegClosePath { unSVGPathSegClosePath :: JSVal }--instance PToJSVal SVGPathSegClosePath where-  pToJSVal = unSVGPathSegClosePath-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegClosePath where-  pFromJSVal = SVGPathSegClosePath-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegClosePath where-  toJSVal = return . unSVGPathSegClosePath-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegClosePath where-  fromJSVal v = fmap SVGPathSegClosePath <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegClosePath where-  makeObject = makeObject . unSVGPathSegClosePath--instance IsSVGPathSeg SVGPathSegClosePath-instance IsGObject SVGPathSegClosePath where-  typeGType _ = gTypeSVGPathSegClosePath-  {-# INLINE typeGType #-}--gTypeSVGPathSegClosePath :: JSM GType-gTypeSVGPathSegClosePath = GType . Object <$> jsg "SVGPathSegClosePath"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs Mozilla SVGPathSegCurvetoCubicAbs documentation>-newtype SVGPathSegCurvetoCubicAbs = SVGPathSegCurvetoCubicAbs { unSVGPathSegCurvetoCubicAbs :: JSVal }--instance PToJSVal SVGPathSegCurvetoCubicAbs where-  pToJSVal = unSVGPathSegCurvetoCubicAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoCubicAbs where-  pFromJSVal = SVGPathSegCurvetoCubicAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoCubicAbs where-  toJSVal = return . unSVGPathSegCurvetoCubicAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoCubicAbs where-  fromJSVal v = fmap SVGPathSegCurvetoCubicAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoCubicAbs where-  makeObject = makeObject . unSVGPathSegCurvetoCubicAbs--instance IsSVGPathSeg SVGPathSegCurvetoCubicAbs-instance IsGObject SVGPathSegCurvetoCubicAbs where-  typeGType _ = gTypeSVGPathSegCurvetoCubicAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoCubicAbs :: JSM GType-gTypeSVGPathSegCurvetoCubicAbs = GType . Object <$> jsg "SVGPathSegCurvetoCubicAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel Mozilla SVGPathSegCurvetoCubicRel documentation>-newtype SVGPathSegCurvetoCubicRel = SVGPathSegCurvetoCubicRel { unSVGPathSegCurvetoCubicRel :: JSVal }--instance PToJSVal SVGPathSegCurvetoCubicRel where-  pToJSVal = unSVGPathSegCurvetoCubicRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoCubicRel where-  pFromJSVal = SVGPathSegCurvetoCubicRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoCubicRel where-  toJSVal = return . unSVGPathSegCurvetoCubicRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoCubicRel where-  fromJSVal v = fmap SVGPathSegCurvetoCubicRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoCubicRel where-  makeObject = makeObject . unSVGPathSegCurvetoCubicRel--instance IsSVGPathSeg SVGPathSegCurvetoCubicRel-instance IsGObject SVGPathSegCurvetoCubicRel where-  typeGType _ = gTypeSVGPathSegCurvetoCubicRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoCubicRel :: JSM GType-gTypeSVGPathSegCurvetoCubicRel = GType . Object <$> jsg "SVGPathSegCurvetoCubicRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicSmoothAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathSegCurvetoCubicSmoothAbs documentation>-newtype SVGPathSegCurvetoCubicSmoothAbs = SVGPathSegCurvetoCubicSmoothAbs { unSVGPathSegCurvetoCubicSmoothAbs :: JSVal }--instance PToJSVal SVGPathSegCurvetoCubicSmoothAbs where-  pToJSVal = unSVGPathSegCurvetoCubicSmoothAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoCubicSmoothAbs where-  pFromJSVal = SVGPathSegCurvetoCubicSmoothAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoCubicSmoothAbs where-  toJSVal = return . unSVGPathSegCurvetoCubicSmoothAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoCubicSmoothAbs where-  fromJSVal v = fmap SVGPathSegCurvetoCubicSmoothAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoCubicSmoothAbs where-  makeObject = makeObject . unSVGPathSegCurvetoCubicSmoothAbs--instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothAbs-instance IsGObject SVGPathSegCurvetoCubicSmoothAbs where-  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoCubicSmoothAbs :: JSM GType-gTypeSVGPathSegCurvetoCubicSmoothAbs = GType . Object <$> jsg "SVGPathSegCurvetoCubicSmoothAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicSmoothRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathSegCurvetoCubicSmoothRel documentation>-newtype SVGPathSegCurvetoCubicSmoothRel = SVGPathSegCurvetoCubicSmoothRel { unSVGPathSegCurvetoCubicSmoothRel :: JSVal }--instance PToJSVal SVGPathSegCurvetoCubicSmoothRel where-  pToJSVal = unSVGPathSegCurvetoCubicSmoothRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoCubicSmoothRel where-  pFromJSVal = SVGPathSegCurvetoCubicSmoothRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoCubicSmoothRel where-  toJSVal = return . unSVGPathSegCurvetoCubicSmoothRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoCubicSmoothRel where-  fromJSVal v = fmap SVGPathSegCurvetoCubicSmoothRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoCubicSmoothRel where-  makeObject = makeObject . unSVGPathSegCurvetoCubicSmoothRel--instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothRel-instance IsGObject SVGPathSegCurvetoCubicSmoothRel where-  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoCubicSmoothRel :: JSM GType-gTypeSVGPathSegCurvetoCubicSmoothRel = GType . Object <$> jsg "SVGPathSegCurvetoCubicSmoothRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs Mozilla SVGPathSegCurvetoQuadraticAbs documentation>-newtype SVGPathSegCurvetoQuadraticAbs = SVGPathSegCurvetoQuadraticAbs { unSVGPathSegCurvetoQuadraticAbs :: JSVal }--instance PToJSVal SVGPathSegCurvetoQuadraticAbs where-  pToJSVal = unSVGPathSegCurvetoQuadraticAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoQuadraticAbs where-  pFromJSVal = SVGPathSegCurvetoQuadraticAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoQuadraticAbs where-  toJSVal = return . unSVGPathSegCurvetoQuadraticAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoQuadraticAbs where-  fromJSVal v = fmap SVGPathSegCurvetoQuadraticAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoQuadraticAbs where-  makeObject = makeObject . unSVGPathSegCurvetoQuadraticAbs--instance IsSVGPathSeg SVGPathSegCurvetoQuadraticAbs-instance IsGObject SVGPathSegCurvetoQuadraticAbs where-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoQuadraticAbs :: JSM GType-gTypeSVGPathSegCurvetoQuadraticAbs = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel Mozilla SVGPathSegCurvetoQuadraticRel documentation>-newtype SVGPathSegCurvetoQuadraticRel = SVGPathSegCurvetoQuadraticRel { unSVGPathSegCurvetoQuadraticRel :: JSVal }--instance PToJSVal SVGPathSegCurvetoQuadraticRel where-  pToJSVal = unSVGPathSegCurvetoQuadraticRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoQuadraticRel where-  pFromJSVal = SVGPathSegCurvetoQuadraticRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoQuadraticRel where-  toJSVal = return . unSVGPathSegCurvetoQuadraticRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoQuadraticRel where-  fromJSVal v = fmap SVGPathSegCurvetoQuadraticRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoQuadraticRel where-  makeObject = makeObject . unSVGPathSegCurvetoQuadraticRel--instance IsSVGPathSeg SVGPathSegCurvetoQuadraticRel-instance IsGObject SVGPathSegCurvetoQuadraticRel where-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoQuadraticRel :: JSM GType-gTypeSVGPathSegCurvetoQuadraticRel = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticSmoothAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathSegCurvetoQuadraticSmoothAbs documentation>-newtype SVGPathSegCurvetoQuadraticSmoothAbs = SVGPathSegCurvetoQuadraticSmoothAbs { unSVGPathSegCurvetoQuadraticSmoothAbs :: JSVal }--instance PToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where-  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where-  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where-  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where-  fromJSVal v = fmap SVGPathSegCurvetoQuadraticSmoothAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoQuadraticSmoothAbs where-  makeObject = makeObject . unSVGPathSegCurvetoQuadraticSmoothAbs--instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothAbs-instance IsGObject SVGPathSegCurvetoQuadraticSmoothAbs where-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoQuadraticSmoothAbs :: JSM GType-gTypeSVGPathSegCurvetoQuadraticSmoothAbs = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticSmoothAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticSmoothRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathSegCurvetoQuadraticSmoothRel documentation>-newtype SVGPathSegCurvetoQuadraticSmoothRel = SVGPathSegCurvetoQuadraticSmoothRel { unSVGPathSegCurvetoQuadraticSmoothRel :: JSVal }--instance PToJSVal SVGPathSegCurvetoQuadraticSmoothRel where-  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothRel where-  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegCurvetoQuadraticSmoothRel where-  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegCurvetoQuadraticSmoothRel where-  fromJSVal v = fmap SVGPathSegCurvetoQuadraticSmoothRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegCurvetoQuadraticSmoothRel where-  makeObject = makeObject . unSVGPathSegCurvetoQuadraticSmoothRel--instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothRel-instance IsGObject SVGPathSegCurvetoQuadraticSmoothRel where-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegCurvetoQuadraticSmoothRel :: JSM GType-gTypeSVGPathSegCurvetoQuadraticSmoothRel = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticSmoothRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs Mozilla SVGPathSegLinetoAbs documentation>-newtype SVGPathSegLinetoAbs = SVGPathSegLinetoAbs { unSVGPathSegLinetoAbs :: JSVal }--instance PToJSVal SVGPathSegLinetoAbs where-  pToJSVal = unSVGPathSegLinetoAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegLinetoAbs where-  pFromJSVal = SVGPathSegLinetoAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegLinetoAbs where-  toJSVal = return . unSVGPathSegLinetoAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegLinetoAbs where-  fromJSVal v = fmap SVGPathSegLinetoAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegLinetoAbs where-  makeObject = makeObject . unSVGPathSegLinetoAbs--instance IsSVGPathSeg SVGPathSegLinetoAbs-instance IsGObject SVGPathSegLinetoAbs where-  typeGType _ = gTypeSVGPathSegLinetoAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegLinetoAbs :: JSM GType-gTypeSVGPathSegLinetoAbs = GType . Object <$> jsg "SVGPathSegLinetoAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoHorizontalAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalAbs Mozilla SVGPathSegLinetoHorizontalAbs documentation>-newtype SVGPathSegLinetoHorizontalAbs = SVGPathSegLinetoHorizontalAbs { unSVGPathSegLinetoHorizontalAbs :: JSVal }--instance PToJSVal SVGPathSegLinetoHorizontalAbs where-  pToJSVal = unSVGPathSegLinetoHorizontalAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegLinetoHorizontalAbs where-  pFromJSVal = SVGPathSegLinetoHorizontalAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegLinetoHorizontalAbs where-  toJSVal = return . unSVGPathSegLinetoHorizontalAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegLinetoHorizontalAbs where-  fromJSVal v = fmap SVGPathSegLinetoHorizontalAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegLinetoHorizontalAbs where-  makeObject = makeObject . unSVGPathSegLinetoHorizontalAbs--instance IsSVGPathSeg SVGPathSegLinetoHorizontalAbs-instance IsGObject SVGPathSegLinetoHorizontalAbs where-  typeGType _ = gTypeSVGPathSegLinetoHorizontalAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegLinetoHorizontalAbs :: JSM GType-gTypeSVGPathSegLinetoHorizontalAbs = GType . Object <$> jsg "SVGPathSegLinetoHorizontalAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoHorizontalRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalRel Mozilla SVGPathSegLinetoHorizontalRel documentation>-newtype SVGPathSegLinetoHorizontalRel = SVGPathSegLinetoHorizontalRel { unSVGPathSegLinetoHorizontalRel :: JSVal }--instance PToJSVal SVGPathSegLinetoHorizontalRel where-  pToJSVal = unSVGPathSegLinetoHorizontalRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegLinetoHorizontalRel where-  pFromJSVal = SVGPathSegLinetoHorizontalRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegLinetoHorizontalRel where-  toJSVal = return . unSVGPathSegLinetoHorizontalRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegLinetoHorizontalRel where-  fromJSVal v = fmap SVGPathSegLinetoHorizontalRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegLinetoHorizontalRel where-  makeObject = makeObject . unSVGPathSegLinetoHorizontalRel--instance IsSVGPathSeg SVGPathSegLinetoHorizontalRel-instance IsGObject SVGPathSegLinetoHorizontalRel where-  typeGType _ = gTypeSVGPathSegLinetoHorizontalRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegLinetoHorizontalRel :: JSM GType-gTypeSVGPathSegLinetoHorizontalRel = GType . Object <$> jsg "SVGPathSegLinetoHorizontalRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel Mozilla SVGPathSegLinetoRel documentation>-newtype SVGPathSegLinetoRel = SVGPathSegLinetoRel { unSVGPathSegLinetoRel :: JSVal }--instance PToJSVal SVGPathSegLinetoRel where-  pToJSVal = unSVGPathSegLinetoRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegLinetoRel where-  pFromJSVal = SVGPathSegLinetoRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegLinetoRel where-  toJSVal = return . unSVGPathSegLinetoRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegLinetoRel where-  fromJSVal v = fmap SVGPathSegLinetoRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegLinetoRel where-  makeObject = makeObject . unSVGPathSegLinetoRel--instance IsSVGPathSeg SVGPathSegLinetoRel-instance IsGObject SVGPathSegLinetoRel where-  typeGType _ = gTypeSVGPathSegLinetoRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegLinetoRel :: JSM GType-gTypeSVGPathSegLinetoRel = GType . Object <$> jsg "SVGPathSegLinetoRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoVerticalAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalAbs Mozilla SVGPathSegLinetoVerticalAbs documentation>-newtype SVGPathSegLinetoVerticalAbs = SVGPathSegLinetoVerticalAbs { unSVGPathSegLinetoVerticalAbs :: JSVal }--instance PToJSVal SVGPathSegLinetoVerticalAbs where-  pToJSVal = unSVGPathSegLinetoVerticalAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegLinetoVerticalAbs where-  pFromJSVal = SVGPathSegLinetoVerticalAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegLinetoVerticalAbs where-  toJSVal = return . unSVGPathSegLinetoVerticalAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegLinetoVerticalAbs where-  fromJSVal v = fmap SVGPathSegLinetoVerticalAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegLinetoVerticalAbs where-  makeObject = makeObject . unSVGPathSegLinetoVerticalAbs--instance IsSVGPathSeg SVGPathSegLinetoVerticalAbs-instance IsGObject SVGPathSegLinetoVerticalAbs where-  typeGType _ = gTypeSVGPathSegLinetoVerticalAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegLinetoVerticalAbs :: JSM GType-gTypeSVGPathSegLinetoVerticalAbs = GType . Object <$> jsg "SVGPathSegLinetoVerticalAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoVerticalRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalRel Mozilla SVGPathSegLinetoVerticalRel documentation>-newtype SVGPathSegLinetoVerticalRel = SVGPathSegLinetoVerticalRel { unSVGPathSegLinetoVerticalRel :: JSVal }--instance PToJSVal SVGPathSegLinetoVerticalRel where-  pToJSVal = unSVGPathSegLinetoVerticalRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegLinetoVerticalRel where-  pFromJSVal = SVGPathSegLinetoVerticalRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegLinetoVerticalRel where-  toJSVal = return . unSVGPathSegLinetoVerticalRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegLinetoVerticalRel where-  fromJSVal v = fmap SVGPathSegLinetoVerticalRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegLinetoVerticalRel where-  makeObject = makeObject . unSVGPathSegLinetoVerticalRel--instance IsSVGPathSeg SVGPathSegLinetoVerticalRel-instance IsGObject SVGPathSegLinetoVerticalRel where-  typeGType _ = gTypeSVGPathSegLinetoVerticalRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegLinetoVerticalRel :: JSM GType-gTypeSVGPathSegLinetoVerticalRel = GType . Object <$> jsg "SVGPathSegLinetoVerticalRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList Mozilla SVGPathSegList documentation>-newtype SVGPathSegList = SVGPathSegList { unSVGPathSegList :: JSVal }--instance PToJSVal SVGPathSegList where-  pToJSVal = unSVGPathSegList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegList where-  pFromJSVal = SVGPathSegList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegList where-  toJSVal = return . unSVGPathSegList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegList where-  fromJSVal v = fmap SVGPathSegList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegList where-  makeObject = makeObject . unSVGPathSegList--instance IsGObject SVGPathSegList where-  typeGType _ = gTypeSVGPathSegList-  {-# INLINE typeGType #-}--gTypeSVGPathSegList :: JSM GType-gTypeSVGPathSegList = GType . Object <$> jsg "SVGPathSegList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegMovetoAbs".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs Mozilla SVGPathSegMovetoAbs documentation>-newtype SVGPathSegMovetoAbs = SVGPathSegMovetoAbs { unSVGPathSegMovetoAbs :: JSVal }--instance PToJSVal SVGPathSegMovetoAbs where-  pToJSVal = unSVGPathSegMovetoAbs-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegMovetoAbs where-  pFromJSVal = SVGPathSegMovetoAbs-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegMovetoAbs where-  toJSVal = return . unSVGPathSegMovetoAbs-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegMovetoAbs where-  fromJSVal v = fmap SVGPathSegMovetoAbs <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegMovetoAbs where-  makeObject = makeObject . unSVGPathSegMovetoAbs--instance IsSVGPathSeg SVGPathSegMovetoAbs-instance IsGObject SVGPathSegMovetoAbs where-  typeGType _ = gTypeSVGPathSegMovetoAbs-  {-# INLINE typeGType #-}--gTypeSVGPathSegMovetoAbs :: JSM GType-gTypeSVGPathSegMovetoAbs = GType . Object <$> jsg "SVGPathSegMovetoAbs"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPathSegMovetoRel".--- Base interface functions are in:------     * "JSDOM.SVGPathSeg"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel Mozilla SVGPathSegMovetoRel documentation>-newtype SVGPathSegMovetoRel = SVGPathSegMovetoRel { unSVGPathSegMovetoRel :: JSVal }--instance PToJSVal SVGPathSegMovetoRel where-  pToJSVal = unSVGPathSegMovetoRel-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPathSegMovetoRel where-  pFromJSVal = SVGPathSegMovetoRel-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPathSegMovetoRel where-  toJSVal = return . unSVGPathSegMovetoRel-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPathSegMovetoRel where-  fromJSVal v = fmap SVGPathSegMovetoRel <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPathSegMovetoRel where-  makeObject = makeObject . unSVGPathSegMovetoRel--instance IsSVGPathSeg SVGPathSegMovetoRel-instance IsGObject SVGPathSegMovetoRel where-  typeGType _ = gTypeSVGPathSegMovetoRel-  {-# INLINE typeGType #-}--gTypeSVGPathSegMovetoRel :: JSM GType-gTypeSVGPathSegMovetoRel = GType . Object <$> jsg "SVGPathSegMovetoRel"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPatternElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement Mozilla SVGPatternElement documentation>-newtype SVGPatternElement = SVGPatternElement { unSVGPatternElement :: JSVal }--instance PToJSVal SVGPatternElement where-  pToJSVal = unSVGPatternElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPatternElement where-  pFromJSVal = SVGPatternElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPatternElement where-  toJSVal = return . unSVGPatternElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPatternElement where-  fromJSVal v = fmap SVGPatternElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPatternElement where-  makeObject = makeObject . unSVGPatternElement--instance IsSVGElement SVGPatternElement-instance IsElement SVGPatternElement-instance IsNode SVGPatternElement-instance IsEventTarget SVGPatternElement-instance IsGObject SVGPatternElement where-  typeGType _ = gTypeSVGPatternElement-  {-# INLINE typeGType #-}--gTypeSVGPatternElement :: JSM GType-gTypeSVGPatternElement = GType . Object <$> jsg "SVGPatternElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPoint".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint Mozilla SVGPoint documentation>-newtype SVGPoint = SVGPoint { unSVGPoint :: JSVal }--instance PToJSVal SVGPoint where-  pToJSVal = unSVGPoint-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPoint where-  pFromJSVal = SVGPoint-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPoint where-  toJSVal = return . unSVGPoint-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPoint where-  fromJSVal v = fmap SVGPoint <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPoint where-  makeObject = makeObject . unSVGPoint--instance IsGObject SVGPoint where-  typeGType _ = gTypeSVGPoint-  {-# INLINE typeGType #-}--gTypeSVGPoint :: JSM GType-gTypeSVGPoint = GType . Object <$> jsg "SVGPoint"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPointList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList Mozilla SVGPointList documentation>-newtype SVGPointList = SVGPointList { unSVGPointList :: JSVal }--instance PToJSVal SVGPointList where-  pToJSVal = unSVGPointList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPointList where-  pFromJSVal = SVGPointList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPointList where-  toJSVal = return . unSVGPointList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPointList where-  fromJSVal v = fmap SVGPointList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPointList where-  makeObject = makeObject . unSVGPointList--instance IsGObject SVGPointList where-  typeGType _ = gTypeSVGPointList-  {-# INLINE typeGType #-}--gTypeSVGPointList :: JSM GType-gTypeSVGPointList = GType . Object <$> jsg "SVGPointList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPolygonElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement Mozilla SVGPolygonElement documentation>-newtype SVGPolygonElement = SVGPolygonElement { unSVGPolygonElement :: JSVal }--instance PToJSVal SVGPolygonElement where-  pToJSVal = unSVGPolygonElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPolygonElement where-  pFromJSVal = SVGPolygonElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPolygonElement where-  toJSVal = return . unSVGPolygonElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPolygonElement where-  fromJSVal v = fmap SVGPolygonElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPolygonElement where-  makeObject = makeObject . unSVGPolygonElement--instance IsSVGGraphicsElement SVGPolygonElement-instance IsSVGElement SVGPolygonElement-instance IsElement SVGPolygonElement-instance IsNode SVGPolygonElement-instance IsEventTarget SVGPolygonElement-instance IsGObject SVGPolygonElement where-  typeGType _ = gTypeSVGPolygonElement-  {-# INLINE typeGType #-}--gTypeSVGPolygonElement :: JSM GType-gTypeSVGPolygonElement = GType . Object <$> jsg "SVGPolygonElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPolylineElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement Mozilla SVGPolylineElement documentation>-newtype SVGPolylineElement = SVGPolylineElement { unSVGPolylineElement :: JSVal }--instance PToJSVal SVGPolylineElement where-  pToJSVal = unSVGPolylineElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPolylineElement where-  pFromJSVal = SVGPolylineElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPolylineElement where-  toJSVal = return . unSVGPolylineElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPolylineElement where-  fromJSVal v = fmap SVGPolylineElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPolylineElement where-  makeObject = makeObject . unSVGPolylineElement--instance IsSVGGraphicsElement SVGPolylineElement-instance IsSVGElement SVGPolylineElement-instance IsElement SVGPolylineElement-instance IsNode SVGPolylineElement-instance IsEventTarget SVGPolylineElement-instance IsGObject SVGPolylineElement where-  typeGType _ = gTypeSVGPolylineElement-  {-# INLINE typeGType #-}--gTypeSVGPolylineElement :: JSM GType-gTypeSVGPolylineElement = GType . Object <$> jsg "SVGPolylineElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGPreserveAspectRatio".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio Mozilla SVGPreserveAspectRatio documentation>-newtype SVGPreserveAspectRatio = SVGPreserveAspectRatio { unSVGPreserveAspectRatio :: JSVal }--instance PToJSVal SVGPreserveAspectRatio where-  pToJSVal = unSVGPreserveAspectRatio-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGPreserveAspectRatio where-  pFromJSVal = SVGPreserveAspectRatio-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGPreserveAspectRatio where-  toJSVal = return . unSVGPreserveAspectRatio-  {-# INLINE toJSVal #-}--instance FromJSVal SVGPreserveAspectRatio where-  fromJSVal v = fmap SVGPreserveAspectRatio <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGPreserveAspectRatio where-  makeObject = makeObject . unSVGPreserveAspectRatio--instance IsGObject SVGPreserveAspectRatio where-  typeGType _ = gTypeSVGPreserveAspectRatio-  {-# INLINE typeGType #-}--gTypeSVGPreserveAspectRatio :: JSM GType-gTypeSVGPreserveAspectRatio = GType . Object <$> jsg "SVGPreserveAspectRatio"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGRadialGradientElement".--- Base interface functions are in:------     * "JSDOM.SVGGradientElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement Mozilla SVGRadialGradientElement documentation>-newtype SVGRadialGradientElement = SVGRadialGradientElement { unSVGRadialGradientElement :: JSVal }--instance PToJSVal SVGRadialGradientElement where-  pToJSVal = unSVGRadialGradientElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGRadialGradientElement where-  pFromJSVal = SVGRadialGradientElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGRadialGradientElement where-  toJSVal = return . unSVGRadialGradientElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGRadialGradientElement where-  fromJSVal v = fmap SVGRadialGradientElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGRadialGradientElement where-  makeObject = makeObject . unSVGRadialGradientElement--instance IsSVGGradientElement SVGRadialGradientElement-instance IsSVGElement SVGRadialGradientElement-instance IsElement SVGRadialGradientElement-instance IsNode SVGRadialGradientElement-instance IsEventTarget SVGRadialGradientElement-instance IsGObject SVGRadialGradientElement where-  typeGType _ = gTypeSVGRadialGradientElement-  {-# INLINE typeGType #-}--gTypeSVGRadialGradientElement :: JSM GType-gTypeSVGRadialGradientElement = GType . Object <$> jsg "SVGRadialGradientElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGRect".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect Mozilla SVGRect documentation>-newtype SVGRect = SVGRect { unSVGRect :: JSVal }--instance PToJSVal SVGRect where-  pToJSVal = unSVGRect-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGRect where-  pFromJSVal = SVGRect-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGRect where-  toJSVal = return . unSVGRect-  {-# INLINE toJSVal #-}--instance FromJSVal SVGRect where-  fromJSVal v = fmap SVGRect <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGRect where-  makeObject = makeObject . unSVGRect--instance IsGObject SVGRect where-  typeGType _ = gTypeSVGRect-  {-# INLINE typeGType #-}--gTypeSVGRect :: JSM GType-gTypeSVGRect = GType . Object <$> jsg "SVGRect"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGRectElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement Mozilla SVGRectElement documentation>-newtype SVGRectElement = SVGRectElement { unSVGRectElement :: JSVal }--instance PToJSVal SVGRectElement where-  pToJSVal = unSVGRectElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGRectElement where-  pFromJSVal = SVGRectElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGRectElement where-  toJSVal = return . unSVGRectElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGRectElement where-  fromJSVal v = fmap SVGRectElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGRectElement where-  makeObject = makeObject . unSVGRectElement--instance IsSVGGraphicsElement SVGRectElement-instance IsSVGElement SVGRectElement-instance IsElement SVGRectElement-instance IsNode SVGRectElement-instance IsEventTarget SVGRectElement-instance IsGObject SVGRectElement where-  typeGType _ = gTypeSVGRectElement-  {-# INLINE typeGType #-}--gTypeSVGRectElement :: JSM GType-gTypeSVGRectElement = GType . Object <$> jsg "SVGRectElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGRenderingIntent".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGRenderingIntent Mozilla SVGRenderingIntent documentation>-newtype SVGRenderingIntent = SVGRenderingIntent { unSVGRenderingIntent :: JSVal }--instance PToJSVal SVGRenderingIntent where-  pToJSVal = unSVGRenderingIntent-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGRenderingIntent where-  pFromJSVal = SVGRenderingIntent-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGRenderingIntent where-  toJSVal = return . unSVGRenderingIntent-  {-# INLINE toJSVal #-}--instance FromJSVal SVGRenderingIntent where-  fromJSVal v = fmap SVGRenderingIntent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGRenderingIntent where-  makeObject = makeObject . unSVGRenderingIntent--instance IsGObject SVGRenderingIntent where-  typeGType _ = gTypeSVGRenderingIntent-  {-# INLINE typeGType #-}--gTypeSVGRenderingIntent :: JSM GType-gTypeSVGRenderingIntent = GType . Object <$> jsg "SVGRenderingIntent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGSVGElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement Mozilla SVGSVGElement documentation>-newtype SVGSVGElement = SVGSVGElement { unSVGSVGElement :: JSVal }--instance PToJSVal SVGSVGElement where-  pToJSVal = unSVGSVGElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGSVGElement where-  pFromJSVal = SVGSVGElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGSVGElement where-  toJSVal = return . unSVGSVGElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGSVGElement where-  fromJSVal v = fmap SVGSVGElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGSVGElement where-  makeObject = makeObject . unSVGSVGElement--instance IsSVGGraphicsElement SVGSVGElement-instance IsSVGElement SVGSVGElement-instance IsElement SVGSVGElement-instance IsNode SVGSVGElement-instance IsEventTarget SVGSVGElement-instance IsGObject SVGSVGElement where-  typeGType _ = gTypeSVGSVGElement-  {-# INLINE typeGType #-}--gTypeSVGSVGElement :: JSM GType-gTypeSVGSVGElement = GType . Object <$> jsg "SVGSVGElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGScriptElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement Mozilla SVGScriptElement documentation>-newtype SVGScriptElement = SVGScriptElement { unSVGScriptElement :: JSVal }--instance PToJSVal SVGScriptElement where-  pToJSVal = unSVGScriptElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGScriptElement where-  pFromJSVal = SVGScriptElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGScriptElement where-  toJSVal = return . unSVGScriptElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGScriptElement where-  fromJSVal v = fmap SVGScriptElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGScriptElement where-  makeObject = makeObject . unSVGScriptElement--instance IsSVGElement SVGScriptElement-instance IsElement SVGScriptElement-instance IsNode SVGScriptElement-instance IsEventTarget SVGScriptElement-instance IsGObject SVGScriptElement where-  typeGType _ = gTypeSVGScriptElement-  {-# INLINE typeGType #-}--gTypeSVGScriptElement :: JSM GType-gTypeSVGScriptElement = GType . Object <$> jsg "SVGScriptElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGSetElement".--- Base interface functions are in:------     * "JSDOM.SVGAnimationElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGSetElement Mozilla SVGSetElement documentation>-newtype SVGSetElement = SVGSetElement { unSVGSetElement :: JSVal }--instance PToJSVal SVGSetElement where-  pToJSVal = unSVGSetElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGSetElement where-  pFromJSVal = SVGSetElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGSetElement where-  toJSVal = return . unSVGSetElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGSetElement where-  fromJSVal v = fmap SVGSetElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGSetElement where-  makeObject = makeObject . unSVGSetElement--instance IsSVGAnimationElement SVGSetElement-instance IsSVGElement SVGSetElement-instance IsElement SVGSetElement-instance IsNode SVGSetElement-instance IsEventTarget SVGSetElement-instance IsGObject SVGSetElement where-  typeGType _ = gTypeSVGSetElement-  {-# INLINE typeGType #-}--gTypeSVGSetElement :: JSM GType-gTypeSVGSetElement = GType . Object <$> jsg "SVGSetElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGStopElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement Mozilla SVGStopElement documentation>-newtype SVGStopElement = SVGStopElement { unSVGStopElement :: JSVal }--instance PToJSVal SVGStopElement where-  pToJSVal = unSVGStopElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGStopElement where-  pFromJSVal = SVGStopElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGStopElement where-  toJSVal = return . unSVGStopElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGStopElement where-  fromJSVal v = fmap SVGStopElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGStopElement where-  makeObject = makeObject . unSVGStopElement--instance IsSVGElement SVGStopElement-instance IsElement SVGStopElement-instance IsNode SVGStopElement-instance IsEventTarget SVGStopElement-instance IsGObject SVGStopElement where-  typeGType _ = gTypeSVGStopElement-  {-# INLINE typeGType #-}--gTypeSVGStopElement :: JSM GType-gTypeSVGStopElement = GType . Object <$> jsg "SVGStopElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGStringList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList Mozilla SVGStringList documentation>-newtype SVGStringList = SVGStringList { unSVGStringList :: JSVal }--instance PToJSVal SVGStringList where-  pToJSVal = unSVGStringList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGStringList where-  pFromJSVal = SVGStringList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGStringList where-  toJSVal = return . unSVGStringList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGStringList where-  fromJSVal v = fmap SVGStringList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGStringList where-  makeObject = makeObject . unSVGStringList--instance IsGObject SVGStringList where-  typeGType _ = gTypeSVGStringList-  {-# INLINE typeGType #-}--gTypeSVGStringList :: JSM GType-gTypeSVGStringList = GType . Object <$> jsg "SVGStringList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGStyleElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement Mozilla SVGStyleElement documentation>-newtype SVGStyleElement = SVGStyleElement { unSVGStyleElement :: JSVal }--instance PToJSVal SVGStyleElement where-  pToJSVal = unSVGStyleElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGStyleElement where-  pFromJSVal = SVGStyleElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGStyleElement where-  toJSVal = return . unSVGStyleElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGStyleElement where-  fromJSVal v = fmap SVGStyleElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGStyleElement where-  makeObject = makeObject . unSVGStyleElement--instance IsSVGElement SVGStyleElement-instance IsElement SVGStyleElement-instance IsNode SVGStyleElement-instance IsEventTarget SVGStyleElement-instance IsGObject SVGStyleElement where-  typeGType _ = gTypeSVGStyleElement-  {-# INLINE typeGType #-}--gTypeSVGStyleElement :: JSM GType-gTypeSVGStyleElement = GType . Object <$> jsg "SVGStyleElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGSwitchElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGSwitchElement Mozilla SVGSwitchElement documentation>-newtype SVGSwitchElement = SVGSwitchElement { unSVGSwitchElement :: JSVal }--instance PToJSVal SVGSwitchElement where-  pToJSVal = unSVGSwitchElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGSwitchElement where-  pFromJSVal = SVGSwitchElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGSwitchElement where-  toJSVal = return . unSVGSwitchElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGSwitchElement where-  fromJSVal v = fmap SVGSwitchElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGSwitchElement where-  makeObject = makeObject . unSVGSwitchElement--instance IsSVGGraphicsElement SVGSwitchElement-instance IsSVGElement SVGSwitchElement-instance IsElement SVGSwitchElement-instance IsNode SVGSwitchElement-instance IsEventTarget SVGSwitchElement-instance IsGObject SVGSwitchElement where-  typeGType _ = gTypeSVGSwitchElement-  {-# INLINE typeGType #-}--gTypeSVGSwitchElement :: JSM GType-gTypeSVGSwitchElement = GType . Object <$> jsg "SVGSwitchElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGSymbolElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGSymbolElement Mozilla SVGSymbolElement documentation>-newtype SVGSymbolElement = SVGSymbolElement { unSVGSymbolElement :: JSVal }--instance PToJSVal SVGSymbolElement where-  pToJSVal = unSVGSymbolElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGSymbolElement where-  pFromJSVal = SVGSymbolElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGSymbolElement where-  toJSVal = return . unSVGSymbolElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGSymbolElement where-  fromJSVal v = fmap SVGSymbolElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGSymbolElement where-  makeObject = makeObject . unSVGSymbolElement--instance IsSVGElement SVGSymbolElement-instance IsElement SVGSymbolElement-instance IsNode SVGSymbolElement-instance IsEventTarget SVGSymbolElement-instance IsGObject SVGSymbolElement where-  typeGType _ = gTypeSVGSymbolElement-  {-# INLINE typeGType #-}--gTypeSVGSymbolElement :: JSM GType-gTypeSVGSymbolElement = GType . Object <$> jsg "SVGSymbolElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTRefElement".--- Base interface functions are in:------     * "JSDOM.SVGTextPositioningElement"---     * "JSDOM.SVGTextContentElement"---     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTRefElement Mozilla SVGTRefElement documentation>-newtype SVGTRefElement = SVGTRefElement { unSVGTRefElement :: JSVal }--instance PToJSVal SVGTRefElement where-  pToJSVal = unSVGTRefElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTRefElement where-  pFromJSVal = SVGTRefElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTRefElement where-  toJSVal = return . unSVGTRefElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTRefElement where-  fromJSVal v = fmap SVGTRefElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTRefElement where-  makeObject = makeObject . unSVGTRefElement--instance IsSVGTextPositioningElement SVGTRefElement-instance IsSVGTextContentElement SVGTRefElement-instance IsSVGGraphicsElement SVGTRefElement-instance IsSVGElement SVGTRefElement-instance IsElement SVGTRefElement-instance IsNode SVGTRefElement-instance IsEventTarget SVGTRefElement-instance IsGObject SVGTRefElement where-  typeGType _ = gTypeSVGTRefElement-  {-# INLINE typeGType #-}--gTypeSVGTRefElement :: JSM GType-gTypeSVGTRefElement = GType . Object <$> jsg "SVGTRefElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTSpanElement".--- Base interface functions are in:------     * "JSDOM.SVGTextPositioningElement"---     * "JSDOM.SVGTextContentElement"---     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTSpanElement Mozilla SVGTSpanElement documentation>-newtype SVGTSpanElement = SVGTSpanElement { unSVGTSpanElement :: JSVal }--instance PToJSVal SVGTSpanElement where-  pToJSVal = unSVGTSpanElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTSpanElement where-  pFromJSVal = SVGTSpanElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTSpanElement where-  toJSVal = return . unSVGTSpanElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTSpanElement where-  fromJSVal v = fmap SVGTSpanElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTSpanElement where-  makeObject = makeObject . unSVGTSpanElement--instance IsSVGTextPositioningElement SVGTSpanElement-instance IsSVGTextContentElement SVGTSpanElement-instance IsSVGGraphicsElement SVGTSpanElement-instance IsSVGElement SVGTSpanElement-instance IsElement SVGTSpanElement-instance IsNode SVGTSpanElement-instance IsEventTarget SVGTSpanElement-instance IsGObject SVGTSpanElement where-  typeGType _ = gTypeSVGTSpanElement-  {-# INLINE typeGType #-}--gTypeSVGTSpanElement :: JSM GType-gTypeSVGTSpanElement = GType . Object <$> jsg "SVGTSpanElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTests".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests Mozilla SVGTests documentation>-newtype SVGTests = SVGTests { unSVGTests :: JSVal }--instance PToJSVal SVGTests where-  pToJSVal = unSVGTests-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTests where-  pFromJSVal = SVGTests-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTests where-  toJSVal = return . unSVGTests-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTests where-  fromJSVal v = fmap SVGTests <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTests where-  makeObject = makeObject . unSVGTests--instance IsGObject SVGTests where-  typeGType _ = gTypeSVGTests-  {-# INLINE typeGType #-}--gTypeSVGTests :: JSM GType-gTypeSVGTests = GType . Object <$> jsg "SVGTests"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTextContentElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement Mozilla SVGTextContentElement documentation>-newtype SVGTextContentElement = SVGTextContentElement { unSVGTextContentElement :: JSVal }--instance PToJSVal SVGTextContentElement where-  pToJSVal = unSVGTextContentElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTextContentElement where-  pFromJSVal = SVGTextContentElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTextContentElement where-  toJSVal = return . unSVGTextContentElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTextContentElement where-  fromJSVal v = fmap SVGTextContentElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTextContentElement where-  makeObject = makeObject . unSVGTextContentElement--class IsSVGGraphicsElement o => IsSVGTextContentElement o-toSVGTextContentElement :: IsSVGTextContentElement o => o -> SVGTextContentElement-toSVGTextContentElement = SVGTextContentElement . coerce--instance IsSVGTextContentElement SVGTextContentElement-instance IsSVGGraphicsElement SVGTextContentElement-instance IsSVGElement SVGTextContentElement-instance IsElement SVGTextContentElement-instance IsNode SVGTextContentElement-instance IsEventTarget SVGTextContentElement-instance IsGObject SVGTextContentElement where-  typeGType _ = gTypeSVGTextContentElement-  {-# INLINE typeGType #-}--gTypeSVGTextContentElement :: JSM GType-gTypeSVGTextContentElement = GType . Object <$> jsg "SVGTextContentElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTextElement".--- Base interface functions are in:------     * "JSDOM.SVGTextPositioningElement"---     * "JSDOM.SVGTextContentElement"---     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextElement Mozilla SVGTextElement documentation>-newtype SVGTextElement = SVGTextElement { unSVGTextElement :: JSVal }--instance PToJSVal SVGTextElement where-  pToJSVal = unSVGTextElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTextElement where-  pFromJSVal = SVGTextElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTextElement where-  toJSVal = return . unSVGTextElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTextElement where-  fromJSVal v = fmap SVGTextElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTextElement where-  makeObject = makeObject . unSVGTextElement--instance IsSVGTextPositioningElement SVGTextElement-instance IsSVGTextContentElement SVGTextElement-instance IsSVGGraphicsElement SVGTextElement-instance IsSVGElement SVGTextElement-instance IsElement SVGTextElement-instance IsNode SVGTextElement-instance IsEventTarget SVGTextElement-instance IsGObject SVGTextElement where-  typeGType _ = gTypeSVGTextElement-  {-# INLINE typeGType #-}--gTypeSVGTextElement :: JSM GType-gTypeSVGTextElement = GType . Object <$> jsg "SVGTextElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTextPathElement".--- Base interface functions are in:------     * "JSDOM.SVGTextContentElement"---     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement Mozilla SVGTextPathElement documentation>-newtype SVGTextPathElement = SVGTextPathElement { unSVGTextPathElement :: JSVal }--instance PToJSVal SVGTextPathElement where-  pToJSVal = unSVGTextPathElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTextPathElement where-  pFromJSVal = SVGTextPathElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTextPathElement where-  toJSVal = return . unSVGTextPathElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTextPathElement where-  fromJSVal v = fmap SVGTextPathElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTextPathElement where-  makeObject = makeObject . unSVGTextPathElement--instance IsSVGTextContentElement SVGTextPathElement-instance IsSVGGraphicsElement SVGTextPathElement-instance IsSVGElement SVGTextPathElement-instance IsElement SVGTextPathElement-instance IsNode SVGTextPathElement-instance IsEventTarget SVGTextPathElement-instance IsGObject SVGTextPathElement where-  typeGType _ = gTypeSVGTextPathElement-  {-# INLINE typeGType #-}--gTypeSVGTextPathElement :: JSM GType-gTypeSVGTextPathElement = GType . Object <$> jsg "SVGTextPathElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTextPositioningElement".--- Base interface functions are in:------     * "JSDOM.SVGTextContentElement"---     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement Mozilla SVGTextPositioningElement documentation>-newtype SVGTextPositioningElement = SVGTextPositioningElement { unSVGTextPositioningElement :: JSVal }--instance PToJSVal SVGTextPositioningElement where-  pToJSVal = unSVGTextPositioningElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTextPositioningElement where-  pFromJSVal = SVGTextPositioningElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTextPositioningElement where-  toJSVal = return . unSVGTextPositioningElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTextPositioningElement where-  fromJSVal v = fmap SVGTextPositioningElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTextPositioningElement where-  makeObject = makeObject . unSVGTextPositioningElement--class IsSVGTextContentElement o => IsSVGTextPositioningElement o-toSVGTextPositioningElement :: IsSVGTextPositioningElement o => o -> SVGTextPositioningElement-toSVGTextPositioningElement = SVGTextPositioningElement . coerce--instance IsSVGTextPositioningElement SVGTextPositioningElement-instance IsSVGTextContentElement SVGTextPositioningElement-instance IsSVGGraphicsElement SVGTextPositioningElement-instance IsSVGElement SVGTextPositioningElement-instance IsElement SVGTextPositioningElement-instance IsNode SVGTextPositioningElement-instance IsEventTarget SVGTextPositioningElement-instance IsGObject SVGTextPositioningElement where-  typeGType _ = gTypeSVGTextPositioningElement-  {-# INLINE typeGType #-}--gTypeSVGTextPositioningElement :: JSM GType-gTypeSVGTextPositioningElement = GType . Object <$> jsg "SVGTextPositioningElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTitleElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTitleElement Mozilla SVGTitleElement documentation>-newtype SVGTitleElement = SVGTitleElement { unSVGTitleElement :: JSVal }--instance PToJSVal SVGTitleElement where-  pToJSVal = unSVGTitleElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTitleElement where-  pFromJSVal = SVGTitleElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTitleElement where-  toJSVal = return . unSVGTitleElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTitleElement where-  fromJSVal v = fmap SVGTitleElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTitleElement where-  makeObject = makeObject . unSVGTitleElement--instance IsSVGElement SVGTitleElement-instance IsElement SVGTitleElement-instance IsNode SVGTitleElement-instance IsEventTarget SVGTitleElement-instance IsGObject SVGTitleElement where-  typeGType _ = gTypeSVGTitleElement-  {-# INLINE typeGType #-}--gTypeSVGTitleElement :: JSM GType-gTypeSVGTitleElement = GType . Object <$> jsg "SVGTitleElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTransform".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform Mozilla SVGTransform documentation>-newtype SVGTransform = SVGTransform { unSVGTransform :: JSVal }--instance PToJSVal SVGTransform where-  pToJSVal = unSVGTransform-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTransform where-  pFromJSVal = SVGTransform-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTransform where-  toJSVal = return . unSVGTransform-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTransform where-  fromJSVal v = fmap SVGTransform <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTransform where-  makeObject = makeObject . unSVGTransform--instance IsGObject SVGTransform where-  typeGType _ = gTypeSVGTransform-  {-# INLINE typeGType #-}--gTypeSVGTransform :: JSM GType-gTypeSVGTransform = GType . Object <$> jsg "SVGTransform"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGTransformList".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList Mozilla SVGTransformList documentation>-newtype SVGTransformList = SVGTransformList { unSVGTransformList :: JSVal }--instance PToJSVal SVGTransformList where-  pToJSVal = unSVGTransformList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGTransformList where-  pFromJSVal = SVGTransformList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGTransformList where-  toJSVal = return . unSVGTransformList-  {-# INLINE toJSVal #-}--instance FromJSVal SVGTransformList where-  fromJSVal v = fmap SVGTransformList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGTransformList where-  makeObject = makeObject . unSVGTransformList--instance IsGObject SVGTransformList where-  typeGType _ = gTypeSVGTransformList-  {-# INLINE typeGType #-}--gTypeSVGTransformList :: JSM GType-gTypeSVGTransformList = GType . Object <$> jsg "SVGTransformList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGURIReference".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference Mozilla SVGURIReference documentation>-newtype SVGURIReference = SVGURIReference { unSVGURIReference :: JSVal }--instance PToJSVal SVGURIReference where-  pToJSVal = unSVGURIReference-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGURIReference where-  pFromJSVal = SVGURIReference-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGURIReference where-  toJSVal = return . unSVGURIReference-  {-# INLINE toJSVal #-}--instance FromJSVal SVGURIReference where-  fromJSVal v = fmap SVGURIReference <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGURIReference where-  makeObject = makeObject . unSVGURIReference--instance IsGObject SVGURIReference where-  typeGType _ = gTypeSVGURIReference-  {-# INLINE typeGType #-}--gTypeSVGURIReference :: JSM GType-gTypeSVGURIReference = GType . Object <$> jsg "SVGURIReference"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGUnitTypes".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGUnitTypes Mozilla SVGUnitTypes documentation>-newtype SVGUnitTypes = SVGUnitTypes { unSVGUnitTypes :: JSVal }--instance PToJSVal SVGUnitTypes where-  pToJSVal = unSVGUnitTypes-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGUnitTypes where-  pFromJSVal = SVGUnitTypes-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGUnitTypes where-  toJSVal = return . unSVGUnitTypes-  {-# INLINE toJSVal #-}--instance FromJSVal SVGUnitTypes where-  fromJSVal v = fmap SVGUnitTypes <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGUnitTypes where-  makeObject = makeObject . unSVGUnitTypes--instance IsGObject SVGUnitTypes where-  typeGType _ = gTypeSVGUnitTypes-  {-# INLINE typeGType #-}--gTypeSVGUnitTypes :: JSM GType-gTypeSVGUnitTypes = GType . Object <$> jsg "SVGUnitTypes"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGUseElement".--- Base interface functions are in:------     * "JSDOM.SVGGraphicsElement"---     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement Mozilla SVGUseElement documentation>-newtype SVGUseElement = SVGUseElement { unSVGUseElement :: JSVal }--instance PToJSVal SVGUseElement where-  pToJSVal = unSVGUseElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGUseElement where-  pFromJSVal = SVGUseElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGUseElement where-  toJSVal = return . unSVGUseElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGUseElement where-  fromJSVal v = fmap SVGUseElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGUseElement where-  makeObject = makeObject . unSVGUseElement--instance IsSVGGraphicsElement SVGUseElement-instance IsSVGElement SVGUseElement-instance IsElement SVGUseElement-instance IsNode SVGUseElement-instance IsEventTarget SVGUseElement-instance IsGObject SVGUseElement where-  typeGType _ = gTypeSVGUseElement-  {-# INLINE typeGType #-}--gTypeSVGUseElement :: JSM GType-gTypeSVGUseElement = GType . Object <$> jsg "SVGUseElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGVKernElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGVKernElement Mozilla SVGVKernElement documentation>-newtype SVGVKernElement = SVGVKernElement { unSVGVKernElement :: JSVal }--instance PToJSVal SVGVKernElement where-  pToJSVal = unSVGVKernElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGVKernElement where-  pFromJSVal = SVGVKernElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGVKernElement where-  toJSVal = return . unSVGVKernElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGVKernElement where-  fromJSVal v = fmap SVGVKernElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGVKernElement where-  makeObject = makeObject . unSVGVKernElement--instance IsSVGElement SVGVKernElement-instance IsElement SVGVKernElement-instance IsNode SVGVKernElement-instance IsEventTarget SVGVKernElement-instance IsGObject SVGVKernElement where-  typeGType _ = gTypeSVGVKernElement-  {-# INLINE typeGType #-}--gTypeSVGVKernElement :: JSM GType-gTypeSVGVKernElement = GType . Object <$> jsg "SVGVKernElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGViewElement".--- Base interface functions are in:------     * "JSDOM.SVGElement"---     * "JSDOM.Element"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement Mozilla SVGViewElement documentation>-newtype SVGViewElement = SVGViewElement { unSVGViewElement :: JSVal }--instance PToJSVal SVGViewElement where-  pToJSVal = unSVGViewElement-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGViewElement where-  pFromJSVal = SVGViewElement-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGViewElement where-  toJSVal = return . unSVGViewElement-  {-# INLINE toJSVal #-}--instance FromJSVal SVGViewElement where-  fromJSVal v = fmap SVGViewElement <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGViewElement where-  makeObject = makeObject . unSVGViewElement--instance IsSVGElement SVGViewElement-instance IsElement SVGViewElement-instance IsNode SVGViewElement-instance IsEventTarget SVGViewElement-instance IsGObject SVGViewElement where-  typeGType _ = gTypeSVGViewElement-  {-# INLINE typeGType #-}--gTypeSVGViewElement :: JSM GType-gTypeSVGViewElement = GType . Object <$> jsg "SVGViewElement"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGViewSpec".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec Mozilla SVGViewSpec documentation>-newtype SVGViewSpec = SVGViewSpec { unSVGViewSpec :: JSVal }--instance PToJSVal SVGViewSpec where-  pToJSVal = unSVGViewSpec-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGViewSpec where-  pFromJSVal = SVGViewSpec-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGViewSpec where-  toJSVal = return . unSVGViewSpec-  {-# INLINE toJSVal #-}--instance FromJSVal SVGViewSpec where-  fromJSVal v = fmap SVGViewSpec <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGViewSpec where-  makeObject = makeObject . unSVGViewSpec--instance IsGObject SVGViewSpec where-  typeGType _ = gTypeSVGViewSpec-  {-# INLINE typeGType #-}--gTypeSVGViewSpec :: JSM GType-gTypeSVGViewSpec = GType . Object <$> jsg "SVGViewSpec"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGZoomAndPan".------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan Mozilla SVGZoomAndPan documentation>-newtype SVGZoomAndPan = SVGZoomAndPan { unSVGZoomAndPan :: JSVal }--instance PToJSVal SVGZoomAndPan where-  pToJSVal = unSVGZoomAndPan-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGZoomAndPan where-  pFromJSVal = SVGZoomAndPan-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGZoomAndPan where-  toJSVal = return . unSVGZoomAndPan-  {-# INLINE toJSVal #-}--instance FromJSVal SVGZoomAndPan where-  fromJSVal v = fmap SVGZoomAndPan <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGZoomAndPan where-  makeObject = makeObject . unSVGZoomAndPan--instance IsGObject SVGZoomAndPan where-  typeGType _ = gTypeSVGZoomAndPan-  {-# INLINE typeGType #-}--gTypeSVGZoomAndPan :: JSM GType-gTypeSVGZoomAndPan = GType . Object <$> jsg "SVGZoomAndPan"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SVGZoomEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent Mozilla SVGZoomEvent documentation>-newtype SVGZoomEvent = SVGZoomEvent { unSVGZoomEvent :: JSVal }--instance PToJSVal SVGZoomEvent where-  pToJSVal = unSVGZoomEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal SVGZoomEvent where-  pFromJSVal = SVGZoomEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal SVGZoomEvent where-  toJSVal = return . unSVGZoomEvent-  {-# INLINE toJSVal #-}--instance FromJSVal SVGZoomEvent where-  fromJSVal v = fmap SVGZoomEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SVGZoomEvent where-  makeObject = makeObject . unSVGZoomEvent--instance IsUIEvent SVGZoomEvent-instance IsEvent SVGZoomEvent-instance IsGObject SVGZoomEvent where-  typeGType _ = gTypeSVGZoomEvent-  {-# INLINE typeGType #-}--gTypeSVGZoomEvent :: JSM GType-gTypeSVGZoomEvent = GType . Object <$> jsg "SVGZoomEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Screen".------ <https://developer.mozilla.org/en-US/docs/Web/API/Screen Mozilla Screen documentation>-newtype Screen = Screen { unScreen :: JSVal }--instance PToJSVal Screen where-  pToJSVal = unScreen-  {-# INLINE pToJSVal #-}--instance PFromJSVal Screen where-  pFromJSVal = Screen-  {-# INLINE pFromJSVal #-}--instance ToJSVal Screen where-  toJSVal = return . unScreen-  {-# INLINE toJSVal #-}--instance FromJSVal Screen where-  fromJSVal v = fmap Screen <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Screen where-  makeObject = makeObject . unScreen--instance IsGObject Screen where-  typeGType _ = gTypeScreen-  {-# INLINE typeGType #-}--gTypeScreen :: JSM GType-gTypeScreen = GType . Object <$> jsg "Screen"-#else-type IsScreen o = ScreenClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ScriptProcessorNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode Mozilla ScriptProcessorNode documentation>-newtype ScriptProcessorNode = ScriptProcessorNode { unScriptProcessorNode :: JSVal }--instance PToJSVal ScriptProcessorNode where-  pToJSVal = unScriptProcessorNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal ScriptProcessorNode where-  pFromJSVal = ScriptProcessorNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal ScriptProcessorNode where-  toJSVal = return . unScriptProcessorNode-  {-# INLINE toJSVal #-}--instance FromJSVal ScriptProcessorNode where-  fromJSVal v = fmap ScriptProcessorNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ScriptProcessorNode where-  makeObject = makeObject . unScriptProcessorNode--instance IsAudioNode ScriptProcessorNode-instance IsEventTarget ScriptProcessorNode-instance IsGObject ScriptProcessorNode where-  typeGType _ = gTypeScriptProcessorNode-  {-# INLINE typeGType #-}--gTypeScriptProcessorNode :: JSM GType-gTypeScriptProcessorNode = GType . Object <$> jsg "ScriptProcessorNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ScriptProfile".------ <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile Mozilla ScriptProfile documentation>-newtype ScriptProfile = ScriptProfile { unScriptProfile :: JSVal }--instance PToJSVal ScriptProfile where-  pToJSVal = unScriptProfile-  {-# INLINE pToJSVal #-}--instance PFromJSVal ScriptProfile where-  pFromJSVal = ScriptProfile-  {-# INLINE pFromJSVal #-}--instance ToJSVal ScriptProfile where-  toJSVal = return . unScriptProfile-  {-# INLINE toJSVal #-}--instance FromJSVal ScriptProfile where-  fromJSVal v = fmap ScriptProfile <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ScriptProfile where-  makeObject = makeObject . unScriptProfile--instance IsGObject ScriptProfile where-  typeGType _ = gTypeScriptProfile-  {-# INLINE typeGType #-}--gTypeScriptProfile :: JSM GType-gTypeScriptProfile = GType . Object <$> jsg "ScriptProfile"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ScriptProfileNode".------ <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode Mozilla ScriptProfileNode documentation>-newtype ScriptProfileNode = ScriptProfileNode { unScriptProfileNode :: JSVal }--instance PToJSVal ScriptProfileNode where-  pToJSVal = unScriptProfileNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal ScriptProfileNode where-  pFromJSVal = ScriptProfileNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal ScriptProfileNode where-  toJSVal = return . unScriptProfileNode-  {-# INLINE toJSVal #-}--instance FromJSVal ScriptProfileNode where-  fromJSVal v = fmap ScriptProfileNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ScriptProfileNode where-  makeObject = makeObject . unScriptProfileNode--instance IsGObject ScriptProfileNode where-  typeGType _ = gTypeScriptProfileNode-  {-# INLINE typeGType #-}--gTypeScriptProfileNode :: JSM GType-gTypeScriptProfileNode = GType . Object <$> jsg "ScriptProfileNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SecurityPolicy".------ <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy Mozilla SecurityPolicy documentation>-newtype SecurityPolicy = SecurityPolicy { unSecurityPolicy :: JSVal }--instance PToJSVal SecurityPolicy where-  pToJSVal = unSecurityPolicy-  {-# INLINE pToJSVal #-}--instance PFromJSVal SecurityPolicy where-  pFromJSVal = SecurityPolicy-  {-# INLINE pFromJSVal #-}--instance ToJSVal SecurityPolicy where-  toJSVal = return . unSecurityPolicy-  {-# INLINE toJSVal #-}--instance FromJSVal SecurityPolicy where-  fromJSVal v = fmap SecurityPolicy <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SecurityPolicy where-  makeObject = makeObject . unSecurityPolicy--instance IsGObject SecurityPolicy where-  typeGType _ = gTypeSecurityPolicy-  {-# INLINE typeGType #-}--gTypeSecurityPolicy :: JSM GType-gTypeSecurityPolicy = GType . Object <$> jsg "SecurityPolicy"-#else-#ifndef USE_OLD_WEBKIT-type IsSecurityPolicy o = SecurityPolicyClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SecurityPolicyViolationEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent Mozilla SecurityPolicyViolationEvent documentation>-newtype SecurityPolicyViolationEvent = SecurityPolicyViolationEvent { unSecurityPolicyViolationEvent :: JSVal }--instance PToJSVal SecurityPolicyViolationEvent where-  pToJSVal = unSecurityPolicyViolationEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal SecurityPolicyViolationEvent where-  pFromJSVal = SecurityPolicyViolationEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal SecurityPolicyViolationEvent where-  toJSVal = return . unSecurityPolicyViolationEvent-  {-# INLINE toJSVal #-}--instance FromJSVal SecurityPolicyViolationEvent where-  fromJSVal v = fmap SecurityPolicyViolationEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SecurityPolicyViolationEvent where-  makeObject = makeObject . unSecurityPolicyViolationEvent--instance IsEvent SecurityPolicyViolationEvent-instance IsGObject SecurityPolicyViolationEvent where-  typeGType _ = gTypeSecurityPolicyViolationEvent-  {-# INLINE typeGType #-}--gTypeSecurityPolicyViolationEvent :: JSM GType-gTypeSecurityPolicyViolationEvent = GType . Object <$> jsg "SecurityPolicyViolationEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Selection".------ <https://developer.mozilla.org/en-US/docs/Web/API/Selection Mozilla Selection documentation>-newtype Selection = Selection { unSelection :: JSVal }--instance PToJSVal Selection where-  pToJSVal = unSelection-  {-# INLINE pToJSVal #-}--instance PFromJSVal Selection where-  pFromJSVal = Selection-  {-# INLINE pFromJSVal #-}--instance ToJSVal Selection where-  toJSVal = return . unSelection-  {-# INLINE toJSVal #-}--instance FromJSVal Selection where-  fromJSVal v = fmap Selection <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Selection where-  makeObject = makeObject . unSelection--instance IsGObject Selection where-  typeGType _ = gTypeSelection-  {-# INLINE typeGType #-}--gTypeSelection :: JSM GType-gTypeSelection = GType . Object <$> jsg "Selection"-#else-type IsSelection o = SelectionClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SourceBuffer".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer Mozilla SourceBuffer documentation>-newtype SourceBuffer = SourceBuffer { unSourceBuffer :: JSVal }--instance PToJSVal SourceBuffer where-  pToJSVal = unSourceBuffer-  {-# INLINE pToJSVal #-}--instance PFromJSVal SourceBuffer where-  pFromJSVal = SourceBuffer-  {-# INLINE pFromJSVal #-}--instance ToJSVal SourceBuffer where-  toJSVal = return . unSourceBuffer-  {-# INLINE toJSVal #-}--instance FromJSVal SourceBuffer where-  fromJSVal v = fmap SourceBuffer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SourceBuffer where-  makeObject = makeObject . unSourceBuffer--instance IsEventTarget SourceBuffer-instance IsGObject SourceBuffer where-  typeGType _ = gTypeSourceBuffer-  {-# INLINE typeGType #-}--gTypeSourceBuffer :: JSM GType-gTypeSourceBuffer = GType . Object <$> jsg "SourceBuffer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SourceBufferList".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList Mozilla SourceBufferList documentation>-newtype SourceBufferList = SourceBufferList { unSourceBufferList :: JSVal }--instance PToJSVal SourceBufferList where-  pToJSVal = unSourceBufferList-  {-# INLINE pToJSVal #-}--instance PFromJSVal SourceBufferList where-  pFromJSVal = SourceBufferList-  {-# INLINE pFromJSVal #-}--instance ToJSVal SourceBufferList where-  toJSVal = return . unSourceBufferList-  {-# INLINE toJSVal #-}--instance FromJSVal SourceBufferList where-  fromJSVal v = fmap SourceBufferList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SourceBufferList where-  makeObject = makeObject . unSourceBufferList--instance IsEventTarget SourceBufferList-instance IsGObject SourceBufferList where-  typeGType _ = gTypeSourceBufferList-  {-# INLINE typeGType #-}--gTypeSourceBufferList :: JSM GType-gTypeSourceBufferList = GType . Object <$> jsg "SourceBufferList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SourceInfo".------ <https://developer.mozilla.org/en-US/docs/Web/API/SourceInfo Mozilla SourceInfo documentation>-newtype SourceInfo = SourceInfo { unSourceInfo :: JSVal }--instance PToJSVal SourceInfo where-  pToJSVal = unSourceInfo-  {-# INLINE pToJSVal #-}--instance PFromJSVal SourceInfo where-  pFromJSVal = SourceInfo-  {-# INLINE pFromJSVal #-}--instance ToJSVal SourceInfo where-  toJSVal = return . unSourceInfo-  {-# INLINE toJSVal #-}--instance FromJSVal SourceInfo where-  fromJSVal v = fmap SourceInfo <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SourceInfo where-  makeObject = makeObject . unSourceInfo--instance IsGObject SourceInfo where-  typeGType _ = gTypeSourceInfo-  {-# INLINE typeGType #-}--gTypeSourceInfo :: JSM GType-gTypeSourceInfo = GType . Object <$> jsg "SourceInfo"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SpeechSynthesis".------ <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis Mozilla SpeechSynthesis documentation>-newtype SpeechSynthesis = SpeechSynthesis { unSpeechSynthesis :: JSVal }--instance PToJSVal SpeechSynthesis where-  pToJSVal = unSpeechSynthesis-  {-# INLINE pToJSVal #-}--instance PFromJSVal SpeechSynthesis where-  pFromJSVal = SpeechSynthesis-  {-# INLINE pFromJSVal #-}--instance ToJSVal SpeechSynthesis where-  toJSVal = return . unSpeechSynthesis-  {-# INLINE toJSVal #-}--instance FromJSVal SpeechSynthesis where-  fromJSVal v = fmap SpeechSynthesis <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SpeechSynthesis where-  makeObject = makeObject . unSpeechSynthesis--instance IsGObject SpeechSynthesis where-  typeGType _ = gTypeSpeechSynthesis-  {-# INLINE typeGType #-}--gTypeSpeechSynthesis :: JSM GType-gTypeSpeechSynthesis = GType . Object <$> jsg "SpeechSynthesis"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SpeechSynthesisEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisEvent Mozilla SpeechSynthesisEvent documentation>-newtype SpeechSynthesisEvent = SpeechSynthesisEvent { unSpeechSynthesisEvent :: JSVal }--instance PToJSVal SpeechSynthesisEvent where-  pToJSVal = unSpeechSynthesisEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal SpeechSynthesisEvent where-  pFromJSVal = SpeechSynthesisEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal SpeechSynthesisEvent where-  toJSVal = return . unSpeechSynthesisEvent-  {-# INLINE toJSVal #-}--instance FromJSVal SpeechSynthesisEvent where-  fromJSVal v = fmap SpeechSynthesisEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SpeechSynthesisEvent where-  makeObject = makeObject . unSpeechSynthesisEvent--instance IsEvent SpeechSynthesisEvent-instance IsGObject SpeechSynthesisEvent where-  typeGType _ = gTypeSpeechSynthesisEvent-  {-# INLINE typeGType #-}--gTypeSpeechSynthesisEvent :: JSM GType-gTypeSpeechSynthesisEvent = GType . Object <$> jsg "SpeechSynthesisEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SpeechSynthesisUtterance".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance Mozilla SpeechSynthesisUtterance documentation>-newtype SpeechSynthesisUtterance = SpeechSynthesisUtterance { unSpeechSynthesisUtterance :: JSVal }--instance PToJSVal SpeechSynthesisUtterance where-  pToJSVal = unSpeechSynthesisUtterance-  {-# INLINE pToJSVal #-}--instance PFromJSVal SpeechSynthesisUtterance where-  pFromJSVal = SpeechSynthesisUtterance-  {-# INLINE pFromJSVal #-}--instance ToJSVal SpeechSynthesisUtterance where-  toJSVal = return . unSpeechSynthesisUtterance-  {-# INLINE toJSVal #-}--instance FromJSVal SpeechSynthesisUtterance where-  fromJSVal v = fmap SpeechSynthesisUtterance <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SpeechSynthesisUtterance where-  makeObject = makeObject . unSpeechSynthesisUtterance--instance IsEventTarget SpeechSynthesisUtterance-instance IsGObject SpeechSynthesisUtterance where-  typeGType _ = gTypeSpeechSynthesisUtterance-  {-# INLINE typeGType #-}--gTypeSpeechSynthesisUtterance :: JSM GType-gTypeSpeechSynthesisUtterance = GType . Object <$> jsg "SpeechSynthesisUtterance"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SpeechSynthesisVoice".------ <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice Mozilla SpeechSynthesisVoice documentation>-newtype SpeechSynthesisVoice = SpeechSynthesisVoice { unSpeechSynthesisVoice :: JSVal }--instance PToJSVal SpeechSynthesisVoice where-  pToJSVal = unSpeechSynthesisVoice-  {-# INLINE pToJSVal #-}--instance PFromJSVal SpeechSynthesisVoice where-  pFromJSVal = SpeechSynthesisVoice-  {-# INLINE pFromJSVal #-}--instance ToJSVal SpeechSynthesisVoice where-  toJSVal = return . unSpeechSynthesisVoice-  {-# INLINE toJSVal #-}--instance FromJSVal SpeechSynthesisVoice where-  fromJSVal v = fmap SpeechSynthesisVoice <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SpeechSynthesisVoice where-  makeObject = makeObject . unSpeechSynthesisVoice--instance IsGObject SpeechSynthesisVoice where-  typeGType _ = gTypeSpeechSynthesisVoice-  {-# INLINE typeGType #-}--gTypeSpeechSynthesisVoice :: JSM GType-gTypeSpeechSynthesisVoice = GType . Object <$> jsg "SpeechSynthesisVoice"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Storage".------ <https://developer.mozilla.org/en-US/docs/Web/API/Storage Mozilla Storage documentation>-newtype Storage = Storage { unStorage :: JSVal }--instance PToJSVal Storage where-  pToJSVal = unStorage-  {-# INLINE pToJSVal #-}--instance PFromJSVal Storage where-  pFromJSVal = Storage-  {-# INLINE pFromJSVal #-}--instance ToJSVal Storage where-  toJSVal = return . unStorage-  {-# INLINE toJSVal #-}--instance FromJSVal Storage where-  fromJSVal v = fmap Storage <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Storage where-  makeObject = makeObject . unStorage--instance IsGObject Storage where-  typeGType _ = gTypeStorage-  {-# INLINE typeGType #-}--gTypeStorage :: JSM GType-gTypeStorage = GType . Object <$> jsg "Storage"-#else-type IsStorage o = StorageClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.StorageEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent Mozilla StorageEvent documentation>-newtype StorageEvent = StorageEvent { unStorageEvent :: JSVal }--instance PToJSVal StorageEvent where-  pToJSVal = unStorageEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal StorageEvent where-  pFromJSVal = StorageEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal StorageEvent where-  toJSVal = return . unStorageEvent-  {-# INLINE toJSVal #-}--instance FromJSVal StorageEvent where-  fromJSVal v = fmap StorageEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject StorageEvent where-  makeObject = makeObject . unStorageEvent--instance IsEvent StorageEvent-instance IsGObject StorageEvent where-  typeGType _ = gTypeStorageEvent-  {-# INLINE typeGType #-}--gTypeStorageEvent :: JSM GType-gTypeStorageEvent = GType . Object <$> jsg "StorageEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.StorageInfo".------ <https://developer.mozilla.org/en-US/docs/Web/API/StorageInfo Mozilla StorageInfo documentation>-newtype StorageInfo = StorageInfo { unStorageInfo :: JSVal }--instance PToJSVal StorageInfo where-  pToJSVal = unStorageInfo-  {-# INLINE pToJSVal #-}--instance PFromJSVal StorageInfo where-  pFromJSVal = StorageInfo-  {-# INLINE pFromJSVal #-}--instance ToJSVal StorageInfo where-  toJSVal = return . unStorageInfo-  {-# INLINE toJSVal #-}--instance FromJSVal StorageInfo where-  fromJSVal v = fmap StorageInfo <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject StorageInfo where-  makeObject = makeObject . unStorageInfo--instance IsGObject StorageInfo where-  typeGType _ = gTypeStorageInfo-  {-# INLINE typeGType #-}--gTypeStorageInfo :: JSM GType-gTypeStorageInfo = GType . Object <$> jsg "StorageInfo"-#else-#ifndef USE_OLD_WEBKIT-type IsStorageInfo o = StorageInfoClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.StorageQuota".------ <https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota Mozilla StorageQuota documentation>-newtype StorageQuota = StorageQuota { unStorageQuota :: JSVal }--instance PToJSVal StorageQuota where-  pToJSVal = unStorageQuota-  {-# INLINE pToJSVal #-}--instance PFromJSVal StorageQuota where-  pFromJSVal = StorageQuota-  {-# INLINE pFromJSVal #-}--instance ToJSVal StorageQuota where-  toJSVal = return . unStorageQuota-  {-# INLINE toJSVal #-}--instance FromJSVal StorageQuota where-  fromJSVal v = fmap StorageQuota <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject StorageQuota where-  makeObject = makeObject . unStorageQuota--instance IsGObject StorageQuota where-  typeGType _ = gTypeStorageQuota-  {-# INLINE typeGType #-}--gTypeStorageQuota :: JSM GType-gTypeStorageQuota = GType . Object <$> jsg "StorageQuota"-#else-#ifndef USE_OLD_WEBKIT-type IsStorageQuota o = StorageQuotaClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.StyleMedia".------ <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia Mozilla StyleMedia documentation>-newtype StyleMedia = StyleMedia { unStyleMedia :: JSVal }--instance PToJSVal StyleMedia where-  pToJSVal = unStyleMedia-  {-# INLINE pToJSVal #-}--instance PFromJSVal StyleMedia where-  pFromJSVal = StyleMedia-  {-# INLINE pFromJSVal #-}--instance ToJSVal StyleMedia where-  toJSVal = return . unStyleMedia-  {-# INLINE toJSVal #-}--instance FromJSVal StyleMedia where-  fromJSVal v = fmap StyleMedia <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject StyleMedia where-  makeObject = makeObject . unStyleMedia--instance IsGObject StyleMedia where-  typeGType _ = gTypeStyleMedia-  {-# INLINE typeGType #-}--gTypeStyleMedia :: JSM GType-gTypeStyleMedia = GType . Object <$> jsg "StyleMedia"-#else-type IsStyleMedia o = StyleMediaClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.StyleSheet".------ <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet Mozilla StyleSheet documentation>-newtype StyleSheet = StyleSheet { unStyleSheet :: JSVal }--instance PToJSVal StyleSheet where-  pToJSVal = unStyleSheet-  {-# INLINE pToJSVal #-}--instance PFromJSVal StyleSheet where-  pFromJSVal = StyleSheet-  {-# INLINE pFromJSVal #-}--instance ToJSVal StyleSheet where-  toJSVal = return . unStyleSheet-  {-# INLINE toJSVal #-}--instance FromJSVal StyleSheet where-  fromJSVal v = fmap StyleSheet <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject StyleSheet where-  makeObject = makeObject . unStyleSheet--class IsGObject o => IsStyleSheet o-toStyleSheet :: IsStyleSheet o => o -> StyleSheet-toStyleSheet = StyleSheet . coerce--instance IsStyleSheet StyleSheet-instance IsGObject StyleSheet where-  typeGType _ = gTypeStyleSheet-  {-# INLINE typeGType #-}--gTypeStyleSheet :: JSM GType-gTypeStyleSheet = GType . Object <$> jsg "StyleSheet"-#else-type IsStyleSheet o = StyleSheetClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.StyleSheetList".------ <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList Mozilla StyleSheetList documentation>-newtype StyleSheetList = StyleSheetList { unStyleSheetList :: JSVal }--instance PToJSVal StyleSheetList where-  pToJSVal = unStyleSheetList-  {-# INLINE pToJSVal #-}--instance PFromJSVal StyleSheetList where-  pFromJSVal = StyleSheetList-  {-# INLINE pFromJSVal #-}--instance ToJSVal StyleSheetList where-  toJSVal = return . unStyleSheetList-  {-# INLINE toJSVal #-}--instance FromJSVal StyleSheetList where-  fromJSVal v = fmap StyleSheetList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject StyleSheetList where-  makeObject = makeObject . unStyleSheetList--instance IsGObject StyleSheetList where-  typeGType _ = gTypeStyleSheetList-  {-# INLINE typeGType #-}--gTypeStyleSheetList :: JSM GType-gTypeStyleSheetList = GType . Object <$> jsg "StyleSheetList"-#else-type IsStyleSheetList o = StyleSheetListClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.SubtleCrypto".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto Mozilla WebKitSubtleCrypto documentation>-newtype SubtleCrypto = SubtleCrypto { unSubtleCrypto :: JSVal }--instance PToJSVal SubtleCrypto where-  pToJSVal = unSubtleCrypto-  {-# INLINE pToJSVal #-}--instance PFromJSVal SubtleCrypto where-  pFromJSVal = SubtleCrypto-  {-# INLINE pFromJSVal #-}--instance ToJSVal SubtleCrypto where-  toJSVal = return . unSubtleCrypto-  {-# INLINE toJSVal #-}--instance FromJSVal SubtleCrypto where-  fromJSVal v = fmap SubtleCrypto <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject SubtleCrypto where-  makeObject = makeObject . unSubtleCrypto--instance IsGObject SubtleCrypto where-  typeGType _ = gTypeSubtleCrypto-  {-# INLINE typeGType #-}--gTypeSubtleCrypto :: JSM GType-gTypeSubtleCrypto = GType . Object <$> jsg "WebKitSubtleCrypto"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Text".--- Base interface functions are in:------     * "JSDOM.CharacterData"---     * "JSDOM.Node"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Text Mozilla Text documentation>-newtype Text = Text { unText :: JSVal }--instance PToJSVal Text where-  pToJSVal = unText-  {-# INLINE pToJSVal #-}--instance PFromJSVal Text where-  pFromJSVal = Text-  {-# INLINE pFromJSVal #-}--instance ToJSVal Text where-  toJSVal = return . unText-  {-# INLINE toJSVal #-}--instance FromJSVal Text where-  fromJSVal v = fmap Text <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Text where-  makeObject = makeObject . unText--class IsCharacterData o => IsText o-toText :: IsText o => o -> Text-toText = Text . coerce--instance IsText Text-instance IsCharacterData Text-instance IsNode Text-instance IsEventTarget Text-instance IsGObject Text where-  typeGType _ = gTypeText-  {-# INLINE typeGType #-}--gTypeText :: JSM GType-gTypeText = GType . Object <$> jsg "Text"-#else-type IsText o = TextClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TextEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/TextEvent Mozilla TextEvent documentation>-newtype TextEvent = TextEvent { unTextEvent :: JSVal }--instance PToJSVal TextEvent where-  pToJSVal = unTextEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal TextEvent where-  pFromJSVal = TextEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal TextEvent where-  toJSVal = return . unTextEvent-  {-# INLINE toJSVal #-}--instance FromJSVal TextEvent where-  fromJSVal v = fmap TextEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TextEvent where-  makeObject = makeObject . unTextEvent--instance IsUIEvent TextEvent-instance IsEvent TextEvent-instance IsGObject TextEvent where-  typeGType _ = gTypeTextEvent-  {-# INLINE typeGType #-}--gTypeTextEvent :: JSM GType-gTypeTextEvent = GType . Object <$> jsg "TextEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TextMetrics".------ <https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics Mozilla TextMetrics documentation>-newtype TextMetrics = TextMetrics { unTextMetrics :: JSVal }--instance PToJSVal TextMetrics where-  pToJSVal = unTextMetrics-  {-# INLINE pToJSVal #-}--instance PFromJSVal TextMetrics where-  pFromJSVal = TextMetrics-  {-# INLINE pFromJSVal #-}--instance ToJSVal TextMetrics where-  toJSVal = return . unTextMetrics-  {-# INLINE toJSVal #-}--instance FromJSVal TextMetrics where-  fromJSVal v = fmap TextMetrics <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TextMetrics where-  makeObject = makeObject . unTextMetrics--instance IsGObject TextMetrics where-  typeGType _ = gTypeTextMetrics-  {-# INLINE typeGType #-}--gTypeTextMetrics :: JSM GType-gTypeTextMetrics = GType . Object <$> jsg "TextMetrics"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TextTrack".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack Mozilla TextTrack documentation>-newtype TextTrack = TextTrack { unTextTrack :: JSVal }--instance PToJSVal TextTrack where-  pToJSVal = unTextTrack-  {-# INLINE pToJSVal #-}--instance PFromJSVal TextTrack where-  pFromJSVal = TextTrack-  {-# INLINE pFromJSVal #-}--instance ToJSVal TextTrack where-  toJSVal = return . unTextTrack-  {-# INLINE toJSVal #-}--instance FromJSVal TextTrack where-  fromJSVal v = fmap TextTrack <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TextTrack where-  makeObject = makeObject . unTextTrack--instance IsEventTarget TextTrack-instance IsGObject TextTrack where-  typeGType _ = gTypeTextTrack-  {-# INLINE typeGType #-}--gTypeTextTrack :: JSM GType-gTypeTextTrack = GType . Object <$> jsg "TextTrack"-#else-#ifndef USE_OLD_WEBKIT-type IsTextTrack o = TextTrackClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TextTrackCue".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue Mozilla TextTrackCue documentation>-newtype TextTrackCue = TextTrackCue { unTextTrackCue :: JSVal }--instance PToJSVal TextTrackCue where-  pToJSVal = unTextTrackCue-  {-# INLINE pToJSVal #-}--instance PFromJSVal TextTrackCue where-  pFromJSVal = TextTrackCue-  {-# INLINE pFromJSVal #-}--instance ToJSVal TextTrackCue where-  toJSVal = return . unTextTrackCue-  {-# INLINE toJSVal #-}--instance FromJSVal TextTrackCue where-  fromJSVal v = fmap TextTrackCue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TextTrackCue where-  makeObject = makeObject . unTextTrackCue--class IsEventTarget o => IsTextTrackCue o-toTextTrackCue :: IsTextTrackCue o => o -> TextTrackCue-toTextTrackCue = TextTrackCue . coerce--instance IsTextTrackCue TextTrackCue-instance IsEventTarget TextTrackCue-instance IsGObject TextTrackCue where-  typeGType _ = gTypeTextTrackCue-  {-# INLINE typeGType #-}--gTypeTextTrackCue :: JSM GType-gTypeTextTrackCue = GType . Object <$> jsg "TextTrackCue"-#else-#ifndef USE_OLD_WEBKIT-type IsTextTrackCue o = TextTrackCueClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TextTrackCueList".------ <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList Mozilla TextTrackCueList documentation>-newtype TextTrackCueList = TextTrackCueList { unTextTrackCueList :: JSVal }--instance PToJSVal TextTrackCueList where-  pToJSVal = unTextTrackCueList-  {-# INLINE pToJSVal #-}--instance PFromJSVal TextTrackCueList where-  pFromJSVal = TextTrackCueList-  {-# INLINE pFromJSVal #-}--instance ToJSVal TextTrackCueList where-  toJSVal = return . unTextTrackCueList-  {-# INLINE toJSVal #-}--instance FromJSVal TextTrackCueList where-  fromJSVal v = fmap TextTrackCueList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TextTrackCueList where-  makeObject = makeObject . unTextTrackCueList--instance IsGObject TextTrackCueList where-  typeGType _ = gTypeTextTrackCueList-  {-# INLINE typeGType #-}--gTypeTextTrackCueList :: JSM GType-gTypeTextTrackCueList = GType . Object <$> jsg "TextTrackCueList"-#else-#ifndef USE_OLD_WEBKIT-type IsTextTrackCueList o = TextTrackCueListClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TextTrackList".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList Mozilla TextTrackList documentation>-newtype TextTrackList = TextTrackList { unTextTrackList :: JSVal }--instance PToJSVal TextTrackList where-  pToJSVal = unTextTrackList-  {-# INLINE pToJSVal #-}--instance PFromJSVal TextTrackList where-  pFromJSVal = TextTrackList-  {-# INLINE pFromJSVal #-}--instance ToJSVal TextTrackList where-  toJSVal = return . unTextTrackList-  {-# INLINE toJSVal #-}--instance FromJSVal TextTrackList where-  fromJSVal v = fmap TextTrackList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TextTrackList where-  makeObject = makeObject . unTextTrackList--instance IsEventTarget TextTrackList-instance IsGObject TextTrackList where-  typeGType _ = gTypeTextTrackList-  {-# INLINE typeGType #-}--gTypeTextTrackList :: JSM GType-gTypeTextTrackList = GType . Object <$> jsg "TextTrackList"-#else-#ifndef USE_OLD_WEBKIT-type IsTextTrackList o = TextTrackListClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TimeRanges".------ <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges Mozilla TimeRanges documentation>-newtype TimeRanges = TimeRanges { unTimeRanges :: JSVal }--instance PToJSVal TimeRanges where-  pToJSVal = unTimeRanges-  {-# INLINE pToJSVal #-}--instance PFromJSVal TimeRanges where-  pFromJSVal = TimeRanges-  {-# INLINE pFromJSVal #-}--instance ToJSVal TimeRanges where-  toJSVal = return . unTimeRanges-  {-# INLINE toJSVal #-}--instance FromJSVal TimeRanges where-  fromJSVal v = fmap TimeRanges <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TimeRanges where-  makeObject = makeObject . unTimeRanges--instance IsGObject TimeRanges where-  typeGType _ = gTypeTimeRanges-  {-# INLINE typeGType #-}--gTypeTimeRanges :: JSM GType-gTypeTimeRanges = GType . Object <$> jsg "TimeRanges"-#else-type IsTimeRanges o = TimeRangesClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Touch".------ <https://developer.mozilla.org/en-US/docs/Web/API/Touch Mozilla Touch documentation>-newtype Touch = Touch { unTouch :: JSVal }--instance PToJSVal Touch where-  pToJSVal = unTouch-  {-# INLINE pToJSVal #-}--instance PFromJSVal Touch where-  pFromJSVal = Touch-  {-# INLINE pFromJSVal #-}--instance ToJSVal Touch where-  toJSVal = return . unTouch-  {-# INLINE toJSVal #-}--instance FromJSVal Touch where-  fromJSVal v = fmap Touch <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Touch where-  makeObject = makeObject . unTouch--instance IsGObject Touch where-  typeGType _ = gTypeTouch-  {-# INLINE typeGType #-}--gTypeTouch :: JSM GType-gTypeTouch = GType . Object <$> jsg "Touch"-#else-#ifndef USE_OLD_WEBKIT-type IsTouch o = TouchClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TouchEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent Mozilla TouchEvent documentation>-newtype TouchEvent = TouchEvent { unTouchEvent :: JSVal }--instance PToJSVal TouchEvent where-  pToJSVal = unTouchEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal TouchEvent where-  pFromJSVal = TouchEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal TouchEvent where-  toJSVal = return . unTouchEvent-  {-# INLINE toJSVal #-}--instance FromJSVal TouchEvent where-  fromJSVal v = fmap TouchEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TouchEvent where-  makeObject = makeObject . unTouchEvent--instance IsUIEvent TouchEvent-instance IsEvent TouchEvent-instance IsGObject TouchEvent where-  typeGType _ = gTypeTouchEvent-  {-# INLINE typeGType #-}--gTypeTouchEvent :: JSM GType-gTypeTouchEvent = GType . Object <$> jsg "TouchEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TouchList".------ <https://developer.mozilla.org/en-US/docs/Web/API/TouchList Mozilla TouchList documentation>-newtype TouchList = TouchList { unTouchList :: JSVal }--instance PToJSVal TouchList where-  pToJSVal = unTouchList-  {-# INLINE pToJSVal #-}--instance PFromJSVal TouchList where-  pFromJSVal = TouchList-  {-# INLINE pFromJSVal #-}--instance ToJSVal TouchList where-  toJSVal = return . unTouchList-  {-# INLINE toJSVal #-}--instance FromJSVal TouchList where-  fromJSVal v = fmap TouchList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TouchList where-  makeObject = makeObject . unTouchList--instance IsGObject TouchList where-  typeGType _ = gTypeTouchList-  {-# INLINE typeGType #-}--gTypeTouchList :: JSM GType-gTypeTouchList = GType . Object <$> jsg "TouchList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TrackEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent Mozilla TrackEvent documentation>-newtype TrackEvent = TrackEvent { unTrackEvent :: JSVal }--instance PToJSVal TrackEvent where-  pToJSVal = unTrackEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal TrackEvent where-  pFromJSVal = TrackEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal TrackEvent where-  toJSVal = return . unTrackEvent-  {-# INLINE toJSVal #-}--instance FromJSVal TrackEvent where-  fromJSVal v = fmap TrackEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TrackEvent where-  makeObject = makeObject . unTrackEvent--instance IsEvent TrackEvent-instance IsGObject TrackEvent where-  typeGType _ = gTypeTrackEvent-  {-# INLINE typeGType #-}--gTypeTrackEvent :: JSM GType-gTypeTrackEvent = GType . Object <$> jsg "TrackEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TransitionEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent Mozilla TransitionEvent documentation>-newtype TransitionEvent = TransitionEvent { unTransitionEvent :: JSVal }--instance PToJSVal TransitionEvent where-  pToJSVal = unTransitionEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal TransitionEvent where-  pFromJSVal = TransitionEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal TransitionEvent where-  toJSVal = return . unTransitionEvent-  {-# INLINE toJSVal #-}--instance FromJSVal TransitionEvent where-  fromJSVal v = fmap TransitionEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TransitionEvent where-  makeObject = makeObject . unTransitionEvent--instance IsEvent TransitionEvent-instance IsGObject TransitionEvent where-  typeGType _ = gTypeTransitionEvent-  {-# INLINE typeGType #-}--gTypeTransitionEvent :: JSM GType-gTypeTransitionEvent = GType . Object <$> jsg "TransitionEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TreeWalker".------ <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker Mozilla TreeWalker documentation>-newtype TreeWalker = TreeWalker { unTreeWalker :: JSVal }--instance PToJSVal TreeWalker where-  pToJSVal = unTreeWalker-  {-# INLINE pToJSVal #-}--instance PFromJSVal TreeWalker where-  pFromJSVal = TreeWalker-  {-# INLINE pFromJSVal #-}--instance ToJSVal TreeWalker where-  toJSVal = return . unTreeWalker-  {-# INLINE toJSVal #-}--instance FromJSVal TreeWalker where-  fromJSVal v = fmap TreeWalker <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TreeWalker where-  makeObject = makeObject . unTreeWalker--instance IsGObject TreeWalker where-  typeGType _ = gTypeTreeWalker-  {-# INLINE typeGType #-}--gTypeTreeWalker :: JSM GType-gTypeTreeWalker = GType . Object <$> jsg "TreeWalker"-#else-type IsTreeWalker o = TreeWalkerClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.TypeConversions".------ <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions Mozilla TypeConversions documentation>-newtype TypeConversions = TypeConversions { unTypeConversions :: JSVal }--instance PToJSVal TypeConversions where-  pToJSVal = unTypeConversions-  {-# INLINE pToJSVal #-}--instance PFromJSVal TypeConversions where-  pFromJSVal = TypeConversions-  {-# INLINE pFromJSVal #-}--instance ToJSVal TypeConversions where-  toJSVal = return . unTypeConversions-  {-# INLINE toJSVal #-}--instance FromJSVal TypeConversions where-  fromJSVal v = fmap TypeConversions <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject TypeConversions where-  makeObject = makeObject . unTypeConversions--instance IsGObject TypeConversions where-  typeGType _ = gTypeTypeConversions-  {-# INLINE typeGType #-}--gTypeTypeConversions :: JSM GType-gTypeTypeConversions = GType . Object <$> jsg "TypeConversions"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.UIEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent Mozilla UIEvent documentation>-newtype UIEvent = UIEvent { unUIEvent :: JSVal }--instance PToJSVal UIEvent where-  pToJSVal = unUIEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal UIEvent where-  pFromJSVal = UIEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal UIEvent where-  toJSVal = return . unUIEvent-  {-# INLINE toJSVal #-}--instance FromJSVal UIEvent where-  fromJSVal v = fmap UIEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject UIEvent where-  makeObject = makeObject . unUIEvent--class IsEvent o => IsUIEvent o-toUIEvent :: IsUIEvent o => o -> UIEvent-toUIEvent = UIEvent . coerce--instance IsUIEvent UIEvent-instance IsEvent UIEvent-instance IsGObject UIEvent where-  typeGType _ = gTypeUIEvent-  {-# INLINE typeGType #-}--gTypeUIEvent :: JSM GType-gTypeUIEvent = GType . Object <$> jsg "UIEvent"-#else-type IsUIEvent o = UIEventClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.UIRequestEvent".--- Base interface functions are in:------     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/UIRequestEvent Mozilla UIRequestEvent documentation>-newtype UIRequestEvent = UIRequestEvent { unUIRequestEvent :: JSVal }--instance PToJSVal UIRequestEvent where-  pToJSVal = unUIRequestEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal UIRequestEvent where-  pFromJSVal = UIRequestEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal UIRequestEvent where-  toJSVal = return . unUIRequestEvent-  {-# INLINE toJSVal #-}--instance FromJSVal UIRequestEvent where-  fromJSVal v = fmap UIRequestEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject UIRequestEvent where-  makeObject = makeObject . unUIRequestEvent--instance IsUIEvent UIRequestEvent-instance IsEvent UIRequestEvent-instance IsGObject UIRequestEvent where-  typeGType _ = gTypeUIRequestEvent-  {-# INLINE typeGType #-}--gTypeUIRequestEvent :: JSM GType-gTypeUIRequestEvent = GType . Object <$> jsg "UIRequestEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.URL".------ <https://developer.mozilla.org/en-US/docs/Web/API/URL Mozilla URL documentation>-newtype URL = URL { unURL :: JSVal }--instance PToJSVal URL where-  pToJSVal = unURL-  {-# INLINE pToJSVal #-}--instance PFromJSVal URL where-  pFromJSVal = URL-  {-# INLINE pFromJSVal #-}--instance ToJSVal URL where-  toJSVal = return . unURL-  {-# INLINE toJSVal #-}--instance FromJSVal URL where-  fromJSVal v = fmap URL <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject URL where-  makeObject = makeObject . unURL--instance IsGObject URL where-  typeGType _ = gTypeURL-  {-# INLINE typeGType #-}--gTypeURL :: JSM GType-gTypeURL = GType . Object <$> jsg "URL"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.URLUtils".------ <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils Mozilla URLUtils documentation>-newtype URLUtils = URLUtils { unURLUtils :: JSVal }--instance PToJSVal URLUtils where-  pToJSVal = unURLUtils-  {-# INLINE pToJSVal #-}--instance PFromJSVal URLUtils where-  pFromJSVal = URLUtils-  {-# INLINE pFromJSVal #-}--instance ToJSVal URLUtils where-  toJSVal = return . unURLUtils-  {-# INLINE toJSVal #-}--instance FromJSVal URLUtils where-  fromJSVal v = fmap URLUtils <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject URLUtils where-  makeObject = makeObject . unURLUtils--instance IsGObject URLUtils where-  typeGType _ = gTypeURLUtils-  {-# INLINE typeGType #-}--gTypeURLUtils :: JSM GType-gTypeURLUtils = GType . Object <$> jsg "URLUtils"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.UserMessageHandler".------ <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandler Mozilla UserMessageHandler documentation>-newtype UserMessageHandler = UserMessageHandler { unUserMessageHandler :: JSVal }--instance PToJSVal UserMessageHandler where-  pToJSVal = unUserMessageHandler-  {-# INLINE pToJSVal #-}--instance PFromJSVal UserMessageHandler where-  pFromJSVal = UserMessageHandler-  {-# INLINE pFromJSVal #-}--instance ToJSVal UserMessageHandler where-  toJSVal = return . unUserMessageHandler-  {-# INLINE toJSVal #-}--instance FromJSVal UserMessageHandler where-  fromJSVal v = fmap UserMessageHandler <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject UserMessageHandler where-  makeObject = makeObject . unUserMessageHandler--instance IsGObject UserMessageHandler where-  typeGType _ = gTypeUserMessageHandler-  {-# INLINE typeGType #-}--gTypeUserMessageHandler :: JSM GType-gTypeUserMessageHandler = GType . Object <$> jsg "UserMessageHandler"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.UserMessageHandlersNamespace".------ <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandlersNamespace Mozilla UserMessageHandlersNamespace documentation>-newtype UserMessageHandlersNamespace = UserMessageHandlersNamespace { unUserMessageHandlersNamespace :: JSVal }--instance PToJSVal UserMessageHandlersNamespace where-  pToJSVal = unUserMessageHandlersNamespace-  {-# INLINE pToJSVal #-}--instance PFromJSVal UserMessageHandlersNamespace where-  pFromJSVal = UserMessageHandlersNamespace-  {-# INLINE pFromJSVal #-}--instance ToJSVal UserMessageHandlersNamespace where-  toJSVal = return . unUserMessageHandlersNamespace-  {-# INLINE toJSVal #-}--instance FromJSVal UserMessageHandlersNamespace where-  fromJSVal v = fmap UserMessageHandlersNamespace <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject UserMessageHandlersNamespace where-  makeObject = makeObject . unUserMessageHandlersNamespace--instance IsGObject UserMessageHandlersNamespace where-  typeGType _ = gTypeUserMessageHandlersNamespace-  {-# INLINE typeGType #-}--gTypeUserMessageHandlersNamespace :: JSM GType-gTypeUserMessageHandlersNamespace = GType . Object <$> jsg "UserMessageHandlersNamespace"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VTTCue".--- Base interface functions are in:------     * "JSDOM.TextTrackCue"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue Mozilla VTTCue documentation>-newtype VTTCue = VTTCue { unVTTCue :: JSVal }--instance PToJSVal VTTCue where-  pToJSVal = unVTTCue-  {-# INLINE pToJSVal #-}--instance PFromJSVal VTTCue where-  pFromJSVal = VTTCue-  {-# INLINE pFromJSVal #-}--instance ToJSVal VTTCue where-  toJSVal = return . unVTTCue-  {-# INLINE toJSVal #-}--instance FromJSVal VTTCue where-  fromJSVal v = fmap VTTCue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VTTCue where-  makeObject = makeObject . unVTTCue--instance IsTextTrackCue VTTCue-instance IsEventTarget VTTCue-instance IsGObject VTTCue where-  typeGType _ = gTypeVTTCue-  {-# INLINE typeGType #-}--gTypeVTTCue :: JSM GType-gTypeVTTCue = GType . Object <$> jsg "VTTCue"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VTTRegion".------ <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion Mozilla VTTRegion documentation>-newtype VTTRegion = VTTRegion { unVTTRegion :: JSVal }--instance PToJSVal VTTRegion where-  pToJSVal = unVTTRegion-  {-# INLINE pToJSVal #-}--instance PFromJSVal VTTRegion where-  pFromJSVal = VTTRegion-  {-# INLINE pFromJSVal #-}--instance ToJSVal VTTRegion where-  toJSVal = return . unVTTRegion-  {-# INLINE toJSVal #-}--instance FromJSVal VTTRegion where-  fromJSVal v = fmap VTTRegion <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VTTRegion where-  makeObject = makeObject . unVTTRegion--instance IsGObject VTTRegion where-  typeGType _ = gTypeVTTRegion-  {-# INLINE typeGType #-}--gTypeVTTRegion :: JSM GType-gTypeVTTRegion = GType . Object <$> jsg "VTTRegion"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VTTRegionList".------ <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList Mozilla VTTRegionList documentation>-newtype VTTRegionList = VTTRegionList { unVTTRegionList :: JSVal }--instance PToJSVal VTTRegionList where-  pToJSVal = unVTTRegionList-  {-# INLINE pToJSVal #-}--instance PFromJSVal VTTRegionList where-  pFromJSVal = VTTRegionList-  {-# INLINE pFromJSVal #-}--instance ToJSVal VTTRegionList where-  toJSVal = return . unVTTRegionList-  {-# INLINE toJSVal #-}--instance FromJSVal VTTRegionList where-  fromJSVal v = fmap VTTRegionList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VTTRegionList where-  makeObject = makeObject . unVTTRegionList--instance IsGObject VTTRegionList where-  typeGType _ = gTypeVTTRegionList-  {-# INLINE typeGType #-}--gTypeVTTRegionList :: JSM GType-gTypeVTTRegionList = GType . Object <$> jsg "VTTRegionList"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.ValidityState".------ <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState Mozilla ValidityState documentation>-newtype ValidityState = ValidityState { unValidityState :: JSVal }--instance PToJSVal ValidityState where-  pToJSVal = unValidityState-  {-# INLINE pToJSVal #-}--instance PFromJSVal ValidityState where-  pFromJSVal = ValidityState-  {-# INLINE pFromJSVal #-}--instance ToJSVal ValidityState where-  toJSVal = return . unValidityState-  {-# INLINE toJSVal #-}--instance FromJSVal ValidityState where-  fromJSVal v = fmap ValidityState <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject ValidityState where-  makeObject = makeObject . unValidityState--instance IsGObject ValidityState where-  typeGType _ = gTypeValidityState-  {-# INLINE typeGType #-}--gTypeValidityState :: JSM GType-gTypeValidityState = GType . Object <$> jsg "ValidityState"-#else-type IsValidityState o = ValidityStateClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VideoPlaybackQuality".------ <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality Mozilla VideoPlaybackQuality documentation>-newtype VideoPlaybackQuality = VideoPlaybackQuality { unVideoPlaybackQuality :: JSVal }--instance PToJSVal VideoPlaybackQuality where-  pToJSVal = unVideoPlaybackQuality-  {-# INLINE pToJSVal #-}--instance PFromJSVal VideoPlaybackQuality where-  pFromJSVal = VideoPlaybackQuality-  {-# INLINE pFromJSVal #-}--instance ToJSVal VideoPlaybackQuality where-  toJSVal = return . unVideoPlaybackQuality-  {-# INLINE toJSVal #-}--instance FromJSVal VideoPlaybackQuality where-  fromJSVal v = fmap VideoPlaybackQuality <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VideoPlaybackQuality where-  makeObject = makeObject . unVideoPlaybackQuality--instance IsGObject VideoPlaybackQuality where-  typeGType _ = gTypeVideoPlaybackQuality-  {-# INLINE typeGType #-}--gTypeVideoPlaybackQuality :: JSM GType-gTypeVideoPlaybackQuality = GType . Object <$> jsg "VideoPlaybackQuality"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VideoStreamTrack".--- Base interface functions are in:------     * "JSDOM.MediaStreamTrack"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/VideoStreamTrack Mozilla VideoStreamTrack documentation>-newtype VideoStreamTrack = VideoStreamTrack { unVideoStreamTrack :: JSVal }--instance PToJSVal VideoStreamTrack where-  pToJSVal = unVideoStreamTrack-  {-# INLINE pToJSVal #-}--instance PFromJSVal VideoStreamTrack where-  pFromJSVal = VideoStreamTrack-  {-# INLINE pFromJSVal #-}--instance ToJSVal VideoStreamTrack where-  toJSVal = return . unVideoStreamTrack-  {-# INLINE toJSVal #-}--instance FromJSVal VideoStreamTrack where-  fromJSVal v = fmap VideoStreamTrack <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VideoStreamTrack where-  makeObject = makeObject . unVideoStreamTrack--instance IsMediaStreamTrack VideoStreamTrack-instance IsEventTarget VideoStreamTrack-instance IsGObject VideoStreamTrack where-  typeGType _ = gTypeVideoStreamTrack-  {-# INLINE typeGType #-}--gTypeVideoStreamTrack :: JSM GType-gTypeVideoStreamTrack = GType . Object <$> jsg "VideoStreamTrack"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VideoTrack".------ <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack Mozilla VideoTrack documentation>-newtype VideoTrack = VideoTrack { unVideoTrack :: JSVal }--instance PToJSVal VideoTrack where-  pToJSVal = unVideoTrack-  {-# INLINE pToJSVal #-}--instance PFromJSVal VideoTrack where-  pFromJSVal = VideoTrack-  {-# INLINE pFromJSVal #-}--instance ToJSVal VideoTrack where-  toJSVal = return . unVideoTrack-  {-# INLINE toJSVal #-}--instance FromJSVal VideoTrack where-  fromJSVal v = fmap VideoTrack <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VideoTrack where-  makeObject = makeObject . unVideoTrack--instance IsGObject VideoTrack where-  typeGType _ = gTypeVideoTrack-  {-# INLINE typeGType #-}--gTypeVideoTrack :: JSM GType-gTypeVideoTrack = GType . Object <$> jsg "VideoTrack"-#else-#ifndef USE_OLD_WEBKIT-type IsVideoTrack o = VideoTrackClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.VideoTrackList".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList Mozilla VideoTrackList documentation>-newtype VideoTrackList = VideoTrackList { unVideoTrackList :: JSVal }--instance PToJSVal VideoTrackList where-  pToJSVal = unVideoTrackList-  {-# INLINE pToJSVal #-}--instance PFromJSVal VideoTrackList where-  pFromJSVal = VideoTrackList-  {-# INLINE pFromJSVal #-}--instance ToJSVal VideoTrackList where-  toJSVal = return . unVideoTrackList-  {-# INLINE toJSVal #-}--instance FromJSVal VideoTrackList where-  fromJSVal v = fmap VideoTrackList <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject VideoTrackList where-  makeObject = makeObject . unVideoTrackList--instance IsEventTarget VideoTrackList-instance IsGObject VideoTrackList where-  typeGType _ = gTypeVideoTrackList-  {-# INLINE typeGType #-}--gTypeVideoTrackList :: JSM GType-gTypeVideoTrackList = GType . Object <$> jsg "VideoTrackList"-#else-#ifndef USE_OLD_WEBKIT-type IsVideoTrackList o = VideoTrackListClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WaveShaperNode".--- Base interface functions are in:------     * "JSDOM.AudioNode"---     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode Mozilla WaveShaperNode documentation>-newtype WaveShaperNode = WaveShaperNode { unWaveShaperNode :: JSVal }--instance PToJSVal WaveShaperNode where-  pToJSVal = unWaveShaperNode-  {-# INLINE pToJSVal #-}--instance PFromJSVal WaveShaperNode where-  pFromJSVal = WaveShaperNode-  {-# INLINE pFromJSVal #-}--instance ToJSVal WaveShaperNode where-  toJSVal = return . unWaveShaperNode-  {-# INLINE toJSVal #-}--instance FromJSVal WaveShaperNode where-  fromJSVal v = fmap WaveShaperNode <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WaveShaperNode where-  makeObject = makeObject . unWaveShaperNode--instance IsAudioNode WaveShaperNode-instance IsEventTarget WaveShaperNode-instance IsGObject WaveShaperNode where-  typeGType _ = gTypeWaveShaperNode-  {-# INLINE typeGType #-}--gTypeWaveShaperNode :: JSM GType-gTypeWaveShaperNode = GType . Object <$> jsg "WaveShaperNode"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGL2RenderingContext".--- Base interface functions are in:------     * "JSDOM.WebGLRenderingContextBase"---     * "JSDOM.CanvasRenderingContext"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext Mozilla WebGL2RenderingContext documentation>-newtype WebGL2RenderingContext = WebGL2RenderingContext { unWebGL2RenderingContext :: JSVal }--instance PToJSVal WebGL2RenderingContext where-  pToJSVal = unWebGL2RenderingContext-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGL2RenderingContext where-  pFromJSVal = WebGL2RenderingContext-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGL2RenderingContext where-  toJSVal = return . unWebGL2RenderingContext-  {-# INLINE toJSVal #-}--instance FromJSVal WebGL2RenderingContext where-  fromJSVal v = fmap WebGL2RenderingContext <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGL2RenderingContext where-  makeObject = makeObject . unWebGL2RenderingContext--instance IsWebGLRenderingContextBase WebGL2RenderingContext-instance IsCanvasRenderingContext WebGL2RenderingContext-instance IsGObject WebGL2RenderingContext where-  typeGType _ = gTypeWebGL2RenderingContext-  {-# INLINE typeGType #-}--gTypeWebGL2RenderingContext :: JSM GType-gTypeWebGL2RenderingContext = GType . Object <$> jsg "WebGL2RenderingContext"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLActiveInfo".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo Mozilla WebGLActiveInfo documentation>-newtype WebGLActiveInfo = WebGLActiveInfo { unWebGLActiveInfo :: JSVal }--instance PToJSVal WebGLActiveInfo where-  pToJSVal = unWebGLActiveInfo-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLActiveInfo where-  pFromJSVal = WebGLActiveInfo-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLActiveInfo where-  toJSVal = return . unWebGLActiveInfo-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLActiveInfo where-  fromJSVal v = fmap WebGLActiveInfo <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLActiveInfo where-  makeObject = makeObject . unWebGLActiveInfo--instance IsGObject WebGLActiveInfo where-  typeGType _ = gTypeWebGLActiveInfo-  {-# INLINE typeGType #-}--gTypeWebGLActiveInfo :: JSM GType-gTypeWebGLActiveInfo = GType . Object <$> jsg "WebGLActiveInfo"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLBuffer".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer Mozilla WebGLBuffer documentation>-newtype WebGLBuffer = WebGLBuffer { unWebGLBuffer :: JSVal }--instance PToJSVal WebGLBuffer where-  pToJSVal = unWebGLBuffer-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLBuffer where-  pFromJSVal = WebGLBuffer-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLBuffer where-  toJSVal = return . unWebGLBuffer-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLBuffer where-  fromJSVal v = fmap WebGLBuffer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLBuffer where-  makeObject = makeObject . unWebGLBuffer--instance IsGObject WebGLBuffer where-  typeGType _ = gTypeWebGLBuffer-  {-# INLINE typeGType #-}--gTypeWebGLBuffer :: JSM GType-gTypeWebGLBuffer = GType . Object <$> jsg "WebGLBuffer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLCompressedTextureATC".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureATC Mozilla WebGLCompressedTextureATC documentation>-newtype WebGLCompressedTextureATC = WebGLCompressedTextureATC { unWebGLCompressedTextureATC :: JSVal }--instance PToJSVal WebGLCompressedTextureATC where-  pToJSVal = unWebGLCompressedTextureATC-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLCompressedTextureATC where-  pFromJSVal = WebGLCompressedTextureATC-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLCompressedTextureATC where-  toJSVal = return . unWebGLCompressedTextureATC-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLCompressedTextureATC where-  fromJSVal v = fmap WebGLCompressedTextureATC <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLCompressedTextureATC where-  makeObject = makeObject . unWebGLCompressedTextureATC--instance IsGObject WebGLCompressedTextureATC where-  typeGType _ = gTypeWebGLCompressedTextureATC-  {-# INLINE typeGType #-}--gTypeWebGLCompressedTextureATC :: JSM GType-gTypeWebGLCompressedTextureATC = GType . Object <$> jsg "WebGLCompressedTextureATC"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLCompressedTexturePVRTC".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTexturePVRTC Mozilla WebGLCompressedTexturePVRTC documentation>-newtype WebGLCompressedTexturePVRTC = WebGLCompressedTexturePVRTC { unWebGLCompressedTexturePVRTC :: JSVal }--instance PToJSVal WebGLCompressedTexturePVRTC where-  pToJSVal = unWebGLCompressedTexturePVRTC-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLCompressedTexturePVRTC where-  pFromJSVal = WebGLCompressedTexturePVRTC-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLCompressedTexturePVRTC where-  toJSVal = return . unWebGLCompressedTexturePVRTC-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLCompressedTexturePVRTC where-  fromJSVal v = fmap WebGLCompressedTexturePVRTC <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLCompressedTexturePVRTC where-  makeObject = makeObject . unWebGLCompressedTexturePVRTC--instance IsGObject WebGLCompressedTexturePVRTC where-  typeGType _ = gTypeWebGLCompressedTexturePVRTC-  {-# INLINE typeGType #-}--gTypeWebGLCompressedTexturePVRTC :: JSM GType-gTypeWebGLCompressedTexturePVRTC = GType . Object <$> jsg "WebGLCompressedTexturePVRTC"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLCompressedTextureS3TC".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureS3TC Mozilla WebGLCompressedTextureS3TC documentation>-newtype WebGLCompressedTextureS3TC = WebGLCompressedTextureS3TC { unWebGLCompressedTextureS3TC :: JSVal }--instance PToJSVal WebGLCompressedTextureS3TC where-  pToJSVal = unWebGLCompressedTextureS3TC-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLCompressedTextureS3TC where-  pFromJSVal = WebGLCompressedTextureS3TC-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLCompressedTextureS3TC where-  toJSVal = return . unWebGLCompressedTextureS3TC-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLCompressedTextureS3TC where-  fromJSVal v = fmap WebGLCompressedTextureS3TC <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLCompressedTextureS3TC where-  makeObject = makeObject . unWebGLCompressedTextureS3TC--instance IsGObject WebGLCompressedTextureS3TC where-  typeGType _ = gTypeWebGLCompressedTextureS3TC-  {-# INLINE typeGType #-}--gTypeWebGLCompressedTextureS3TC :: JSM GType-gTypeWebGLCompressedTextureS3TC = GType . Object <$> jsg "WebGLCompressedTextureS3TC"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLContextAttributes".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes Mozilla WebGLContextAttributes documentation>-newtype WebGLContextAttributes = WebGLContextAttributes { unWebGLContextAttributes :: JSVal }--instance PToJSVal WebGLContextAttributes where-  pToJSVal = unWebGLContextAttributes-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLContextAttributes where-  pFromJSVal = WebGLContextAttributes-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLContextAttributes where-  toJSVal = return . unWebGLContextAttributes-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLContextAttributes where-  fromJSVal v = fmap WebGLContextAttributes <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLContextAttributes where-  makeObject = makeObject . unWebGLContextAttributes--instance IsGObject WebGLContextAttributes where-  typeGType _ = gTypeWebGLContextAttributes-  {-# INLINE typeGType #-}--gTypeWebGLContextAttributes :: JSM GType-gTypeWebGLContextAttributes = GType . Object <$> jsg "WebGLContextAttributes"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLContextEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent Mozilla WebGLContextEvent documentation>-newtype WebGLContextEvent = WebGLContextEvent { unWebGLContextEvent :: JSVal }--instance PToJSVal WebGLContextEvent where-  pToJSVal = unWebGLContextEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLContextEvent where-  pFromJSVal = WebGLContextEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLContextEvent where-  toJSVal = return . unWebGLContextEvent-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLContextEvent where-  fromJSVal v = fmap WebGLContextEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLContextEvent where-  makeObject = makeObject . unWebGLContextEvent--instance IsEvent WebGLContextEvent-instance IsGObject WebGLContextEvent where-  typeGType _ = gTypeWebGLContextEvent-  {-# INLINE typeGType #-}--gTypeWebGLContextEvent :: JSM GType-gTypeWebGLContextEvent = GType . Object <$> jsg "WebGLContextEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLDebugRendererInfo".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugRendererInfo Mozilla WebGLDebugRendererInfo documentation>-newtype WebGLDebugRendererInfo = WebGLDebugRendererInfo { unWebGLDebugRendererInfo :: JSVal }--instance PToJSVal WebGLDebugRendererInfo where-  pToJSVal = unWebGLDebugRendererInfo-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLDebugRendererInfo where-  pFromJSVal = WebGLDebugRendererInfo-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLDebugRendererInfo where-  toJSVal = return . unWebGLDebugRendererInfo-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLDebugRendererInfo where-  fromJSVal v = fmap WebGLDebugRendererInfo <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLDebugRendererInfo where-  makeObject = makeObject . unWebGLDebugRendererInfo--instance IsGObject WebGLDebugRendererInfo where-  typeGType _ = gTypeWebGLDebugRendererInfo-  {-# INLINE typeGType #-}--gTypeWebGLDebugRendererInfo :: JSM GType-gTypeWebGLDebugRendererInfo = GType . Object <$> jsg "WebGLDebugRendererInfo"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLDebugShaders".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders Mozilla WebGLDebugShaders documentation>-newtype WebGLDebugShaders = WebGLDebugShaders { unWebGLDebugShaders :: JSVal }--instance PToJSVal WebGLDebugShaders where-  pToJSVal = unWebGLDebugShaders-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLDebugShaders where-  pFromJSVal = WebGLDebugShaders-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLDebugShaders where-  toJSVal = return . unWebGLDebugShaders-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLDebugShaders where-  fromJSVal v = fmap WebGLDebugShaders <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLDebugShaders where-  makeObject = makeObject . unWebGLDebugShaders--instance IsGObject WebGLDebugShaders where-  typeGType _ = gTypeWebGLDebugShaders-  {-# INLINE typeGType #-}--gTypeWebGLDebugShaders :: JSM GType-gTypeWebGLDebugShaders = GType . Object <$> jsg "WebGLDebugShaders"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLDepthTexture".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDepthTexture Mozilla WebGLDepthTexture documentation>-newtype WebGLDepthTexture = WebGLDepthTexture { unWebGLDepthTexture :: JSVal }--instance PToJSVal WebGLDepthTexture where-  pToJSVal = unWebGLDepthTexture-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLDepthTexture where-  pFromJSVal = WebGLDepthTexture-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLDepthTexture where-  toJSVal = return . unWebGLDepthTexture-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLDepthTexture where-  fromJSVal v = fmap WebGLDepthTexture <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLDepthTexture where-  makeObject = makeObject . unWebGLDepthTexture--instance IsGObject WebGLDepthTexture where-  typeGType _ = gTypeWebGLDepthTexture-  {-# INLINE typeGType #-}--gTypeWebGLDepthTexture :: JSM GType-gTypeWebGLDepthTexture = GType . Object <$> jsg "WebGLDepthTexture"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLDrawBuffers".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDrawBuffers Mozilla WebGLDrawBuffers documentation>-newtype WebGLDrawBuffers = WebGLDrawBuffers { unWebGLDrawBuffers :: JSVal }--instance PToJSVal WebGLDrawBuffers where-  pToJSVal = unWebGLDrawBuffers-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLDrawBuffers where-  pFromJSVal = WebGLDrawBuffers-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLDrawBuffers where-  toJSVal = return . unWebGLDrawBuffers-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLDrawBuffers where-  fromJSVal v = fmap WebGLDrawBuffers <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLDrawBuffers where-  makeObject = makeObject . unWebGLDrawBuffers--instance IsGObject WebGLDrawBuffers where-  typeGType _ = gTypeWebGLDrawBuffers-  {-# INLINE typeGType #-}--gTypeWebGLDrawBuffers :: JSM GType-gTypeWebGLDrawBuffers = GType . Object <$> jsg "WebGLDrawBuffers"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLFramebuffer".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLFramebuffer Mozilla WebGLFramebuffer documentation>-newtype WebGLFramebuffer = WebGLFramebuffer { unWebGLFramebuffer :: JSVal }--instance PToJSVal WebGLFramebuffer where-  pToJSVal = unWebGLFramebuffer-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLFramebuffer where-  pFromJSVal = WebGLFramebuffer-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLFramebuffer where-  toJSVal = return . unWebGLFramebuffer-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLFramebuffer where-  fromJSVal v = fmap WebGLFramebuffer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLFramebuffer where-  makeObject = makeObject . unWebGLFramebuffer--instance IsGObject WebGLFramebuffer where-  typeGType _ = gTypeWebGLFramebuffer-  {-# INLINE typeGType #-}--gTypeWebGLFramebuffer :: JSM GType-gTypeWebGLFramebuffer = GType . Object <$> jsg "WebGLFramebuffer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLLoseContext".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLLoseContext Mozilla WebGLLoseContext documentation>-newtype WebGLLoseContext = WebGLLoseContext { unWebGLLoseContext :: JSVal }--instance PToJSVal WebGLLoseContext where-  pToJSVal = unWebGLLoseContext-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLLoseContext where-  pFromJSVal = WebGLLoseContext-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLLoseContext where-  toJSVal = return . unWebGLLoseContext-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLLoseContext where-  fromJSVal v = fmap WebGLLoseContext <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLLoseContext where-  makeObject = makeObject . unWebGLLoseContext--instance IsGObject WebGLLoseContext where-  typeGType _ = gTypeWebGLLoseContext-  {-# INLINE typeGType #-}--gTypeWebGLLoseContext :: JSM GType-gTypeWebGLLoseContext = GType . Object <$> jsg "WebGLLoseContext"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLProgram".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLProgram Mozilla WebGLProgram documentation>-newtype WebGLProgram = WebGLProgram { unWebGLProgram :: JSVal }--instance PToJSVal WebGLProgram where-  pToJSVal = unWebGLProgram-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLProgram where-  pFromJSVal = WebGLProgram-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLProgram where-  toJSVal = return . unWebGLProgram-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLProgram where-  fromJSVal v = fmap WebGLProgram <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLProgram where-  makeObject = makeObject . unWebGLProgram--instance IsGObject WebGLProgram where-  typeGType _ = gTypeWebGLProgram-  {-# INLINE typeGType #-}--gTypeWebGLProgram :: JSM GType-gTypeWebGLProgram = GType . Object <$> jsg "WebGLProgram"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLQuery".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLQuery Mozilla WebGLQuery documentation>-newtype WebGLQuery = WebGLQuery { unWebGLQuery :: JSVal }--instance PToJSVal WebGLQuery where-  pToJSVal = unWebGLQuery-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLQuery where-  pFromJSVal = WebGLQuery-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLQuery where-  toJSVal = return . unWebGLQuery-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLQuery where-  fromJSVal v = fmap WebGLQuery <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLQuery where-  makeObject = makeObject . unWebGLQuery--instance IsGObject WebGLQuery where-  typeGType _ = gTypeWebGLQuery-  {-# INLINE typeGType #-}--gTypeWebGLQuery :: JSM GType-gTypeWebGLQuery = GType . Object <$> jsg "WebGLQuery"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLRenderbuffer".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderbuffer Mozilla WebGLRenderbuffer documentation>-newtype WebGLRenderbuffer = WebGLRenderbuffer { unWebGLRenderbuffer :: JSVal }--instance PToJSVal WebGLRenderbuffer where-  pToJSVal = unWebGLRenderbuffer-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLRenderbuffer where-  pFromJSVal = WebGLRenderbuffer-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLRenderbuffer where-  toJSVal = return . unWebGLRenderbuffer-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLRenderbuffer where-  fromJSVal v = fmap WebGLRenderbuffer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLRenderbuffer where-  makeObject = makeObject . unWebGLRenderbuffer--instance IsGObject WebGLRenderbuffer where-  typeGType _ = gTypeWebGLRenderbuffer-  {-# INLINE typeGType #-}--gTypeWebGLRenderbuffer :: JSM GType-gTypeWebGLRenderbuffer = GType . Object <$> jsg "WebGLRenderbuffer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLRenderingContext".--- Base interface functions are in:------     * "JSDOM.WebGLRenderingContextBase"---     * "JSDOM.CanvasRenderingContext"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext Mozilla WebGLRenderingContext documentation>-newtype WebGLRenderingContext = WebGLRenderingContext { unWebGLRenderingContext :: JSVal }--instance PToJSVal WebGLRenderingContext where-  pToJSVal = unWebGLRenderingContext-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLRenderingContext where-  pFromJSVal = WebGLRenderingContext-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLRenderingContext where-  toJSVal = return . unWebGLRenderingContext-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLRenderingContext where-  fromJSVal v = fmap WebGLRenderingContext <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLRenderingContext where-  makeObject = makeObject . unWebGLRenderingContext--instance IsWebGLRenderingContextBase WebGLRenderingContext-instance IsCanvasRenderingContext WebGLRenderingContext-instance IsGObject WebGLRenderingContext where-  typeGType _ = gTypeWebGLRenderingContext-  {-# INLINE typeGType #-}--gTypeWebGLRenderingContext :: JSM GType-gTypeWebGLRenderingContext = GType . Object <$> jsg "WebGLRenderingContext"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLRenderingContextBase".--- Base interface functions are in:------     * "JSDOM.CanvasRenderingContext"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase Mozilla WebGLRenderingContextBase documentation>-newtype WebGLRenderingContextBase = WebGLRenderingContextBase { unWebGLRenderingContextBase :: JSVal }--instance PToJSVal WebGLRenderingContextBase where-  pToJSVal = unWebGLRenderingContextBase-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLRenderingContextBase where-  pFromJSVal = WebGLRenderingContextBase-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLRenderingContextBase where-  toJSVal = return . unWebGLRenderingContextBase-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLRenderingContextBase where-  fromJSVal v = fmap WebGLRenderingContextBase <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLRenderingContextBase where-  makeObject = makeObject . unWebGLRenderingContextBase--class IsCanvasRenderingContext o => IsWebGLRenderingContextBase o-toWebGLRenderingContextBase :: IsWebGLRenderingContextBase o => o -> WebGLRenderingContextBase-toWebGLRenderingContextBase = WebGLRenderingContextBase . coerce--instance IsWebGLRenderingContextBase WebGLRenderingContextBase-instance IsCanvasRenderingContext WebGLRenderingContextBase-instance IsGObject WebGLRenderingContextBase where-  typeGType _ = gTypeWebGLRenderingContextBase-  {-# INLINE typeGType #-}--gTypeWebGLRenderingContextBase :: JSM GType-gTypeWebGLRenderingContextBase = GType . Object <$> jsg "WebGLRenderingContextBase"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLSampler".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSampler Mozilla WebGLSampler documentation>-newtype WebGLSampler = WebGLSampler { unWebGLSampler :: JSVal }--instance PToJSVal WebGLSampler where-  pToJSVal = unWebGLSampler-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLSampler where-  pFromJSVal = WebGLSampler-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLSampler where-  toJSVal = return . unWebGLSampler-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLSampler where-  fromJSVal v = fmap WebGLSampler <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLSampler where-  makeObject = makeObject . unWebGLSampler--instance IsGObject WebGLSampler where-  typeGType _ = gTypeWebGLSampler-  {-# INLINE typeGType #-}--gTypeWebGLSampler :: JSM GType-gTypeWebGLSampler = GType . Object <$> jsg "WebGLSampler"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLShader".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShader Mozilla WebGLShader documentation>-newtype WebGLShader = WebGLShader { unWebGLShader :: JSVal }--instance PToJSVal WebGLShader where-  pToJSVal = unWebGLShader-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLShader where-  pFromJSVal = WebGLShader-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLShader where-  toJSVal = return . unWebGLShader-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLShader where-  fromJSVal v = fmap WebGLShader <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLShader where-  makeObject = makeObject . unWebGLShader--instance IsGObject WebGLShader where-  typeGType _ = gTypeWebGLShader-  {-# INLINE typeGType #-}--gTypeWebGLShader :: JSM GType-gTypeWebGLShader = GType . Object <$> jsg "WebGLShader"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLShaderPrecisionFormat".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat Mozilla WebGLShaderPrecisionFormat documentation>-newtype WebGLShaderPrecisionFormat = WebGLShaderPrecisionFormat { unWebGLShaderPrecisionFormat :: JSVal }--instance PToJSVal WebGLShaderPrecisionFormat where-  pToJSVal = unWebGLShaderPrecisionFormat-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLShaderPrecisionFormat where-  pFromJSVal = WebGLShaderPrecisionFormat-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLShaderPrecisionFormat where-  toJSVal = return . unWebGLShaderPrecisionFormat-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLShaderPrecisionFormat where-  fromJSVal v = fmap WebGLShaderPrecisionFormat <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLShaderPrecisionFormat where-  makeObject = makeObject . unWebGLShaderPrecisionFormat--instance IsGObject WebGLShaderPrecisionFormat where-  typeGType _ = gTypeWebGLShaderPrecisionFormat-  {-# INLINE typeGType #-}--gTypeWebGLShaderPrecisionFormat :: JSM GType-gTypeWebGLShaderPrecisionFormat = GType . Object <$> jsg "WebGLShaderPrecisionFormat"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLSync".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSync Mozilla WebGLSync documentation>-newtype WebGLSync = WebGLSync { unWebGLSync :: JSVal }--instance PToJSVal WebGLSync where-  pToJSVal = unWebGLSync-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLSync where-  pFromJSVal = WebGLSync-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLSync where-  toJSVal = return . unWebGLSync-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLSync where-  fromJSVal v = fmap WebGLSync <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLSync where-  makeObject = makeObject . unWebGLSync--instance IsGObject WebGLSync where-  typeGType _ = gTypeWebGLSync-  {-# INLINE typeGType #-}--gTypeWebGLSync :: JSM GType-gTypeWebGLSync = GType . Object <$> jsg "WebGLSync"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLTexture".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture Mozilla WebGLTexture documentation>-newtype WebGLTexture = WebGLTexture { unWebGLTexture :: JSVal }--instance PToJSVal WebGLTexture where-  pToJSVal = unWebGLTexture-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLTexture where-  pFromJSVal = WebGLTexture-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLTexture where-  toJSVal = return . unWebGLTexture-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLTexture where-  fromJSVal v = fmap WebGLTexture <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLTexture where-  makeObject = makeObject . unWebGLTexture--instance IsGObject WebGLTexture where-  typeGType _ = gTypeWebGLTexture-  {-# INLINE typeGType #-}--gTypeWebGLTexture :: JSM GType-gTypeWebGLTexture = GType . Object <$> jsg "WebGLTexture"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLTransformFeedback".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTransformFeedback Mozilla WebGLTransformFeedback documentation>-newtype WebGLTransformFeedback = WebGLTransformFeedback { unWebGLTransformFeedback :: JSVal }--instance PToJSVal WebGLTransformFeedback where-  pToJSVal = unWebGLTransformFeedback-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLTransformFeedback where-  pFromJSVal = WebGLTransformFeedback-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLTransformFeedback where-  toJSVal = return . unWebGLTransformFeedback-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLTransformFeedback where-  fromJSVal v = fmap WebGLTransformFeedback <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLTransformFeedback where-  makeObject = makeObject . unWebGLTransformFeedback--instance IsGObject WebGLTransformFeedback where-  typeGType _ = gTypeWebGLTransformFeedback-  {-# INLINE typeGType #-}--gTypeWebGLTransformFeedback :: JSM GType-gTypeWebGLTransformFeedback = GType . Object <$> jsg "WebGLTransformFeedback"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLUniformLocation".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLUniformLocation Mozilla WebGLUniformLocation documentation>-newtype WebGLUniformLocation = WebGLUniformLocation { unWebGLUniformLocation :: JSVal }--instance PToJSVal WebGLUniformLocation where-  pToJSVal = unWebGLUniformLocation-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLUniformLocation where-  pFromJSVal = WebGLUniformLocation-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLUniformLocation where-  toJSVal = return . unWebGLUniformLocation-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLUniformLocation where-  fromJSVal v = fmap WebGLUniformLocation <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLUniformLocation where-  makeObject = makeObject . unWebGLUniformLocation--instance IsGObject WebGLUniformLocation where-  typeGType _ = gTypeWebGLUniformLocation-  {-# INLINE typeGType #-}--gTypeWebGLUniformLocation :: JSM GType-gTypeWebGLUniformLocation = GType . Object <$> jsg "WebGLUniformLocation"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLVertexArrayObject".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObject Mozilla WebGLVertexArrayObject documentation>-newtype WebGLVertexArrayObject = WebGLVertexArrayObject { unWebGLVertexArrayObject :: JSVal }--instance PToJSVal WebGLVertexArrayObject where-  pToJSVal = unWebGLVertexArrayObject-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLVertexArrayObject where-  pFromJSVal = WebGLVertexArrayObject-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLVertexArrayObject where-  toJSVal = return . unWebGLVertexArrayObject-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLVertexArrayObject where-  fromJSVal v = fmap WebGLVertexArrayObject <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLVertexArrayObject where-  makeObject = makeObject . unWebGLVertexArrayObject--instance IsGObject WebGLVertexArrayObject where-  typeGType _ = gTypeWebGLVertexArrayObject-  {-# INLINE typeGType #-}--gTypeWebGLVertexArrayObject :: JSM GType-gTypeWebGLVertexArrayObject = GType . Object <$> jsg "WebGLVertexArrayObject"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebGLVertexArrayObjectOES".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObjectOES Mozilla WebGLVertexArrayObjectOES documentation>-newtype WebGLVertexArrayObjectOES = WebGLVertexArrayObjectOES { unWebGLVertexArrayObjectOES :: JSVal }--instance PToJSVal WebGLVertexArrayObjectOES where-  pToJSVal = unWebGLVertexArrayObjectOES-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebGLVertexArrayObjectOES where-  pFromJSVal = WebGLVertexArrayObjectOES-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebGLVertexArrayObjectOES where-  toJSVal = return . unWebGLVertexArrayObjectOES-  {-# INLINE toJSVal #-}--instance FromJSVal WebGLVertexArrayObjectOES where-  fromJSVal v = fmap WebGLVertexArrayObjectOES <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebGLVertexArrayObjectOES where-  makeObject = makeObject . unWebGLVertexArrayObjectOES--instance IsGObject WebGLVertexArrayObjectOES where-  typeGType _ = gTypeWebGLVertexArrayObjectOES-  {-# INLINE typeGType #-}--gTypeWebGLVertexArrayObjectOES :: JSM GType-gTypeWebGLVertexArrayObjectOES = GType . Object <$> jsg "WebGLVertexArrayObjectOES"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitAnimationEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEvent Mozilla WebKitAnimationEvent documentation>-newtype WebKitAnimationEvent = WebKitAnimationEvent { unWebKitAnimationEvent :: JSVal }--instance PToJSVal WebKitAnimationEvent where-  pToJSVal = unWebKitAnimationEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitAnimationEvent where-  pFromJSVal = WebKitAnimationEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitAnimationEvent where-  toJSVal = return . unWebKitAnimationEvent-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitAnimationEvent where-  fromJSVal v = fmap WebKitAnimationEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitAnimationEvent where-  makeObject = makeObject . unWebKitAnimationEvent--instance IsEvent WebKitAnimationEvent-instance IsGObject WebKitAnimationEvent where-  typeGType _ = gTypeWebKitAnimationEvent-  {-# INLINE typeGType #-}--gTypeWebKitAnimationEvent :: JSM GType-gTypeWebKitAnimationEvent = GType . Object <$> jsg "WebKitAnimationEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitCSSFilterValue".--- Base interface functions are in:------     * "JSDOM.CSSValueList"---     * "JSDOM.CSSValue"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue Mozilla WebKitCSSFilterValue documentation>-newtype WebKitCSSFilterValue = WebKitCSSFilterValue { unWebKitCSSFilterValue :: JSVal }--instance PToJSVal WebKitCSSFilterValue where-  pToJSVal = unWebKitCSSFilterValue-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitCSSFilterValue where-  pFromJSVal = WebKitCSSFilterValue-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitCSSFilterValue where-  toJSVal = return . unWebKitCSSFilterValue-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitCSSFilterValue where-  fromJSVal v = fmap WebKitCSSFilterValue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitCSSFilterValue where-  makeObject = makeObject . unWebKitCSSFilterValue--instance IsCSSValueList WebKitCSSFilterValue-instance IsCSSValue WebKitCSSFilterValue-instance IsGObject WebKitCSSFilterValue where-  typeGType _ = gTypeWebKitCSSFilterValue-  {-# INLINE typeGType #-}--gTypeWebKitCSSFilterValue :: JSM GType-gTypeWebKitCSSFilterValue = GType . Object <$> jsg "WebKitCSSFilterValue"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitCSSMatrix".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix Mozilla WebKitCSSMatrix documentation>-newtype WebKitCSSMatrix = WebKitCSSMatrix { unWebKitCSSMatrix :: JSVal }--instance PToJSVal WebKitCSSMatrix where-  pToJSVal = unWebKitCSSMatrix-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitCSSMatrix where-  pFromJSVal = WebKitCSSMatrix-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitCSSMatrix where-  toJSVal = return . unWebKitCSSMatrix-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitCSSMatrix where-  fromJSVal v = fmap WebKitCSSMatrix <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitCSSMatrix where-  makeObject = makeObject . unWebKitCSSMatrix--instance IsGObject WebKitCSSMatrix where-  typeGType _ = gTypeWebKitCSSMatrix-  {-# INLINE typeGType #-}--gTypeWebKitCSSMatrix :: JSM GType-gTypeWebKitCSSMatrix = GType . Object <$> jsg "WebKitCSSMatrix"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitCSSRegionRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule Mozilla WebKitCSSRegionRule documentation>-newtype WebKitCSSRegionRule = WebKitCSSRegionRule { unWebKitCSSRegionRule :: JSVal }--instance PToJSVal WebKitCSSRegionRule where-  pToJSVal = unWebKitCSSRegionRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitCSSRegionRule where-  pFromJSVal = WebKitCSSRegionRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitCSSRegionRule where-  toJSVal = return . unWebKitCSSRegionRule-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitCSSRegionRule where-  fromJSVal v = fmap WebKitCSSRegionRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitCSSRegionRule where-  makeObject = makeObject . unWebKitCSSRegionRule--instance IsCSSRule WebKitCSSRegionRule-instance IsGObject WebKitCSSRegionRule where-  typeGType _ = gTypeWebKitCSSRegionRule-  {-# INLINE typeGType #-}--gTypeWebKitCSSRegionRule :: JSM GType-gTypeWebKitCSSRegionRule = GType . Object <$> jsg "WebKitCSSRegionRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitCSSTransformValue".--- Base interface functions are in:------     * "JSDOM.CSSValueList"---     * "JSDOM.CSSValue"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue Mozilla WebKitCSSTransformValue documentation>-newtype WebKitCSSTransformValue = WebKitCSSTransformValue { unWebKitCSSTransformValue :: JSVal }--instance PToJSVal WebKitCSSTransformValue where-  pToJSVal = unWebKitCSSTransformValue-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitCSSTransformValue where-  pFromJSVal = WebKitCSSTransformValue-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitCSSTransformValue where-  toJSVal = return . unWebKitCSSTransformValue-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitCSSTransformValue where-  fromJSVal v = fmap WebKitCSSTransformValue <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitCSSTransformValue where-  makeObject = makeObject . unWebKitCSSTransformValue--instance IsCSSValueList WebKitCSSTransformValue-instance IsCSSValue WebKitCSSTransformValue-instance IsGObject WebKitCSSTransformValue where-  typeGType _ = gTypeWebKitCSSTransformValue-  {-# INLINE typeGType #-}--gTypeWebKitCSSTransformValue :: JSM GType-gTypeWebKitCSSTransformValue = GType . Object <$> jsg "WebKitCSSTransformValue"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitCSSViewportRule".--- Base interface functions are in:------     * "JSDOM.CSSRule"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule Mozilla WebKitCSSViewportRule documentation>-newtype WebKitCSSViewportRule = WebKitCSSViewportRule { unWebKitCSSViewportRule :: JSVal }--instance PToJSVal WebKitCSSViewportRule where-  pToJSVal = unWebKitCSSViewportRule-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitCSSViewportRule where-  pFromJSVal = WebKitCSSViewportRule-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitCSSViewportRule where-  toJSVal = return . unWebKitCSSViewportRule-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitCSSViewportRule where-  fromJSVal v = fmap WebKitCSSViewportRule <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitCSSViewportRule where-  makeObject = makeObject . unWebKitCSSViewportRule--instance IsCSSRule WebKitCSSViewportRule-instance IsGObject WebKitCSSViewportRule where-  typeGType _ = gTypeWebKitCSSViewportRule-  {-# INLINE typeGType #-}--gTypeWebKitCSSViewportRule :: JSM GType-gTypeWebKitCSSViewportRule = GType . Object <$> jsg "WebKitCSSViewportRule"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitNamedFlow".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow Mozilla WebKitNamedFlow documentation>-newtype WebKitNamedFlow = WebKitNamedFlow { unWebKitNamedFlow :: JSVal }--instance PToJSVal WebKitNamedFlow where-  pToJSVal = unWebKitNamedFlow-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitNamedFlow where-  pFromJSVal = WebKitNamedFlow-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitNamedFlow where-  toJSVal = return . unWebKitNamedFlow-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitNamedFlow where-  fromJSVal v = fmap WebKitNamedFlow <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitNamedFlow where-  makeObject = makeObject . unWebKitNamedFlow--instance IsEventTarget WebKitNamedFlow-instance IsGObject WebKitNamedFlow where-  typeGType _ = gTypeWebKitNamedFlow-  {-# INLINE typeGType #-}--gTypeWebKitNamedFlow :: JSM GType-gTypeWebKitNamedFlow = GType . Object <$> jsg "WebKitNamedFlow"-#else-type IsWebKitNamedFlow o = WebKitNamedFlowClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitNamespace".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace Mozilla WebKitNamespace documentation>-newtype WebKitNamespace = WebKitNamespace { unWebKitNamespace :: JSVal }--instance PToJSVal WebKitNamespace where-  pToJSVal = unWebKitNamespace-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitNamespace where-  pFromJSVal = WebKitNamespace-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitNamespace where-  toJSVal = return . unWebKitNamespace-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitNamespace where-  fromJSVal v = fmap WebKitNamespace <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitNamespace where-  makeObject = makeObject . unWebKitNamespace--instance IsGObject WebKitNamespace where-  typeGType _ = gTypeWebKitNamespace-  {-# INLINE typeGType #-}--gTypeWebKitNamespace :: JSM GType-gTypeWebKitNamespace = GType . Object <$> jsg "WebKitNamespace"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitPlaybackTargetAvailabilityEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPlaybackTargetAvailabilityEvent Mozilla WebKitPlaybackTargetAvailabilityEvent documentation>-newtype WebKitPlaybackTargetAvailabilityEvent = WebKitPlaybackTargetAvailabilityEvent { unWebKitPlaybackTargetAvailabilityEvent :: JSVal }--instance PToJSVal WebKitPlaybackTargetAvailabilityEvent where-  pToJSVal = unWebKitPlaybackTargetAvailabilityEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitPlaybackTargetAvailabilityEvent where-  pFromJSVal = WebKitPlaybackTargetAvailabilityEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitPlaybackTargetAvailabilityEvent where-  toJSVal = return . unWebKitPlaybackTargetAvailabilityEvent-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitPlaybackTargetAvailabilityEvent where-  fromJSVal v = fmap WebKitPlaybackTargetAvailabilityEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitPlaybackTargetAvailabilityEvent where-  makeObject = makeObject . unWebKitPlaybackTargetAvailabilityEvent--instance IsEvent WebKitPlaybackTargetAvailabilityEvent-instance IsGObject WebKitPlaybackTargetAvailabilityEvent where-  typeGType _ = gTypeWebKitPlaybackTargetAvailabilityEvent-  {-# INLINE typeGType #-}--gTypeWebKitPlaybackTargetAvailabilityEvent :: JSM GType-gTypeWebKitPlaybackTargetAvailabilityEvent = GType . Object <$> jsg "WebKitPlaybackTargetAvailabilityEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitPoint".------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint Mozilla WebKitPoint documentation>-newtype WebKitPoint = WebKitPoint { unWebKitPoint :: JSVal }--instance PToJSVal WebKitPoint where-  pToJSVal = unWebKitPoint-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitPoint where-  pFromJSVal = WebKitPoint-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitPoint where-  toJSVal = return . unWebKitPoint-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitPoint where-  fromJSVal v = fmap WebKitPoint <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitPoint where-  makeObject = makeObject . unWebKitPoint--instance IsGObject WebKitPoint where-  typeGType _ = gTypeWebKitPoint-  {-# INLINE typeGType #-}--gTypeWebKitPoint :: JSM GType-gTypeWebKitPoint = GType . Object <$> jsg "WebKitPoint"-#else-type IsWebKitPoint o = WebKitPointClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebKitTransitionEvent".--- Base interface functions are in:------     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEvent Mozilla WebKitTransitionEvent documentation>-newtype WebKitTransitionEvent = WebKitTransitionEvent { unWebKitTransitionEvent :: JSVal }--instance PToJSVal WebKitTransitionEvent where-  pToJSVal = unWebKitTransitionEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebKitTransitionEvent where-  pFromJSVal = WebKitTransitionEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebKitTransitionEvent where-  toJSVal = return . unWebKitTransitionEvent-  {-# INLINE toJSVal #-}--instance FromJSVal WebKitTransitionEvent where-  fromJSVal v = fmap WebKitTransitionEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebKitTransitionEvent where-  makeObject = makeObject . unWebKitTransitionEvent--instance IsEvent WebKitTransitionEvent-instance IsGObject WebKitTransitionEvent where-  typeGType _ = gTypeWebKitTransitionEvent-  {-# INLINE typeGType #-}--gTypeWebKitTransitionEvent :: JSM GType-gTypeWebKitTransitionEvent = GType . Object <$> jsg "WebKitTransitionEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WebSocket".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket Mozilla WebSocket documentation>-newtype WebSocket = WebSocket { unWebSocket :: JSVal }--instance PToJSVal WebSocket where-  pToJSVal = unWebSocket-  {-# INLINE pToJSVal #-}--instance PFromJSVal WebSocket where-  pFromJSVal = WebSocket-  {-# INLINE pFromJSVal #-}--instance ToJSVal WebSocket where-  toJSVal = return . unWebSocket-  {-# INLINE toJSVal #-}--instance FromJSVal WebSocket where-  fromJSVal v = fmap WebSocket <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WebSocket where-  makeObject = makeObject . unWebSocket--instance IsEventTarget WebSocket-instance IsGObject WebSocket where-  typeGType _ = gTypeWebSocket-  {-# INLINE typeGType #-}--gTypeWebSocket :: JSM GType-gTypeWebSocket = GType . Object <$> jsg "WebSocket"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WheelEvent".--- Base interface functions are in:------     * "JSDOM.MouseEvent"---     * "JSDOM.UIEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent Mozilla WheelEvent documentation>-newtype WheelEvent = WheelEvent { unWheelEvent :: JSVal }--instance PToJSVal WheelEvent where-  pToJSVal = unWheelEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal WheelEvent where-  pFromJSVal = WheelEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal WheelEvent where-  toJSVal = return . unWheelEvent-  {-# INLINE toJSVal #-}--instance FromJSVal WheelEvent where-  fromJSVal v = fmap WheelEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WheelEvent where-  makeObject = makeObject . unWheelEvent--instance IsMouseEvent WheelEvent-instance IsUIEvent WheelEvent-instance IsEvent WheelEvent-instance IsGObject WheelEvent where-  typeGType _ = gTypeWheelEvent-  {-# INLINE typeGType #-}--gTypeWheelEvent :: JSM GType-gTypeWheelEvent = GType . Object <$> jsg "WheelEvent"-#else-#ifndef USE_OLD_WEBKIT-type IsWheelEvent o = WheelEventClass o-#endif-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Window".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Window Mozilla Window documentation>-newtype Window = Window { unWindow :: JSVal }--instance PToJSVal Window where-  pToJSVal = unWindow-  {-# INLINE pToJSVal #-}--instance PFromJSVal Window where-  pFromJSVal = Window-  {-# INLINE pFromJSVal #-}--instance ToJSVal Window where-  toJSVal = return . unWindow-  {-# INLINE toJSVal #-}--instance FromJSVal Window where-  fromJSVal v = fmap Window <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Window where-  makeObject = makeObject . unWindow--instance IsEventTarget Window-instance IsGObject Window where-  typeGType _ = gTypeWindow-  {-# INLINE typeGType #-}--gTypeWindow :: JSM GType-gTypeWindow = GType . Object <$> jsg "Window"-#else-type IsWindow o = WindowClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WindowBase64".------ <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64 Mozilla WindowBase64 documentation>-newtype WindowBase64 = WindowBase64 { unWindowBase64 :: JSVal }--instance PToJSVal WindowBase64 where-  pToJSVal = unWindowBase64-  {-# INLINE pToJSVal #-}--instance PFromJSVal WindowBase64 where-  pFromJSVal = WindowBase64-  {-# INLINE pFromJSVal #-}--instance ToJSVal WindowBase64 where-  toJSVal = return . unWindowBase64-  {-# INLINE toJSVal #-}--instance FromJSVal WindowBase64 where-  fromJSVal v = fmap WindowBase64 <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WindowBase64 where-  makeObject = makeObject . unWindowBase64--instance IsGObject WindowBase64 where-  typeGType _ = gTypeWindowBase64-  {-# INLINE typeGType #-}--gTypeWindowBase64 :: JSM GType-gTypeWindowBase64 = GType . Object <$> jsg "WindowBase64"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WindowTimers".------ <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers Mozilla WindowTimers documentation>-newtype WindowTimers = WindowTimers { unWindowTimers :: JSVal }--instance PToJSVal WindowTimers where-  pToJSVal = unWindowTimers-  {-# INLINE pToJSVal #-}--instance PFromJSVal WindowTimers where-  pFromJSVal = WindowTimers-  {-# INLINE pFromJSVal #-}--instance ToJSVal WindowTimers where-  toJSVal = return . unWindowTimers-  {-# INLINE toJSVal #-}--instance FromJSVal WindowTimers where-  fromJSVal v = fmap WindowTimers <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WindowTimers where-  makeObject = makeObject . unWindowTimers--instance IsGObject WindowTimers where-  typeGType _ = gTypeWindowTimers-  {-# INLINE typeGType #-}--gTypeWindowTimers :: JSM GType-gTypeWindowTimers = GType . Object <$> jsg "WindowTimers"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.Worker".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/Worker Mozilla Worker documentation>-newtype Worker = Worker { unWorker :: JSVal }--instance PToJSVal Worker where-  pToJSVal = unWorker-  {-# INLINE pToJSVal #-}--instance PFromJSVal Worker where-  pFromJSVal = Worker-  {-# INLINE pFromJSVal #-}--instance ToJSVal Worker where-  toJSVal = return . unWorker-  {-# INLINE toJSVal #-}--instance FromJSVal Worker where-  fromJSVal v = fmap Worker <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject Worker where-  makeObject = makeObject . unWorker--instance IsEventTarget Worker-instance IsGObject Worker where-  typeGType _ = gTypeWorker-  {-# INLINE typeGType #-}--gTypeWorker :: JSM GType-gTypeWorker = GType . Object <$> jsg "Worker"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WorkerGlobalScope".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope Mozilla WorkerGlobalScope documentation>-newtype WorkerGlobalScope = WorkerGlobalScope { unWorkerGlobalScope :: JSVal }--instance PToJSVal WorkerGlobalScope where-  pToJSVal = unWorkerGlobalScope-  {-# INLINE pToJSVal #-}--instance PFromJSVal WorkerGlobalScope where-  pFromJSVal = WorkerGlobalScope-  {-# INLINE pFromJSVal #-}--instance ToJSVal WorkerGlobalScope where-  toJSVal = return . unWorkerGlobalScope-  {-# INLINE toJSVal #-}--instance FromJSVal WorkerGlobalScope where-  fromJSVal v = fmap WorkerGlobalScope <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WorkerGlobalScope where-  makeObject = makeObject . unWorkerGlobalScope--class IsEventTarget o => IsWorkerGlobalScope o-toWorkerGlobalScope :: IsWorkerGlobalScope o => o -> WorkerGlobalScope-toWorkerGlobalScope = WorkerGlobalScope . coerce--instance IsWorkerGlobalScope WorkerGlobalScope-instance IsEventTarget WorkerGlobalScope-instance IsGObject WorkerGlobalScope where-  typeGType _ = gTypeWorkerGlobalScope-  {-# INLINE typeGType #-}--gTypeWorkerGlobalScope :: JSM GType-gTypeWorkerGlobalScope = GType . Object <$> jsg "WorkerGlobalScope"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WorkerLocation".------ <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation Mozilla WorkerLocation documentation>-newtype WorkerLocation = WorkerLocation { unWorkerLocation :: JSVal }--instance PToJSVal WorkerLocation where-  pToJSVal = unWorkerLocation-  {-# INLINE pToJSVal #-}--instance PFromJSVal WorkerLocation where-  pFromJSVal = WorkerLocation-  {-# INLINE pFromJSVal #-}--instance ToJSVal WorkerLocation where-  toJSVal = return . unWorkerLocation-  {-# INLINE toJSVal #-}--instance FromJSVal WorkerLocation where-  fromJSVal v = fmap WorkerLocation <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WorkerLocation where-  makeObject = makeObject . unWorkerLocation--instance IsGObject WorkerLocation where-  typeGType _ = gTypeWorkerLocation-  {-# INLINE typeGType #-}--gTypeWorkerLocation :: JSM GType-gTypeWorkerLocation = GType . Object <$> jsg "WorkerLocation"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.WorkerNavigator".------ <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator Mozilla WorkerNavigator documentation>-newtype WorkerNavigator = WorkerNavigator { unWorkerNavigator :: JSVal }--instance PToJSVal WorkerNavigator where-  pToJSVal = unWorkerNavigator-  {-# INLINE pToJSVal #-}--instance PFromJSVal WorkerNavigator where-  pFromJSVal = WorkerNavigator-  {-# INLINE pFromJSVal #-}--instance ToJSVal WorkerNavigator where-  toJSVal = return . unWorkerNavigator-  {-# INLINE toJSVal #-}--instance FromJSVal WorkerNavigator where-  fromJSVal v = fmap WorkerNavigator <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject WorkerNavigator where-  makeObject = makeObject . unWorkerNavigator--instance IsGObject WorkerNavigator where-  typeGType _ = gTypeWorkerNavigator-  {-# INLINE typeGType #-}--gTypeWorkerNavigator :: JSM GType-gTypeWorkerNavigator = GType . Object <$> jsg "WorkerNavigator"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XMLHttpRequest".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest Mozilla XMLHttpRequest documentation>-newtype XMLHttpRequest = XMLHttpRequest { unXMLHttpRequest :: JSVal }--instance PToJSVal XMLHttpRequest where-  pToJSVal = unXMLHttpRequest-  {-# INLINE pToJSVal #-}--instance PFromJSVal XMLHttpRequest where-  pFromJSVal = XMLHttpRequest-  {-# INLINE pFromJSVal #-}--instance ToJSVal XMLHttpRequest where-  toJSVal = return . unXMLHttpRequest-  {-# INLINE toJSVal #-}--instance FromJSVal XMLHttpRequest where-  fromJSVal v = fmap XMLHttpRequest <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XMLHttpRequest where-  makeObject = makeObject . unXMLHttpRequest--instance IsEventTarget XMLHttpRequest-instance IsGObject XMLHttpRequest where-  typeGType _ = gTypeXMLHttpRequest-  {-# INLINE typeGType #-}--gTypeXMLHttpRequest :: JSM GType-gTypeXMLHttpRequest = GType . Object <$> jsg "XMLHttpRequest"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XMLHttpRequestProgressEvent".--- Base interface functions are in:------     * "JSDOM.ProgressEvent"---     * "JSDOM.Event"------ <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestProgressEvent Mozilla XMLHttpRequestProgressEvent documentation>-newtype XMLHttpRequestProgressEvent = XMLHttpRequestProgressEvent { unXMLHttpRequestProgressEvent :: JSVal }--instance PToJSVal XMLHttpRequestProgressEvent where-  pToJSVal = unXMLHttpRequestProgressEvent-  {-# INLINE pToJSVal #-}--instance PFromJSVal XMLHttpRequestProgressEvent where-  pFromJSVal = XMLHttpRequestProgressEvent-  {-# INLINE pFromJSVal #-}--instance ToJSVal XMLHttpRequestProgressEvent where-  toJSVal = return . unXMLHttpRequestProgressEvent-  {-# INLINE toJSVal #-}--instance FromJSVal XMLHttpRequestProgressEvent where-  fromJSVal v = fmap XMLHttpRequestProgressEvent <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XMLHttpRequestProgressEvent where-  makeObject = makeObject . unXMLHttpRequestProgressEvent--instance IsProgressEvent XMLHttpRequestProgressEvent-instance IsEvent XMLHttpRequestProgressEvent-instance IsGObject XMLHttpRequestProgressEvent where-  typeGType _ = gTypeXMLHttpRequestProgressEvent-  {-# INLINE typeGType #-}--gTypeXMLHttpRequestProgressEvent :: JSM GType-gTypeXMLHttpRequestProgressEvent = GType . Object <$> jsg "XMLHttpRequestProgressEvent"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XMLHttpRequestUpload".--- Base interface functions are in:------     * "JSDOM.EventTarget"------ <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload Mozilla XMLHttpRequestUpload documentation>-newtype XMLHttpRequestUpload = XMLHttpRequestUpload { unXMLHttpRequestUpload :: JSVal }--instance PToJSVal XMLHttpRequestUpload where-  pToJSVal = unXMLHttpRequestUpload-  {-# INLINE pToJSVal #-}--instance PFromJSVal XMLHttpRequestUpload where-  pFromJSVal = XMLHttpRequestUpload-  {-# INLINE pFromJSVal #-}--instance ToJSVal XMLHttpRequestUpload where-  toJSVal = return . unXMLHttpRequestUpload-  {-# INLINE toJSVal #-}--instance FromJSVal XMLHttpRequestUpload where-  fromJSVal v = fmap XMLHttpRequestUpload <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XMLHttpRequestUpload where-  makeObject = makeObject . unXMLHttpRequestUpload--instance IsEventTarget XMLHttpRequestUpload-instance IsGObject XMLHttpRequestUpload where-  typeGType _ = gTypeXMLHttpRequestUpload-  {-# INLINE typeGType #-}--gTypeXMLHttpRequestUpload :: JSM GType-gTypeXMLHttpRequestUpload = GType . Object <$> jsg "XMLHttpRequestUpload"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XMLSerializer".------ <https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer Mozilla XMLSerializer documentation>-newtype XMLSerializer = XMLSerializer { unXMLSerializer :: JSVal }--instance PToJSVal XMLSerializer where-  pToJSVal = unXMLSerializer-  {-# INLINE pToJSVal #-}--instance PFromJSVal XMLSerializer where-  pFromJSVal = XMLSerializer-  {-# INLINE pFromJSVal #-}--instance ToJSVal XMLSerializer where-  toJSVal = return . unXMLSerializer-  {-# INLINE toJSVal #-}--instance FromJSVal XMLSerializer where-  fromJSVal v = fmap XMLSerializer <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XMLSerializer where-  makeObject = makeObject . unXMLSerializer--instance IsGObject XMLSerializer where-  typeGType _ = gTypeXMLSerializer-  {-# INLINE typeGType #-}--gTypeXMLSerializer :: JSM GType-gTypeXMLSerializer = GType . Object <$> jsg "XMLSerializer"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XPathEvaluator".------ <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator Mozilla XPathEvaluator documentation>-newtype XPathEvaluator = XPathEvaluator { unXPathEvaluator :: JSVal }--instance PToJSVal XPathEvaluator where-  pToJSVal = unXPathEvaluator-  {-# INLINE pToJSVal #-}--instance PFromJSVal XPathEvaluator where-  pFromJSVal = XPathEvaluator-  {-# INLINE pFromJSVal #-}--instance ToJSVal XPathEvaluator where-  toJSVal = return . unXPathEvaluator-  {-# INLINE toJSVal #-}--instance FromJSVal XPathEvaluator where-  fromJSVal v = fmap XPathEvaluator <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XPathEvaluator where-  makeObject = makeObject . unXPathEvaluator--instance IsGObject XPathEvaluator where-  typeGType _ = gTypeXPathEvaluator-  {-# INLINE typeGType #-}--gTypeXPathEvaluator :: JSM GType-gTypeXPathEvaluator = GType . Object <$> jsg "XPathEvaluator"-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XPathExpression".------ <https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression Mozilla XPathExpression documentation>-newtype XPathExpression = XPathExpression { unXPathExpression :: JSVal }--instance PToJSVal XPathExpression where-  pToJSVal = unXPathExpression-  {-# INLINE pToJSVal #-}--instance PFromJSVal XPathExpression where-  pFromJSVal = XPathExpression-  {-# INLINE pFromJSVal #-}--instance ToJSVal XPathExpression where-  toJSVal = return . unXPathExpression-  {-# INLINE toJSVal #-}--instance FromJSVal XPathExpression where-  fromJSVal v = fmap XPathExpression <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XPathExpression where-  makeObject = makeObject . unXPathExpression--instance IsGObject XPathExpression where-  typeGType _ = gTypeXPathExpression-  {-# INLINE typeGType #-}--gTypeXPathExpression :: JSM GType-gTypeXPathExpression = GType . Object <$> jsg "XPathExpression"-#else-type IsXPathExpression o = XPathExpressionClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XPathNSResolver".------ <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver Mozilla XPathNSResolver documentation>-newtype XPathNSResolver = XPathNSResolver { unXPathNSResolver :: JSVal }--instance PToJSVal XPathNSResolver where-  pToJSVal = unXPathNSResolver-  {-# INLINE pToJSVal #-}--instance PFromJSVal XPathNSResolver where-  pFromJSVal = XPathNSResolver-  {-# INLINE pFromJSVal #-}--instance ToJSVal XPathNSResolver where-  toJSVal = return . unXPathNSResolver-  {-# INLINE toJSVal #-}--instance FromJSVal XPathNSResolver where-  fromJSVal v = fmap XPathNSResolver <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XPathNSResolver where-  makeObject = makeObject . unXPathNSResolver--instance IsGObject XPathNSResolver where-  typeGType _ = gTypeXPathNSResolver-  {-# INLINE typeGType #-}--gTypeXPathNSResolver :: JSM GType-gTypeXPathNSResolver = GType . Object <$> jsg "XPathNSResolver"-#else-type IsXPathNSResolver o = XPathNSResolverClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XPathResult".------ <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult Mozilla XPathResult documentation>-newtype XPathResult = XPathResult { unXPathResult :: JSVal }--instance PToJSVal XPathResult where-  pToJSVal = unXPathResult-  {-# INLINE pToJSVal #-}--instance PFromJSVal XPathResult where-  pFromJSVal = XPathResult-  {-# INLINE pFromJSVal #-}--instance ToJSVal XPathResult where-  toJSVal = return . unXPathResult-  {-# INLINE toJSVal #-}--instance FromJSVal XPathResult where-  fromJSVal v = fmap XPathResult <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}--instance MakeObject XPathResult where-  makeObject = makeObject . unXPathResult--instance IsGObject XPathResult where-  typeGType _ = gTypeXPathResult-  {-# INLINE typeGType #-}--gTypeXPathResult :: JSM GType-gTypeXPathResult = GType . Object <$> jsg "XPathResult"-#else-type IsXPathResult o = XPathResultClass o-#endif---#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)--- | Functions for this inteface are in "JSDOM.XSLTProcessor".------ <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor Mozilla XSLTProcessor documentation>-newtype XSLTProcessor = XSLTProcessor { unXSLTProcessor :: JSVal }--instance PToJSVal XSLTProcessor where-  pToJSVal = unXSLTProcessor-  {-# INLINE pToJSVal #-}--instance PFromJSVal XSLTProcessor where-  pFromJSVal = XSLTProcessor-  {-# INLINE pFromJSVal #-}--instance ToJSVal XSLTProcessor where-  toJSVal = return . unXSLTProcessor-  {-# INLINE toJSVal #-}--instance FromJSVal XSLTProcessor where-  fromJSVal v = fmap XSLTProcessor <$> maybeNullOrUndefined v-  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . GObject+  {-# INLINE fromJSValUnchecked #-}++--instance IsGObject o => PToJSVal o where+--  pToJSVal = unGObject . toGObject+--  {-# INLINE pToJSVal #-}+--+--instance IsGObject o => PFromJSVal o where+--  pFromJSVal = unsafeCastGObject . GObject . castRef+--  {-# INLINE pFromJSVal #-}+--+--instance IsGObject o => ToJSVal o where+--  toJSVal = return . unGObject . toGObject+--  {-# INLINE toJSVal #-}+--+--instance IsGObject o => FromJSVal o where+--  fromJSVal = return . fmap (unsafeCastGObject . GObject . castRef) . maybeJSNullOrUndefined+--  {-# INLINE fromJSVal #-}++instance IsGObject GObject where+  typeGType _ = gTypeGObject+  {-# INLINE typeGType #-}++#ifdef ghcjs_HOST_OS+foreign import javascript unsafe "Object" gTypeGObject :: IO GType+#else+gTypeGObject :: JSM GType+gTypeGObject = GType . Object <$> jsg "Object"+#endif++objectToString :: (IsGObject self, FromJSString result) => self -> JSM result+objectToString self = fromJSValUnchecked (unGObject $ toGObject self)++-- | Fastest string type to use when you just+--   want to take a string from the DOM then+--   give it back as is.+type DOMString = JSString++fromJSStringArray :: FromJSString s => JSVal -> JSM [s]+fromJSStringArray a = do+    l <- a ^. js "length" >>= valToNumber+    mapM (\i -> fromJSString <$> (a !! i >>= valToStr)) [0..round l - 1]++toMaybeJSString :: ToJSString a => Maybe a -> JSM JSVal+toMaybeJSString Nothing = return valNull+toMaybeJSString (Just a) = toJSVal (toJSString a)+{-# INLINE toMaybeJSString #-}++fromMaybeJSString :: FromJSString a => JSVal -> JSM (Maybe a)+fromMaybeJSString = maybeNullOrUndefined' (fmap fromJSString . valToStr)+{-# INLINE fromMaybeJSString #-}++integralToDoubleToJSVal :: Integral a => a -> JSM JSVal+integralToDoubleToJSVal a = toJSVal (fromIntegral a :: Double)++integralFromDoubleFromJSVal :: Integral a => JSVal -> JSM (Maybe a)+integralFromDoubleFromJSVal = fmap (fmap round) . (fromJSVal :: JSVal -> JSM (Maybe Double))++integralFromDoubleFromJSValUnchecked :: Integral a => JSVal -> JSM a+integralFromDoubleFromJSValUnchecked = fmap round . (fromJSValUnchecked :: JSVal -> JSM Double)++type ToDOMString s = ToJSString s+type FromDOMString s = FromJSString s+type IsDOMString s = (ToDOMString s, FromDOMString s)++-- Callbacks+newtype Callback a = Callback Function++withCallback :: (MonadDOM m, Coercible c Function)+             => JSM c -> (c -> JSM a) -> m a+withCallback aquire f = do+    jsCtx <- askJSM+    liftIO $ bracket+        (runJSM aquire jsCtx)+        ((`runJSM` jsCtx) . freeFunction . coerce)+        (\t -> runJSM (f t) jsCtx)++newtype AudioBufferCallback = AudioBufferCallback (Callback (JSVal -> IO ()))+instance ToJSVal AudioBufferCallback where toJSVal (AudioBufferCallback (Callback r)) = toJSVal r+newtype DatabaseCallback = DatabaseCallback (Callback (JSVal -> IO ()))+instance ToJSVal DatabaseCallback where toJSVal (DatabaseCallback (Callback r)) = toJSVal r+newtype MediaQueryListListener = MediaQueryListListener (Callback (JSVal -> IO ()))+instance ToJSVal MediaQueryListListener where toJSVal (MediaQueryListListener (Callback r)) = toJSVal r+newtype MediaStreamTrackSourcesCallback = MediaStreamTrackSourcesCallback (Callback (JSVal -> IO ()))+instance ToJSVal MediaStreamTrackSourcesCallback where toJSVal (MediaStreamTrackSourcesCallback (Callback r)) = toJSVal r+newtype NavigatorUserMediaErrorCallback = NavigatorUserMediaErrorCallback (Callback (JSVal -> IO ()))+instance ToJSVal NavigatorUserMediaErrorCallback where toJSVal (NavigatorUserMediaErrorCallback (Callback r)) = toJSVal r+newtype NavigatorUserMediaSuccessCallback = NavigatorUserMediaSuccessCallback (Callback (JSVal -> IO ()))+instance ToJSVal NavigatorUserMediaSuccessCallback where toJSVal (NavigatorUserMediaSuccessCallback (Callback r)) = toJSVal r+newtype NotificationPermissionCallback permissions = NotificationPermissionCallback (Callback (JSVal -> IO ()))+instance ToJSVal (NotificationPermissionCallback permissions) where toJSVal (NotificationPermissionCallback (Callback r)) = toJSVal r+newtype PositionCallback = PositionCallback (Callback (JSVal -> IO ()))+instance ToJSVal PositionCallback where toJSVal (PositionCallback (Callback r)) = toJSVal r+newtype PositionErrorCallback = PositionErrorCallback (Callback (JSVal -> IO ()))+instance ToJSVal PositionErrorCallback where toJSVal (PositionErrorCallback (Callback r)) = toJSVal r+newtype RequestAnimationFrameCallback = RequestAnimationFrameCallback (Callback (JSVal -> IO ()))+instance ToJSVal RequestAnimationFrameCallback where toJSVal (RequestAnimationFrameCallback (Callback r)) = toJSVal r+newtype RTCPeerConnectionErrorCallback = RTCPeerConnectionErrorCallback (Callback (JSVal -> IO ()))+instance ToJSVal RTCPeerConnectionErrorCallback where toJSVal (RTCPeerConnectionErrorCallback (Callback r)) = toJSVal r+newtype RTCSessionDescriptionCallback = RTCSessionDescriptionCallback (Callback (JSVal -> IO ()))+instance ToJSVal RTCSessionDescriptionCallback where toJSVal (RTCSessionDescriptionCallback (Callback r)) = toJSVal r+newtype RTCStatsCallback = RTCStatsCallback (Callback (JSVal -> IO ()))+instance ToJSVal RTCStatsCallback where toJSVal (RTCStatsCallback (Callback r)) = toJSVal r+newtype SQLStatementCallback = SQLStatementCallback (Callback (JSVal -> JSVal -> IO ()))+instance ToJSVal SQLStatementCallback where toJSVal (SQLStatementCallback (Callback r)) = toJSVal r+newtype SQLStatementErrorCallback = SQLStatementErrorCallback (Callback (JSVal -> JSVal -> IO ()))+instance ToJSVal SQLStatementErrorCallback where toJSVal (SQLStatementErrorCallback (Callback r)) = toJSVal r+newtype SQLTransactionCallback = SQLTransactionCallback (Callback (JSVal -> IO ()))+instance ToJSVal SQLTransactionCallback where toJSVal (SQLTransactionCallback (Callback r)) = toJSVal r+newtype SQLTransactionErrorCallback = SQLTransactionErrorCallback (Callback (JSVal -> IO ()))+instance ToJSVal SQLTransactionErrorCallback where toJSVal (SQLTransactionErrorCallback (Callback r)) = toJSVal r+newtype StorageErrorCallback = StorageErrorCallback (Callback (JSVal -> IO ()))+instance ToJSVal StorageErrorCallback where toJSVal (StorageErrorCallback (Callback r)) = toJSVal r+newtype StorageQuotaCallback = StorageQuotaCallback (Callback (JSVal -> IO ()))+instance ToJSVal StorageQuotaCallback where toJSVal (StorageQuotaCallback (Callback r)) = toJSVal r+newtype StorageUsageCallback = StorageUsageCallback (Callback (JSVal -> JSVal -> IO ()))+instance ToJSVal StorageUsageCallback where toJSVal (StorageUsageCallback (Callback r)) = toJSVal r+newtype StringCallback s = StringCallback (Callback (JSVal -> IO ()))+instance ToJSVal (StringCallback s) where toJSVal (StringCallback (Callback r)) = toJSVal r+newtype VoidCallback = VoidCallback (Callback (IO ()))+instance ToJSVal VoidCallback where toJSVal (VoidCallback (Callback r)) = toJSVal r++-- Custom types+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype SerializedScriptValue = SerializedScriptValue { unSerializedScriptValue :: JSVal }++instance PToJSVal SerializedScriptValue where+  pToJSVal = unSerializedScriptValue+  {-# INLINE pToJSVal #-}++instance PFromJSVal SerializedScriptValue where+  pFromJSVal = SerializedScriptValue+  {-# INLINE pFromJSVal #-}++instance ToJSVal SerializedScriptValue where+  toJSVal = return . unSerializedScriptValue+  {-# INLINE toJSVal #-}++instance FromJSVal SerializedScriptValue where+  fromJSVal v = fmap SerializedScriptValue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SerializedScriptValue+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsSerializedScriptValue o+toSerializedScriptValue :: IsSerializedScriptValue o => o -> SerializedScriptValue+toSerializedScriptValue = SerializedScriptValue . coerce++instance IsSerializedScriptValue SerializedScriptValue+instance IsGObject SerializedScriptValue where+  typeGType _ = error "Unable to get the JavaScript type of SerializedScriptValue"+#else+-- TODO work out how we can support SerializedScriptValue in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype PositionOptions = PositionOptions { unPositionOptions :: JSVal }++instance PToJSVal PositionOptions where+  pToJSVal = unPositionOptions+  {-# INLINE pToJSVal #-}++instance PFromJSVal PositionOptions where+  pFromJSVal = PositionOptions+  {-# INLINE pFromJSVal #-}++instance ToJSVal PositionOptions where+  toJSVal = return . unPositionOptions+  {-# INLINE toJSVal #-}++instance FromJSVal PositionOptions where+  fromJSVal v = fmap PositionOptions <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PositionOptions+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsPositionOptions o+toPositionOptions :: IsPositionOptions o => o -> PositionOptions+toPositionOptions = PositionOptions . coerce++instance IsPositionOptions PositionOptions+instance IsGObject PositionOptions where+  typeGType _ = error "Unable to get the JavaScript type of PositionOptions"+#else+-- TODO work out how we can support PositionOptions in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Dictionary = Dictionary { unDictionary :: JSVal }++instance PToJSVal Dictionary where+  pToJSVal = unDictionary+  {-# INLINE pToJSVal #-}++instance PFromJSVal Dictionary where+  pFromJSVal = Dictionary+  {-# INLINE pFromJSVal #-}++instance ToJSVal Dictionary where+  toJSVal = return . unDictionary+  {-# INLINE toJSVal #-}++instance FromJSVal Dictionary where+  fromJSVal v = fmap Dictionary <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Dictionary+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsDictionary o+toDictionary :: IsDictionary o => o -> Dictionary+toDictionary = Dictionary . coerce++instance IsDictionary Dictionary+instance IsGObject Dictionary where+  typeGType _ = error "Unable to get the JavaScript type of Dictionary"+#else+-- TODO work out how we can support Dictionary in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype BlobPropertyBag = BlobPropertyBag { unBlobPropertyBag :: JSVal }++instance PToJSVal BlobPropertyBag where+  pToJSVal = unBlobPropertyBag+  {-# INLINE pToJSVal #-}++instance PFromJSVal BlobPropertyBag where+  pFromJSVal = BlobPropertyBag+  {-# INLINE pFromJSVal #-}++instance ToJSVal BlobPropertyBag where+  toJSVal = return . unBlobPropertyBag+  {-# INLINE toJSVal #-}++instance FromJSVal BlobPropertyBag where+  fromJSVal v = fmap BlobPropertyBag <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . BlobPropertyBag+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsBlobPropertyBag o+toBlobPropertyBag :: IsBlobPropertyBag o => o -> BlobPropertyBag+toBlobPropertyBag = BlobPropertyBag . coerce++instance IsBlobPropertyBag BlobPropertyBag+instance IsGObject BlobPropertyBag where+  typeGType _ = error "Unable to get the JavaScript type of BlobPropertyBag"+#else+-- TODO work out how we can support BlobPropertyBag in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype MutationCallback = MutationCallback { unMutationCallback :: JSVal }++instance PToJSVal MutationCallback where+  pToJSVal = unMutationCallback+  {-# INLINE pToJSVal #-}++instance PFromJSVal MutationCallback where+  pFromJSVal = MutationCallback+  {-# INLINE pFromJSVal #-}++instance ToJSVal MutationCallback where+  toJSVal = return . unMutationCallback+  {-# INLINE toJSVal #-}++instance FromJSVal MutationCallback where+  fromJSVal v = fmap MutationCallback <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MutationCallback+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsMutationCallback o+toMutationCallback :: IsMutationCallback o => o -> MutationCallback+toMutationCallback = MutationCallback . coerce++instance IsMutationCallback MutationCallback+instance IsGObject MutationCallback where+  typeGType _ = error "Unable to get the JavaScript type of MutationCallback"+#else+-- TODO work out how we can support MutationCallback in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Promise = Promise { unPromise :: JSVal }++instance PToJSVal Promise where+  pToJSVal = unPromise+  {-# INLINE pToJSVal #-}++instance PFromJSVal Promise where+  pFromJSVal = Promise+  {-# INLINE pFromJSVal #-}++instance ToJSVal Promise where+  toJSVal = return . unPromise+  {-# INLINE toJSVal #-}++instance FromJSVal Promise where+  fromJSVal v = fmap Promise <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Promise+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsPromise o+toPromise :: IsPromise o => o -> Promise+toPromise = Promise . coerce++instance IsPromise Promise+instance IsGObject Promise where+    typeGType _ = gTypePromise++gTypePromise :: JSM GType+gTypePromise = GType . Object <$> jsg "Promise"+#else+-- TODO work out how we can support Promise in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype ArrayBuffer = ArrayBuffer { unArrayBuffer :: JSVal }++instance PToJSVal ArrayBuffer where+  pToJSVal = unArrayBuffer+  {-# INLINE pToJSVal #-}++instance PFromJSVal ArrayBuffer where+  pFromJSVal = ArrayBuffer+  {-# INLINE pFromJSVal #-}++instance ToJSVal ArrayBuffer where+  toJSVal = return . unArrayBuffer+  {-# INLINE toJSVal #-}++instance FromJSVal ArrayBuffer where+  fromJSVal v = fmap ArrayBuffer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ArrayBuffer+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsArrayBuffer o+toArrayBuffer :: IsArrayBuffer o => o -> ArrayBuffer+toArrayBuffer = ArrayBuffer . coerce++instance IsArrayBuffer ArrayBuffer+instance IsGObject ArrayBuffer where+    typeGType _ = gTypeArrayBuffer++gTypeArrayBuffer :: JSM GType+gTypeArrayBuffer = GType . Object <$> jsg "ArrayBuffer"+#else+-- TODO work out how we can support ArrayBuffer in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Float32Array = Float32Array { unFloat32Array :: JSVal }++instance PToJSVal Float32Array where+  pToJSVal = unFloat32Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Float32Array where+  pFromJSVal = Float32Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Float32Array where+  toJSVal = return . unFloat32Array+  {-# INLINE toJSVal #-}++instance FromJSVal Float32Array where+  fromJSVal v = fmap Float32Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Float32Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsFloat32Array o+toFloat32Array :: IsFloat32Array o => o -> Float32Array+toFloat32Array = Float32Array . coerce++instance IsFloat32Array Float32Array+instance IsGObject Float32Array where+        typeGType _ = gTypeFloat32Array++gTypeFloat32Array :: JSM GType+gTypeFloat32Array = GType . Object <$> jsg "Float32Array"+#else+-- TODO work out how we can support Float32Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Float64Array = Float64Array { unFloat64Array :: JSVal }++instance PToJSVal Float64Array where+  pToJSVal = unFloat64Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Float64Array where+  pFromJSVal = Float64Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Float64Array where+  toJSVal = return . unFloat64Array+  {-# INLINE toJSVal #-}++instance FromJSVal Float64Array where+  fromJSVal v = fmap Float64Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Float64Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsFloat64Array o+toFloat64Array :: IsFloat64Array o => o -> Float64Array+toFloat64Array = Float64Array . coerce++instance IsFloat64Array Float64Array+instance IsGObject Float64Array where+    typeGType _ = gTypeFloat64Array++gTypeFloat64Array :: JSM GType+gTypeFloat64Array = GType . Object <$> jsg "Float64Array"+#else+-- TODO work out how we can support Float64Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Uint8Array = Uint8Array { unUint8Array :: JSVal }++instance PToJSVal Uint8Array where+  pToJSVal = unUint8Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Uint8Array where+  pFromJSVal = Uint8Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Uint8Array where+  toJSVal = return . unUint8Array+  {-# INLINE toJSVal #-}++instance FromJSVal Uint8Array where+  fromJSVal v = fmap Uint8Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Uint8Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsUint8Array o+toUint8Array :: IsUint8Array o => o -> Uint8Array+toUint8Array = Uint8Array . coerce++instance IsUint8Array Uint8Array+instance IsGObject Uint8Array where+    typeGType _ = gTypeUint8Array++gTypeUint8Array :: JSM GType+gTypeUint8Array = GType . Object <$> jsg "Uint8Array"+#else+-- TODO work out how we can support Uint8Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Uint8ClampedArray = Uint8ClampedArray { unUint8ClampedArray :: JSVal }++instance PToJSVal Uint8ClampedArray where+  pToJSVal = unUint8ClampedArray+  {-# INLINE pToJSVal #-}++instance PFromJSVal Uint8ClampedArray where+  pFromJSVal = Uint8ClampedArray+  {-# INLINE pFromJSVal #-}++instance ToJSVal Uint8ClampedArray where+  toJSVal = return . unUint8ClampedArray+  {-# INLINE toJSVal #-}++instance FromJSVal Uint8ClampedArray where+  fromJSVal v = fmap Uint8ClampedArray <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Uint8ClampedArray+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsUint8ClampedArray o+toUint8ClampedArray :: IsUint8ClampedArray o => o -> Uint8ClampedArray+toUint8ClampedArray = Uint8ClampedArray . coerce++instance IsUint8ClampedArray Uint8ClampedArray+instance IsGObject Uint8ClampedArray where+    typeGType _ = gTypeUint8ClampedArray++gTypeUint8ClampedArray :: JSM GType+gTypeUint8ClampedArray = GType . Object <$> jsg "Uint8ClampedArray"+#else+-- TODO work out how we can support Uint8ClampedArray in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Uint16Array = Uint16Array { unUint16Array :: JSVal }++instance PToJSVal Uint16Array where+  pToJSVal = unUint16Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Uint16Array where+  pFromJSVal = Uint16Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Uint16Array where+  toJSVal = return . unUint16Array+  {-# INLINE toJSVal #-}++instance FromJSVal Uint16Array where+  fromJSVal v = fmap Uint16Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Uint16Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsUint16Array o+toUint16Array :: IsUint16Array o => o -> Uint16Array+toUint16Array = Uint16Array . coerce++instance IsUint16Array Uint16Array+instance IsGObject Uint16Array where+    typeGType _ = gTypeUint16Array++gTypeUint16Array :: JSM GType+gTypeUint16Array = GType . Object <$> jsg "Uint16Array"+#else+-- TODO work out how we can support Uint16Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Uint32Array = Uint32Array { unUint32Array :: JSVal }++instance PToJSVal Uint32Array where+  pToJSVal = unUint32Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Uint32Array where+  pFromJSVal = Uint32Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Uint32Array where+  toJSVal = return . unUint32Array+  {-# INLINE toJSVal #-}++instance FromJSVal Uint32Array where+  fromJSVal v = fmap Uint32Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Uint32Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsUint32Array o+toUint32Array :: IsUint32Array o => o -> Uint32Array+toUint32Array = Uint32Array . coerce++instance IsUint32Array Uint32Array+instance IsGObject Uint32Array where+    typeGType _ = gTypeUint32Array++gTypeUint32Array :: JSM GType+gTypeUint32Array = GType . Object <$> jsg "Uint32Array"+#else+-- TODO work out how we can support Uint32Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Int8Array = Int8Array { unInt8Array :: JSVal }++instance PToJSVal Int8Array where+  pToJSVal = unInt8Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Int8Array where+  pFromJSVal = Int8Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Int8Array where+  toJSVal = return . unInt8Array+  {-# INLINE toJSVal #-}++instance FromJSVal Int8Array where+  fromJSVal v = fmap Int8Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Int8Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsInt8Array o+toInt8Array :: IsInt8Array o => o -> Int8Array+toInt8Array = Int8Array . coerce++instance IsInt8Array Int8Array+instance IsGObject Int8Array where+    typeGType _ = gTypeInt8Array++gTypeInt8Array :: JSM GType+gTypeInt8Array = GType . Object <$> jsg "Int8Array"+#else+-- TODO work out how we can support Int8Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Int16Array = Int16Array { unInt16Array :: JSVal }++instance PToJSVal Int16Array where+  pToJSVal = unInt16Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Int16Array where+  pFromJSVal = Int16Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Int16Array where+  toJSVal = return . unInt16Array+  {-# INLINE toJSVal #-}++instance FromJSVal Int16Array where+  fromJSVal v = fmap Int16Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Int16Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsInt16Array o+toInt16Array :: IsInt16Array o => o -> Int16Array+toInt16Array = Int16Array . coerce++instance IsInt16Array Int16Array+instance IsGObject Int16Array where+    typeGType _ = gTypeInt16Array++gTypeInt16Array :: JSM GType+gTypeInt16Array = GType . Object <$> jsg "Int16Array"+#else+-- TODO work out how we can support Int16Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Int32Array = Int32Array { unInt32Array :: JSVal }++instance PToJSVal Int32Array where+  pToJSVal = unInt32Array+  {-# INLINE pToJSVal #-}++instance PFromJSVal Int32Array where+  pFromJSVal = Int32Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Int32Array where+  toJSVal = return . unInt32Array+  {-# INLINE toJSVal #-}++instance FromJSVal Int32Array where+  fromJSVal v = fmap Int32Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Int32Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsInt32Array o+toInt32Array :: IsInt32Array o => o -> Int32Array+toInt32Array = Int32Array . coerce++instance IsInt32Array Int32Array+instance IsGObject Int32Array where+    typeGType _ = gTypeInt32Array++gTypeInt32Array :: JSM GType+gTypeInt32Array = GType . Object <$> jsg "Int32Array"+#else+-- TODO work out how we can support Int32Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype ObjectArray = ObjectArray { unObjectArray :: JSVal }++instance PToJSVal ObjectArray where+  pToJSVal = unObjectArray+  {-# INLINE pToJSVal #-}++instance PFromJSVal ObjectArray where+  pFromJSVal = ObjectArray+  {-# INLINE pFromJSVal #-}++instance ToJSVal ObjectArray where+  toJSVal = return . unObjectArray+  {-# INLINE toJSVal #-}++instance FromJSVal ObjectArray where+  fromJSVal v = fmap ObjectArray <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ObjectArray+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsObjectArray o+toObjectArray :: IsObjectArray o => o -> ObjectArray+toObjectArray = ObjectArray . coerce++instance IsObjectArray ObjectArray+instance IsGObject ObjectArray where+  typeGType _ = error "Unable to get the JavaScript type of ObjectArray"+#else+-- TODO work out how we can support ObjectArray in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype ArrayBufferView = ArrayBufferView { unArrayBufferView :: JSVal }++instance PToJSVal ArrayBufferView where+  pToJSVal = unArrayBufferView+  {-# INLINE pToJSVal #-}++instance PFromJSVal ArrayBufferView where+  pFromJSVal = ArrayBufferView+  {-# INLINE pFromJSVal #-}++instance ToJSVal ArrayBufferView where+  toJSVal = return . unArrayBufferView+  {-# INLINE toJSVal #-}++instance FromJSVal ArrayBufferView where+  fromJSVal v = fmap ArrayBufferView <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ArrayBufferView+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsArrayBufferView o+toArrayBufferView :: IsArrayBufferView o => o -> ArrayBufferView+toArrayBufferView = ArrayBufferView . coerce++instance IsArrayBufferView ArrayBufferView+instance IsGObject ArrayBufferView where+  typeGType _ = error "Unable to get the JavaScript type of ArrayBufferView"+#else+-- TODO work out how we can support ArrayBufferView in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Array = Array { unArray :: JSVal }++instance PToJSVal Array where+  pToJSVal = unArray+  {-# INLINE pToJSVal #-}++instance PFromJSVal Array where+  pFromJSVal = Array+  {-# INLINE pFromJSVal #-}++instance ToJSVal Array where+  toJSVal = return . unArray+  {-# INLINE toJSVal #-}++instance FromJSVal Array where+  fromJSVal v = fmap Array <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Array+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsArray o+toArray :: IsArray o => o -> Array+toArray = Array . coerce++instance IsArray Array+instance IsGObject Array where+    typeGType _ = gTypeArray++gTypeArray :: JSM GType+gTypeArray = GType . Object <$> jsg "Array"+#else+-- TODO work out how we can support Array in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Date = Date { unDate :: JSVal }++instance PToJSVal Date where+  pToJSVal = unDate+  {-# INLINE pToJSVal #-}++instance PFromJSVal Date where+  pFromJSVal = Date+  {-# INLINE pFromJSVal #-}++instance ToJSVal Date where+  toJSVal = return . unDate+  {-# INLINE toJSVal #-}++instance FromJSVal Date where+  fromJSVal v = fmap Date <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Date+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsDate o+toDate :: IsDate o => o -> Date+toDate = Date . coerce++instance IsDate Date+instance IsGObject Date where+    typeGType _ = gTypeDate++gTypeDate :: JSM GType+gTypeDate = GType . Object <$> jsg "Date"+#else+-- TODO work out how we can support Date in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Acceleration = Acceleration { unAcceleration :: JSVal }++instance PToJSVal Acceleration where+  pToJSVal = unAcceleration+  {-# INLINE pToJSVal #-}++instance PFromJSVal Acceleration where+  pFromJSVal = Acceleration+  {-# INLINE pFromJSVal #-}++instance ToJSVal Acceleration where+  toJSVal = return . unAcceleration+  {-# INLINE toJSVal #-}++instance FromJSVal Acceleration where+  fromJSVal v = fmap Acceleration <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Acceleration+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsAcceleration o+toAcceleration :: IsAcceleration o => o -> Acceleration+toAcceleration = Acceleration . coerce++instance IsAcceleration Acceleration+instance IsGObject Acceleration where+  typeGType _ = error "Unable to get the JavaScript type of Acceleration"+#else+-- TODO work out how we can support Acceleration in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype RotationRate = RotationRate { unRotationRate :: JSVal }++instance PToJSVal RotationRate where+  pToJSVal = unRotationRate+  {-# INLINE pToJSVal #-}++instance PFromJSVal RotationRate where+  pFromJSVal = RotationRate+  {-# INLINE pFromJSVal #-}++instance ToJSVal RotationRate where+  toJSVal = return . unRotationRate+  {-# INLINE toJSVal #-}++instance FromJSVal RotationRate where+  fromJSVal v = fmap RotationRate <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RotationRate+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsRotationRate o+toRotationRate :: IsRotationRate o => o -> RotationRate+toRotationRate = RotationRate . coerce++instance IsRotationRate RotationRate+instance IsGObject RotationRate where+  typeGType _ = error "Unable to get the JavaScript type of RotationRate"+#else+-- TODO work out how we can support RotationRate in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype Algorithm = Algorithm { unAlgorithm :: JSVal }++instance PToJSVal Algorithm where+  pToJSVal = unAlgorithm+  {-# INLINE pToJSVal #-}++instance PFromJSVal Algorithm where+  pFromJSVal = Algorithm+  {-# INLINE pFromJSVal #-}++instance ToJSVal Algorithm where+  toJSVal = return . unAlgorithm+  {-# INLINE toJSVal #-}++instance FromJSVal Algorithm where+  fromJSVal v = fmap Algorithm <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Algorithm+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsAlgorithm o+toAlgorithm :: IsAlgorithm o => o -> Algorithm+toAlgorithm = Algorithm . coerce++instance IsAlgorithm Algorithm+instance IsGObject Algorithm where+  typeGType _ = error "Unable to get the JavaScript type of Algorithm"+#else+-- TODO work out how we can support Algorithm in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype CryptoOperationData = CryptoOperationData { unCryptoOperationData :: JSVal }++instance PToJSVal CryptoOperationData where+  pToJSVal = unCryptoOperationData+  {-# INLINE pToJSVal #-}++instance PFromJSVal CryptoOperationData where+  pFromJSVal = CryptoOperationData+  {-# INLINE pFromJSVal #-}++instance ToJSVal CryptoOperationData where+  toJSVal = return . unCryptoOperationData+  {-# INLINE toJSVal #-}++instance FromJSVal CryptoOperationData where+  fromJSVal v = fmap CryptoOperationData <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CryptoOperationData+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsCryptoOperationData o+toCryptoOperationData :: IsCryptoOperationData o => o -> CryptoOperationData+toCryptoOperationData = CryptoOperationData . coerce++instance IsCryptoOperationData CryptoOperationData+instance IsGObject CryptoOperationData where+  typeGType _ = error "Unable to get the JavaScript type of CryptoOperationData"+instance IsCryptoOperationData ArrayBuffer+instance IsCryptoOperationData ArrayBufferView+#else+-- TODO work out how we can support CryptoOperationData in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype CanvasStyle = CanvasStyle { unCanvasStyle :: JSVal }++instance PToJSVal CanvasStyle where+  pToJSVal = unCanvasStyle+  {-# INLINE pToJSVal #-}++instance PFromJSVal CanvasStyle where+  pFromJSVal = CanvasStyle+  {-# INLINE pFromJSVal #-}++instance ToJSVal CanvasStyle where+  toJSVal = return . unCanvasStyle+  {-# INLINE toJSVal #-}++instance FromJSVal CanvasStyle where+  fromJSVal v = fmap CanvasStyle <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CanvasStyle+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsCanvasStyle o+toCanvasStyle :: IsCanvasStyle o => o -> CanvasStyle+toCanvasStyle = CanvasStyle . coerce++instance IsCanvasStyle CanvasStyle+instance IsGObject CanvasStyle where+  typeGType _ = error "Unable to get the JavaScript type of CanvasStyle"+instance IsCanvasStyle CanvasGradient+instance IsCanvasStyle CanvasPattern+#else+-- TODO work out how we can support CanvasStyle in native code+#endif++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+newtype DOMException = DOMException { unDOMException :: JSVal }++instance PToJSVal DOMException where+  pToJSVal = unDOMException+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMException where+  pFromJSVal = DOMException+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMException where+  toJSVal = return . unDOMException+  {-# INLINE toJSVal #-}++instance FromJSVal DOMException where+  fromJSVal v = fmap DOMException <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMException+  {-# INLINE fromJSValUnchecked #-}++class IsGObject o => IsDOMException o+toDOMException :: IsDOMException o => o -> DOMException+toDOMException = DOMException . coerce++instance IsDOMException DOMException+instance IsGObject DOMException where+  typeGType _ = error "Unable to get the JavaScript type of DOMException"+#else+-- TODO work out how we can support DOMException in native code+#endif++type GLenum = Word32+type GLboolean = Bool+type GLbitfield = Word32+type GLbyte = Int8+type GLshort = Int16+type GLint = Int32+type GLint64 = Int64+type GLsizei = Int32+type GLintptr = Int64+type GLsizeiptr = Int64+type GLubyte = Word8+type GLushort = Word16+type GLuint = Word32+type GLuint64 = Word64+type GLfloat = Double+type GLclampf = Double++-- AUTO GENERATION STARTS HERE+-- The remainder of this file is generated from IDL files using domconv-webkit-jsffi+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ANGLEInstancedArrays".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays Mozilla ANGLEInstancedArrays documentation>+newtype ANGLEInstancedArrays = ANGLEInstancedArrays { unANGLEInstancedArrays :: JSVal }++instance PToJSVal ANGLEInstancedArrays where+  pToJSVal = unANGLEInstancedArrays+  {-# INLINE pToJSVal #-}++instance PFromJSVal ANGLEInstancedArrays where+  pFromJSVal = ANGLEInstancedArrays+  {-# INLINE pFromJSVal #-}++instance ToJSVal ANGLEInstancedArrays where+  toJSVal = return . unANGLEInstancedArrays+  {-# INLINE toJSVal #-}++instance FromJSVal ANGLEInstancedArrays where+  fromJSVal v = fmap ANGLEInstancedArrays <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ANGLEInstancedArrays+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ANGLEInstancedArrays where+  makeObject = makeObject . unANGLEInstancedArrays++instance IsGObject ANGLEInstancedArrays where+  typeGType _ = gTypeANGLEInstancedArrays+  {-# INLINE typeGType #-}++gTypeANGLEInstancedArrays :: JSM GType+gTypeANGLEInstancedArrays = GType . Object <$> jsg "ANGLEInstancedArrays"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AbstractView".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView Mozilla AbstractView documentation>+newtype AbstractView = AbstractView { unAbstractView :: JSVal }++instance PToJSVal AbstractView where+  pToJSVal = unAbstractView+  {-# INLINE pToJSVal #-}++instance PFromJSVal AbstractView where+  pFromJSVal = AbstractView+  {-# INLINE pFromJSVal #-}++instance ToJSVal AbstractView where+  toJSVal = return . unAbstractView+  {-# INLINE toJSVal #-}++instance FromJSVal AbstractView where+  fromJSVal v = fmap AbstractView <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AbstractView+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AbstractView where+  makeObject = makeObject . unAbstractView++instance IsGObject AbstractView where+  typeGType _ = gTypeAbstractView+  {-# INLINE typeGType #-}++gTypeAbstractView :: JSM GType+gTypeAbstractView = GType . Object <$> jsg "AbstractView"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AbstractWorker".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AbstractWorker Mozilla AbstractWorker documentation>+newtype AbstractWorker = AbstractWorker { unAbstractWorker :: JSVal }++instance PToJSVal AbstractWorker where+  pToJSVal = unAbstractWorker+  {-# INLINE pToJSVal #-}++instance PFromJSVal AbstractWorker where+  pFromJSVal = AbstractWorker+  {-# INLINE pFromJSVal #-}++instance ToJSVal AbstractWorker where+  toJSVal = return . unAbstractWorker+  {-# INLINE toJSVal #-}++instance FromJSVal AbstractWorker where+  fromJSVal v = fmap AbstractWorker <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AbstractWorker+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AbstractWorker where+  makeObject = makeObject . unAbstractWorker++instance IsGObject AbstractWorker where+  typeGType _ = gTypeAbstractWorker+  {-# INLINE typeGType #-}++gTypeAbstractWorker :: JSM GType+gTypeAbstractWorker = GType . Object <$> jsg "AbstractWorker"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AllAudioCapabilities".+-- Base interface functions are in:+--+--     * "JSDOM.MediaStreamCapabilities"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities Mozilla AllAudioCapabilities documentation>+newtype AllAudioCapabilities = AllAudioCapabilities { unAllAudioCapabilities :: JSVal }++instance PToJSVal AllAudioCapabilities where+  pToJSVal = unAllAudioCapabilities+  {-# INLINE pToJSVal #-}++instance PFromJSVal AllAudioCapabilities where+  pFromJSVal = AllAudioCapabilities+  {-# INLINE pFromJSVal #-}++instance ToJSVal AllAudioCapabilities where+  toJSVal = return . unAllAudioCapabilities+  {-# INLINE toJSVal #-}++instance FromJSVal AllAudioCapabilities where+  fromJSVal v = fmap AllAudioCapabilities <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AllAudioCapabilities+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AllAudioCapabilities where+  makeObject = makeObject . unAllAudioCapabilities++instance IsMediaStreamCapabilities AllAudioCapabilities+instance IsGObject AllAudioCapabilities where+  typeGType _ = gTypeAllAudioCapabilities+  {-# INLINE typeGType #-}++gTypeAllAudioCapabilities :: JSM GType+gTypeAllAudioCapabilities = GType . Object <$> jsg "AllAudioCapabilities"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AllVideoCapabilities".+-- Base interface functions are in:+--+--     * "JSDOM.MediaStreamCapabilities"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities Mozilla AllVideoCapabilities documentation>+newtype AllVideoCapabilities = AllVideoCapabilities { unAllVideoCapabilities :: JSVal }++instance PToJSVal AllVideoCapabilities where+  pToJSVal = unAllVideoCapabilities+  {-# INLINE pToJSVal #-}++instance PFromJSVal AllVideoCapabilities where+  pFromJSVal = AllVideoCapabilities+  {-# INLINE pFromJSVal #-}++instance ToJSVal AllVideoCapabilities where+  toJSVal = return . unAllVideoCapabilities+  {-# INLINE toJSVal #-}++instance FromJSVal AllVideoCapabilities where+  fromJSVal v = fmap AllVideoCapabilities <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AllVideoCapabilities+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AllVideoCapabilities where+  makeObject = makeObject . unAllVideoCapabilities++instance IsMediaStreamCapabilities AllVideoCapabilities+instance IsGObject AllVideoCapabilities where+  typeGType _ = gTypeAllVideoCapabilities+  {-# INLINE typeGType #-}++gTypeAllVideoCapabilities :: JSM GType+gTypeAllVideoCapabilities = GType . Object <$> jsg "AllVideoCapabilities"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AnalyserNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode Mozilla AnalyserNode documentation>+newtype AnalyserNode = AnalyserNode { unAnalyserNode :: JSVal }++instance PToJSVal AnalyserNode where+  pToJSVal = unAnalyserNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal AnalyserNode where+  pFromJSVal = AnalyserNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal AnalyserNode where+  toJSVal = return . unAnalyserNode+  {-# INLINE toJSVal #-}++instance FromJSVal AnalyserNode where+  fromJSVal v = fmap AnalyserNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AnalyserNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AnalyserNode where+  makeObject = makeObject . unAnalyserNode++instance IsAudioNode AnalyserNode+instance IsEventTarget AnalyserNode+instance IsGObject AnalyserNode where+  typeGType _ = gTypeAnalyserNode+  {-# INLINE typeGType #-}++gTypeAnalyserNode :: JSM GType+gTypeAnalyserNode = GType . Object <$> jsg "AnalyserNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AnimationEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent Mozilla AnimationEvent documentation>+newtype AnimationEvent = AnimationEvent { unAnimationEvent :: JSVal }++instance PToJSVal AnimationEvent where+  pToJSVal = unAnimationEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal AnimationEvent where+  pFromJSVal = AnimationEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal AnimationEvent where+  toJSVal = return . unAnimationEvent+  {-# INLINE toJSVal #-}++instance FromJSVal AnimationEvent where+  fromJSVal v = fmap AnimationEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AnimationEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AnimationEvent where+  makeObject = makeObject . unAnimationEvent++instance IsEvent AnimationEvent+instance IsGObject AnimationEvent where+  typeGType _ = gTypeAnimationEvent+  {-# INLINE typeGType #-}++gTypeAnimationEvent :: JSM GType+gTypeAnimationEvent = GType . Object <$> jsg "AnimationEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ApplicationCache".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache Mozilla ApplicationCache documentation>+newtype ApplicationCache = ApplicationCache { unApplicationCache :: JSVal }++instance PToJSVal ApplicationCache where+  pToJSVal = unApplicationCache+  {-# INLINE pToJSVal #-}++instance PFromJSVal ApplicationCache where+  pFromJSVal = ApplicationCache+  {-# INLINE pFromJSVal #-}++instance ToJSVal ApplicationCache where+  toJSVal = return . unApplicationCache+  {-# INLINE toJSVal #-}++instance FromJSVal ApplicationCache where+  fromJSVal v = fmap ApplicationCache <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ApplicationCache+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ApplicationCache where+  makeObject = makeObject . unApplicationCache++instance IsEventTarget ApplicationCache+instance IsGObject ApplicationCache where+  typeGType _ = gTypeApplicationCache+  {-# INLINE typeGType #-}++gTypeApplicationCache :: JSM GType+gTypeApplicationCache = GType . Object <$> jsg "ApplicationCache"+#else+type IsApplicationCache o = ApplicationCacheClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Attr".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Attr Mozilla Attr documentation>+newtype Attr = Attr { unAttr :: JSVal }++instance PToJSVal Attr where+  pToJSVal = unAttr+  {-# INLINE pToJSVal #-}++instance PFromJSVal Attr where+  pFromJSVal = Attr+  {-# INLINE pFromJSVal #-}++instance ToJSVal Attr where+  toJSVal = return . unAttr+  {-# INLINE toJSVal #-}++instance FromJSVal Attr where+  fromJSVal v = fmap Attr <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Attr+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Attr where+  makeObject = makeObject . unAttr++instance IsNode Attr+instance IsEventTarget Attr+instance IsGObject Attr where+  typeGType _ = gTypeAttr+  {-# INLINE typeGType #-}++gTypeAttr :: JSM GType+gTypeAttr = GType . Object <$> jsg "Attr"+#else+type IsAttr o = AttrClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioBuffer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer Mozilla AudioBuffer documentation>+newtype AudioBuffer = AudioBuffer { unAudioBuffer :: JSVal }++instance PToJSVal AudioBuffer where+  pToJSVal = unAudioBuffer+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioBuffer where+  pFromJSVal = AudioBuffer+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioBuffer where+  toJSVal = return . unAudioBuffer+  {-# INLINE toJSVal #-}++instance FromJSVal AudioBuffer where+  fromJSVal v = fmap AudioBuffer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioBuffer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioBuffer where+  makeObject = makeObject . unAudioBuffer++instance IsGObject AudioBuffer where+  typeGType _ = gTypeAudioBuffer+  {-# INLINE typeGType #-}++gTypeAudioBuffer :: JSM GType+gTypeAudioBuffer = GType . Object <$> jsg "AudioBuffer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioBufferSourceNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode Mozilla AudioBufferSourceNode documentation>+newtype AudioBufferSourceNode = AudioBufferSourceNode { unAudioBufferSourceNode :: JSVal }++instance PToJSVal AudioBufferSourceNode where+  pToJSVal = unAudioBufferSourceNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioBufferSourceNode where+  pFromJSVal = AudioBufferSourceNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioBufferSourceNode where+  toJSVal = return . unAudioBufferSourceNode+  {-# INLINE toJSVal #-}++instance FromJSVal AudioBufferSourceNode where+  fromJSVal v = fmap AudioBufferSourceNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioBufferSourceNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioBufferSourceNode where+  makeObject = makeObject . unAudioBufferSourceNode++instance IsAudioNode AudioBufferSourceNode+instance IsEventTarget AudioBufferSourceNode+instance IsGObject AudioBufferSourceNode where+  typeGType _ = gTypeAudioBufferSourceNode+  {-# INLINE typeGType #-}++gTypeAudioBufferSourceNode :: JSM GType+gTypeAudioBufferSourceNode = GType . Object <$> jsg "AudioBufferSourceNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioContext".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext Mozilla AudioContext documentation>+newtype AudioContext = AudioContext { unAudioContext :: JSVal }++instance PToJSVal AudioContext where+  pToJSVal = unAudioContext+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioContext where+  pFromJSVal = AudioContext+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioContext where+  toJSVal = return . unAudioContext+  {-# INLINE toJSVal #-}++instance FromJSVal AudioContext where+  fromJSVal v = fmap AudioContext <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioContext+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioContext where+  makeObject = makeObject . unAudioContext++class IsEventTarget o => IsAudioContext o+toAudioContext :: IsAudioContext o => o -> AudioContext+toAudioContext = AudioContext . coerce++instance IsAudioContext AudioContext+instance IsEventTarget AudioContext+instance IsGObject AudioContext where+  typeGType _ = gTypeAudioContext+  {-# INLINE typeGType #-}++gTypeAudioContext :: JSM GType+gTypeAudioContext = GType . Object <$> jsg "AudioContext"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioDestinationNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioDestinationNode Mozilla AudioDestinationNode documentation>+newtype AudioDestinationNode = AudioDestinationNode { unAudioDestinationNode :: JSVal }++instance PToJSVal AudioDestinationNode where+  pToJSVal = unAudioDestinationNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioDestinationNode where+  pFromJSVal = AudioDestinationNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioDestinationNode where+  toJSVal = return . unAudioDestinationNode+  {-# INLINE toJSVal #-}++instance FromJSVal AudioDestinationNode where+  fromJSVal v = fmap AudioDestinationNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioDestinationNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioDestinationNode where+  makeObject = makeObject . unAudioDestinationNode++instance IsAudioNode AudioDestinationNode+instance IsEventTarget AudioDestinationNode+instance IsGObject AudioDestinationNode where+  typeGType _ = gTypeAudioDestinationNode+  {-# INLINE typeGType #-}++gTypeAudioDestinationNode :: JSM GType+gTypeAudioDestinationNode = GType . Object <$> jsg "AudioDestinationNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioListener".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener Mozilla AudioListener documentation>+newtype AudioListener = AudioListener { unAudioListener :: JSVal }++instance PToJSVal AudioListener where+  pToJSVal = unAudioListener+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioListener where+  pFromJSVal = AudioListener+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioListener where+  toJSVal = return . unAudioListener+  {-# INLINE toJSVal #-}++instance FromJSVal AudioListener where+  fromJSVal v = fmap AudioListener <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioListener+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioListener where+  makeObject = makeObject . unAudioListener++instance IsGObject AudioListener where+  typeGType _ = gTypeAudioListener+  {-# INLINE typeGType #-}++gTypeAudioListener :: JSM GType+gTypeAudioListener = GType . Object <$> jsg "AudioListener"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioNode".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode Mozilla AudioNode documentation>+newtype AudioNode = AudioNode { unAudioNode :: JSVal }++instance PToJSVal AudioNode where+  pToJSVal = unAudioNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioNode where+  pFromJSVal = AudioNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioNode where+  toJSVal = return . unAudioNode+  {-# INLINE toJSVal #-}++instance FromJSVal AudioNode where+  fromJSVal v = fmap AudioNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioNode where+  makeObject = makeObject . unAudioNode++class IsEventTarget o => IsAudioNode o+toAudioNode :: IsAudioNode o => o -> AudioNode+toAudioNode = AudioNode . coerce++instance IsAudioNode AudioNode+instance IsEventTarget AudioNode+instance IsGObject AudioNode where+  typeGType _ = gTypeAudioNode+  {-# INLINE typeGType #-}++gTypeAudioNode :: JSM GType+gTypeAudioNode = GType . Object <$> jsg "AudioNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioParam".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam Mozilla AudioParam documentation>+newtype AudioParam = AudioParam { unAudioParam :: JSVal }++instance PToJSVal AudioParam where+  pToJSVal = unAudioParam+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioParam where+  pFromJSVal = AudioParam+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioParam where+  toJSVal = return . unAudioParam+  {-# INLINE toJSVal #-}++instance FromJSVal AudioParam where+  fromJSVal v = fmap AudioParam <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioParam+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioParam where+  makeObject = makeObject . unAudioParam++instance IsGObject AudioParam where+  typeGType _ = gTypeAudioParam+  {-# INLINE typeGType #-}++gTypeAudioParam :: JSM GType+gTypeAudioParam = GType . Object <$> jsg "AudioParam"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioProcessingEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent Mozilla AudioProcessingEvent documentation>+newtype AudioProcessingEvent = AudioProcessingEvent { unAudioProcessingEvent :: JSVal }++instance PToJSVal AudioProcessingEvent where+  pToJSVal = unAudioProcessingEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioProcessingEvent where+  pFromJSVal = AudioProcessingEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioProcessingEvent where+  toJSVal = return . unAudioProcessingEvent+  {-# INLINE toJSVal #-}++instance FromJSVal AudioProcessingEvent where+  fromJSVal v = fmap AudioProcessingEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioProcessingEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioProcessingEvent where+  makeObject = makeObject . unAudioProcessingEvent++instance IsEvent AudioProcessingEvent+instance IsGObject AudioProcessingEvent where+  typeGType _ = gTypeAudioProcessingEvent+  {-# INLINE typeGType #-}++gTypeAudioProcessingEvent :: JSM GType+gTypeAudioProcessingEvent = GType . Object <$> jsg "AudioProcessingEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioStreamTrack".+-- Base interface functions are in:+--+--     * "JSDOM.MediaStreamTrack"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioStreamTrack Mozilla AudioStreamTrack documentation>+newtype AudioStreamTrack = AudioStreamTrack { unAudioStreamTrack :: JSVal }++instance PToJSVal AudioStreamTrack where+  pToJSVal = unAudioStreamTrack+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioStreamTrack where+  pFromJSVal = AudioStreamTrack+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioStreamTrack where+  toJSVal = return . unAudioStreamTrack+  {-# INLINE toJSVal #-}++instance FromJSVal AudioStreamTrack where+  fromJSVal v = fmap AudioStreamTrack <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioStreamTrack+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioStreamTrack where+  makeObject = makeObject . unAudioStreamTrack++instance IsMediaStreamTrack AudioStreamTrack+instance IsEventTarget AudioStreamTrack+instance IsGObject AudioStreamTrack where+  typeGType _ = gTypeAudioStreamTrack+  {-# INLINE typeGType #-}++gTypeAudioStreamTrack :: JSM GType+gTypeAudioStreamTrack = GType . Object <$> jsg "AudioStreamTrack"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioTrack".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack Mozilla AudioTrack documentation>+newtype AudioTrack = AudioTrack { unAudioTrack :: JSVal }++instance PToJSVal AudioTrack where+  pToJSVal = unAudioTrack+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioTrack where+  pFromJSVal = AudioTrack+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioTrack where+  toJSVal = return . unAudioTrack+  {-# INLINE toJSVal #-}++instance FromJSVal AudioTrack where+  fromJSVal v = fmap AudioTrack <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioTrack+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioTrack where+  makeObject = makeObject . unAudioTrack++instance IsGObject AudioTrack where+  typeGType _ = gTypeAudioTrack+  {-# INLINE typeGType #-}++gTypeAudioTrack :: JSM GType+gTypeAudioTrack = GType . Object <$> jsg "AudioTrack"+#else+#ifndef USE_OLD_WEBKIT+type IsAudioTrack o = AudioTrackClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AudioTrackList".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList Mozilla AudioTrackList documentation>+newtype AudioTrackList = AudioTrackList { unAudioTrackList :: JSVal }++instance PToJSVal AudioTrackList where+  pToJSVal = unAudioTrackList+  {-# INLINE pToJSVal #-}++instance PFromJSVal AudioTrackList where+  pFromJSVal = AudioTrackList+  {-# INLINE pFromJSVal #-}++instance ToJSVal AudioTrackList where+  toJSVal = return . unAudioTrackList+  {-# INLINE toJSVal #-}++instance FromJSVal AudioTrackList where+  fromJSVal v = fmap AudioTrackList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AudioTrackList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AudioTrackList where+  makeObject = makeObject . unAudioTrackList++instance IsEventTarget AudioTrackList+instance IsGObject AudioTrackList where+  typeGType _ = gTypeAudioTrackList+  {-# INLINE typeGType #-}++gTypeAudioTrackList :: JSM GType+gTypeAudioTrackList = GType . Object <$> jsg "AudioTrackList"+#else+#ifndef USE_OLD_WEBKIT+type IsAudioTrackList o = AudioTrackListClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.AutocompleteErrorEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/AutocompleteErrorEvent Mozilla AutocompleteErrorEvent documentation>+newtype AutocompleteErrorEvent = AutocompleteErrorEvent { unAutocompleteErrorEvent :: JSVal }++instance PToJSVal AutocompleteErrorEvent where+  pToJSVal = unAutocompleteErrorEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal AutocompleteErrorEvent where+  pFromJSVal = AutocompleteErrorEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal AutocompleteErrorEvent where+  toJSVal = return . unAutocompleteErrorEvent+  {-# INLINE toJSVal #-}++instance FromJSVal AutocompleteErrorEvent where+  fromJSVal v = fmap AutocompleteErrorEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . AutocompleteErrorEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject AutocompleteErrorEvent where+  makeObject = makeObject . unAutocompleteErrorEvent++instance IsEvent AutocompleteErrorEvent+instance IsGObject AutocompleteErrorEvent where+  typeGType _ = gTypeAutocompleteErrorEvent+  {-# INLINE typeGType #-}++gTypeAutocompleteErrorEvent :: JSM GType+gTypeAutocompleteErrorEvent = GType . Object <$> jsg "AutocompleteErrorEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.BarProp".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/BarProp Mozilla BarProp documentation>+newtype BarProp = BarProp { unBarProp :: JSVal }++instance PToJSVal BarProp where+  pToJSVal = unBarProp+  {-# INLINE pToJSVal #-}++instance PFromJSVal BarProp where+  pFromJSVal = BarProp+  {-# INLINE pFromJSVal #-}++instance ToJSVal BarProp where+  toJSVal = return . unBarProp+  {-# INLINE toJSVal #-}++instance FromJSVal BarProp where+  fromJSVal v = fmap BarProp <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . BarProp+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject BarProp where+  makeObject = makeObject . unBarProp++instance IsGObject BarProp where+  typeGType _ = gTypeBarProp+  {-# INLINE typeGType #-}++gTypeBarProp :: JSM GType+gTypeBarProp = GType . Object <$> jsg "BarProp"+#else+#ifndef USE_OLD_WEBKIT+type IsBarProp o = BarPropClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.BatteryManager".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager Mozilla BatteryManager documentation>+newtype BatteryManager = BatteryManager { unBatteryManager :: JSVal }++instance PToJSVal BatteryManager where+  pToJSVal = unBatteryManager+  {-# INLINE pToJSVal #-}++instance PFromJSVal BatteryManager where+  pFromJSVal = BatteryManager+  {-# INLINE pFromJSVal #-}++instance ToJSVal BatteryManager where+  toJSVal = return . unBatteryManager+  {-# INLINE toJSVal #-}++instance FromJSVal BatteryManager where+  fromJSVal v = fmap BatteryManager <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . BatteryManager+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject BatteryManager where+  makeObject = makeObject . unBatteryManager++instance IsEventTarget BatteryManager+instance IsGObject BatteryManager where+  typeGType _ = gTypeBatteryManager+  {-# INLINE typeGType #-}++gTypeBatteryManager :: JSM GType+gTypeBatteryManager = GType . Object <$> jsg "BatteryManager"+#else+#ifndef USE_OLD_WEBKIT+type IsBatteryManager o = BatteryManagerClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.BeforeLoadEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEvent Mozilla BeforeLoadEvent documentation>+newtype BeforeLoadEvent = BeforeLoadEvent { unBeforeLoadEvent :: JSVal }++instance PToJSVal BeforeLoadEvent where+  pToJSVal = unBeforeLoadEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal BeforeLoadEvent where+  pFromJSVal = BeforeLoadEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal BeforeLoadEvent where+  toJSVal = return . unBeforeLoadEvent+  {-# INLINE toJSVal #-}++instance FromJSVal BeforeLoadEvent where+  fromJSVal v = fmap BeforeLoadEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . BeforeLoadEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject BeforeLoadEvent where+  makeObject = makeObject . unBeforeLoadEvent++instance IsEvent BeforeLoadEvent+instance IsGObject BeforeLoadEvent where+  typeGType _ = gTypeBeforeLoadEvent+  {-# INLINE typeGType #-}++gTypeBeforeLoadEvent :: JSM GType+gTypeBeforeLoadEvent = GType . Object <$> jsg "BeforeLoadEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.BeforeUnloadEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent Mozilla BeforeUnloadEvent documentation>+newtype BeforeUnloadEvent = BeforeUnloadEvent { unBeforeUnloadEvent :: JSVal }++instance PToJSVal BeforeUnloadEvent where+  pToJSVal = unBeforeUnloadEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal BeforeUnloadEvent where+  pFromJSVal = BeforeUnloadEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal BeforeUnloadEvent where+  toJSVal = return . unBeforeUnloadEvent+  {-# INLINE toJSVal #-}++instance FromJSVal BeforeUnloadEvent where+  fromJSVal v = fmap BeforeUnloadEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . BeforeUnloadEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject BeforeUnloadEvent where+  makeObject = makeObject . unBeforeUnloadEvent++instance IsEvent BeforeUnloadEvent+instance IsGObject BeforeUnloadEvent where+  typeGType _ = gTypeBeforeUnloadEvent+  {-# INLINE typeGType #-}++gTypeBeforeUnloadEvent :: JSM GType+gTypeBeforeUnloadEvent = GType . Object <$> jsg "BeforeUnloadEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.BiquadFilterNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode Mozilla BiquadFilterNode documentation>+newtype BiquadFilterNode = BiquadFilterNode { unBiquadFilterNode :: JSVal }++instance PToJSVal BiquadFilterNode where+  pToJSVal = unBiquadFilterNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal BiquadFilterNode where+  pFromJSVal = BiquadFilterNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal BiquadFilterNode where+  toJSVal = return . unBiquadFilterNode+  {-# INLINE toJSVal #-}++instance FromJSVal BiquadFilterNode where+  fromJSVal v = fmap BiquadFilterNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . BiquadFilterNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject BiquadFilterNode where+  makeObject = makeObject . unBiquadFilterNode++instance IsAudioNode BiquadFilterNode+instance IsEventTarget BiquadFilterNode+instance IsGObject BiquadFilterNode where+  typeGType _ = gTypeBiquadFilterNode+  {-# INLINE typeGType #-}++gTypeBiquadFilterNode :: JSM GType+gTypeBiquadFilterNode = GType . Object <$> jsg "BiquadFilterNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Blob".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Blob Mozilla Blob documentation>+newtype Blob = Blob { unBlob :: JSVal }++instance PToJSVal Blob where+  pToJSVal = unBlob+  {-# INLINE pToJSVal #-}++instance PFromJSVal Blob where+  pFromJSVal = Blob+  {-# INLINE pFromJSVal #-}++instance ToJSVal Blob where+  toJSVal = return . unBlob+  {-# INLINE toJSVal #-}++instance FromJSVal Blob where+  fromJSVal v = fmap Blob <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Blob+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Blob where+  makeObject = makeObject . unBlob++class IsGObject o => IsBlob o+toBlob :: IsBlob o => o -> Blob+toBlob = Blob . coerce++instance IsBlob Blob+instance IsGObject Blob where+  typeGType _ = gTypeBlob+  {-# INLINE typeGType #-}++gTypeBlob :: JSM GType+gTypeBlob = GType . Object <$> jsg "Blob"+#else+type IsBlob o = BlobClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CDATASection".+-- Base interface functions are in:+--+--     * "JSDOM.Text"+--     * "JSDOM.CharacterData"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CDATASection Mozilla CDATASection documentation>+newtype CDATASection = CDATASection { unCDATASection :: JSVal }++instance PToJSVal CDATASection where+  pToJSVal = unCDATASection+  {-# INLINE pToJSVal #-}++instance PFromJSVal CDATASection where+  pFromJSVal = CDATASection+  {-# INLINE pFromJSVal #-}++instance ToJSVal CDATASection where+  toJSVal = return . unCDATASection+  {-# INLINE toJSVal #-}++instance FromJSVal CDATASection where+  fromJSVal v = fmap CDATASection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CDATASection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CDATASection where+  makeObject = makeObject . unCDATASection++instance IsText CDATASection+instance IsCharacterData CDATASection+instance IsNode CDATASection+instance IsEventTarget CDATASection+instance IsGObject CDATASection where+  typeGType _ = gTypeCDATASection+  {-# INLINE typeGType #-}++gTypeCDATASection :: JSM GType+gTypeCDATASection = GType . Object <$> jsg "CDATASection"+#else+type IsCDATASection o = CDATASectionClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSS".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSS Mozilla CSS documentation>+newtype CSS = CSS { unCSS :: JSVal }++instance PToJSVal CSS where+  pToJSVal = unCSS+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSS where+  pFromJSVal = CSS+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSS where+  toJSVal = return . unCSS+  {-# INLINE toJSVal #-}++instance FromJSVal CSS where+  fromJSVal v = fmap CSS <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSS+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSS where+  makeObject = makeObject . unCSS++instance IsGObject CSS where+  typeGType _ = gTypeCSS+  {-# INLINE typeGType #-}++gTypeCSS :: JSM GType+gTypeCSS = GType . Object <$> jsg "CSS"+#else+#ifndef USE_OLD_WEBKIT+type IsCSS o = CSSClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSCharsetRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule Mozilla CSSCharsetRule documentation>+newtype CSSCharsetRule = CSSCharsetRule { unCSSCharsetRule :: JSVal }++instance PToJSVal CSSCharsetRule where+  pToJSVal = unCSSCharsetRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSCharsetRule where+  pFromJSVal = CSSCharsetRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSCharsetRule where+  toJSVal = return . unCSSCharsetRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSCharsetRule where+  fromJSVal v = fmap CSSCharsetRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSCharsetRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSCharsetRule where+  makeObject = makeObject . unCSSCharsetRule++instance IsCSSRule CSSCharsetRule+instance IsGObject CSSCharsetRule where+  typeGType _ = gTypeCSSCharsetRule+  {-# INLINE typeGType #-}++gTypeCSSCharsetRule :: JSM GType+gTypeCSSCharsetRule = GType . Object <$> jsg "CSSCharsetRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSFontFaceLoadEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent Mozilla CSSFontFaceLoadEvent documentation>+newtype CSSFontFaceLoadEvent = CSSFontFaceLoadEvent { unCSSFontFaceLoadEvent :: JSVal }++instance PToJSVal CSSFontFaceLoadEvent where+  pToJSVal = unCSSFontFaceLoadEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSFontFaceLoadEvent where+  pFromJSVal = CSSFontFaceLoadEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSFontFaceLoadEvent where+  toJSVal = return . unCSSFontFaceLoadEvent+  {-# INLINE toJSVal #-}++instance FromJSVal CSSFontFaceLoadEvent where+  fromJSVal v = fmap CSSFontFaceLoadEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSFontFaceLoadEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSFontFaceLoadEvent where+  makeObject = makeObject . unCSSFontFaceLoadEvent++instance IsEvent CSSFontFaceLoadEvent+instance IsGObject CSSFontFaceLoadEvent where+  typeGType _ = gTypeCSSFontFaceLoadEvent+  {-# INLINE typeGType #-}++gTypeCSSFontFaceLoadEvent :: JSM GType+gTypeCSSFontFaceLoadEvent = GType . Object <$> jsg "CSSFontFaceLoadEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSFontFaceRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule Mozilla CSSFontFaceRule documentation>+newtype CSSFontFaceRule = CSSFontFaceRule { unCSSFontFaceRule :: JSVal }++instance PToJSVal CSSFontFaceRule where+  pToJSVal = unCSSFontFaceRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSFontFaceRule where+  pFromJSVal = CSSFontFaceRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSFontFaceRule where+  toJSVal = return . unCSSFontFaceRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSFontFaceRule where+  fromJSVal v = fmap CSSFontFaceRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSFontFaceRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSFontFaceRule where+  makeObject = makeObject . unCSSFontFaceRule++instance IsCSSRule CSSFontFaceRule+instance IsGObject CSSFontFaceRule where+  typeGType _ = gTypeCSSFontFaceRule+  {-# INLINE typeGType #-}++gTypeCSSFontFaceRule :: JSM GType+gTypeCSSFontFaceRule = GType . Object <$> jsg "CSSFontFaceRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSImportRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule Mozilla CSSImportRule documentation>+newtype CSSImportRule = CSSImportRule { unCSSImportRule :: JSVal }++instance PToJSVal CSSImportRule where+  pToJSVal = unCSSImportRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSImportRule where+  pFromJSVal = CSSImportRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSImportRule where+  toJSVal = return . unCSSImportRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSImportRule where+  fromJSVal v = fmap CSSImportRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSImportRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSImportRule where+  makeObject = makeObject . unCSSImportRule++instance IsCSSRule CSSImportRule+instance IsGObject CSSImportRule where+  typeGType _ = gTypeCSSImportRule+  {-# INLINE typeGType #-}++gTypeCSSImportRule :: JSM GType+gTypeCSSImportRule = GType . Object <$> jsg "CSSImportRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSKeyframeRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule Mozilla CSSKeyframeRule documentation>+newtype CSSKeyframeRule = CSSKeyframeRule { unCSSKeyframeRule :: JSVal }++instance PToJSVal CSSKeyframeRule where+  pToJSVal = unCSSKeyframeRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSKeyframeRule where+  pFromJSVal = CSSKeyframeRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSKeyframeRule where+  toJSVal = return . unCSSKeyframeRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSKeyframeRule where+  fromJSVal v = fmap CSSKeyframeRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSKeyframeRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSKeyframeRule where+  makeObject = makeObject . unCSSKeyframeRule++instance IsCSSRule CSSKeyframeRule+instance IsGObject CSSKeyframeRule where+  typeGType _ = gTypeCSSKeyframeRule+  {-# INLINE typeGType #-}++gTypeCSSKeyframeRule :: JSM GType+gTypeCSSKeyframeRule = GType . Object <$> jsg "CSSKeyframeRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSKeyframesRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule Mozilla CSSKeyframesRule documentation>+newtype CSSKeyframesRule = CSSKeyframesRule { unCSSKeyframesRule :: JSVal }++instance PToJSVal CSSKeyframesRule where+  pToJSVal = unCSSKeyframesRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSKeyframesRule where+  pFromJSVal = CSSKeyframesRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSKeyframesRule where+  toJSVal = return . unCSSKeyframesRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSKeyframesRule where+  fromJSVal v = fmap CSSKeyframesRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSKeyframesRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSKeyframesRule where+  makeObject = makeObject . unCSSKeyframesRule++instance IsCSSRule CSSKeyframesRule+instance IsGObject CSSKeyframesRule where+  typeGType _ = gTypeCSSKeyframesRule+  {-# INLINE typeGType #-}++gTypeCSSKeyframesRule :: JSM GType+gTypeCSSKeyframesRule = GType . Object <$> jsg "CSSKeyframesRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSMediaRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule Mozilla CSSMediaRule documentation>+newtype CSSMediaRule = CSSMediaRule { unCSSMediaRule :: JSVal }++instance PToJSVal CSSMediaRule where+  pToJSVal = unCSSMediaRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSMediaRule where+  pFromJSVal = CSSMediaRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSMediaRule where+  toJSVal = return . unCSSMediaRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSMediaRule where+  fromJSVal v = fmap CSSMediaRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSMediaRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSMediaRule where+  makeObject = makeObject . unCSSMediaRule++instance IsCSSRule CSSMediaRule+instance IsGObject CSSMediaRule where+  typeGType _ = gTypeCSSMediaRule+  {-# INLINE typeGType #-}++gTypeCSSMediaRule :: JSM GType+gTypeCSSMediaRule = GType . Object <$> jsg "CSSMediaRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSPageRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule Mozilla CSSPageRule documentation>+newtype CSSPageRule = CSSPageRule { unCSSPageRule :: JSVal }++instance PToJSVal CSSPageRule where+  pToJSVal = unCSSPageRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSPageRule where+  pFromJSVal = CSSPageRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSPageRule where+  toJSVal = return . unCSSPageRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSPageRule where+  fromJSVal v = fmap CSSPageRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSPageRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSPageRule where+  makeObject = makeObject . unCSSPageRule++instance IsCSSRule CSSPageRule+instance IsGObject CSSPageRule where+  typeGType _ = gTypeCSSPageRule+  {-# INLINE typeGType #-}++gTypeCSSPageRule :: JSM GType+gTypeCSSPageRule = GType . Object <$> jsg "CSSPageRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSPrimitiveValue".+-- Base interface functions are in:+--+--     * "JSDOM.CSSValue"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue Mozilla CSSPrimitiveValue documentation>+newtype CSSPrimitiveValue = CSSPrimitiveValue { unCSSPrimitiveValue :: JSVal }++instance PToJSVal CSSPrimitiveValue where+  pToJSVal = unCSSPrimitiveValue+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSPrimitiveValue where+  pFromJSVal = CSSPrimitiveValue+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSPrimitiveValue where+  toJSVal = return . unCSSPrimitiveValue+  {-# INLINE toJSVal #-}++instance FromJSVal CSSPrimitiveValue where+  fromJSVal v = fmap CSSPrimitiveValue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSPrimitiveValue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSPrimitiveValue where+  makeObject = makeObject . unCSSPrimitiveValue++instance IsCSSValue CSSPrimitiveValue+instance IsGObject CSSPrimitiveValue where+  typeGType _ = gTypeCSSPrimitiveValue+  {-# INLINE typeGType #-}++gTypeCSSPrimitiveValue :: JSM GType+gTypeCSSPrimitiveValue = GType . Object <$> jsg "CSSPrimitiveValue"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSRule".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule Mozilla CSSRule documentation>+newtype CSSRule = CSSRule { unCSSRule :: JSVal }++instance PToJSVal CSSRule where+  pToJSVal = unCSSRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSRule where+  pFromJSVal = CSSRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSRule where+  toJSVal = return . unCSSRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSRule where+  fromJSVal v = fmap CSSRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSRule where+  makeObject = makeObject . unCSSRule++class IsGObject o => IsCSSRule o+toCSSRule :: IsCSSRule o => o -> CSSRule+toCSSRule = CSSRule . coerce++instance IsCSSRule CSSRule+instance IsGObject CSSRule where+  typeGType _ = gTypeCSSRule+  {-# INLINE typeGType #-}++gTypeCSSRule :: JSM GType+gTypeCSSRule = GType . Object <$> jsg "CSSRule"+#else+type IsCSSRule o = CSSRuleClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSRuleList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList Mozilla CSSRuleList documentation>+newtype CSSRuleList = CSSRuleList { unCSSRuleList :: JSVal }++instance PToJSVal CSSRuleList where+  pToJSVal = unCSSRuleList+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSRuleList where+  pFromJSVal = CSSRuleList+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSRuleList where+  toJSVal = return . unCSSRuleList+  {-# INLINE toJSVal #-}++instance FromJSVal CSSRuleList where+  fromJSVal v = fmap CSSRuleList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSRuleList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSRuleList where+  makeObject = makeObject . unCSSRuleList++instance IsGObject CSSRuleList where+  typeGType _ = gTypeCSSRuleList+  {-# INLINE typeGType #-}++gTypeCSSRuleList :: JSM GType+gTypeCSSRuleList = GType . Object <$> jsg "CSSRuleList"+#else+type IsCSSRuleList o = CSSRuleListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSStyleDeclaration".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration Mozilla CSSStyleDeclaration documentation>+newtype CSSStyleDeclaration = CSSStyleDeclaration { unCSSStyleDeclaration :: JSVal }++instance PToJSVal CSSStyleDeclaration where+  pToJSVal = unCSSStyleDeclaration+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSStyleDeclaration where+  pFromJSVal = CSSStyleDeclaration+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSStyleDeclaration where+  toJSVal = return . unCSSStyleDeclaration+  {-# INLINE toJSVal #-}++instance FromJSVal CSSStyleDeclaration where+  fromJSVal v = fmap CSSStyleDeclaration <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSStyleDeclaration+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSStyleDeclaration where+  makeObject = makeObject . unCSSStyleDeclaration++instance IsGObject CSSStyleDeclaration where+  typeGType _ = gTypeCSSStyleDeclaration+  {-# INLINE typeGType #-}++gTypeCSSStyleDeclaration :: JSM GType+gTypeCSSStyleDeclaration = GType . Object <$> jsg "CSSStyleDeclaration"+#else+type IsCSSStyleDeclaration o = CSSStyleDeclarationClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSStyleRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule Mozilla CSSStyleRule documentation>+newtype CSSStyleRule = CSSStyleRule { unCSSStyleRule :: JSVal }++instance PToJSVal CSSStyleRule where+  pToJSVal = unCSSStyleRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSStyleRule where+  pFromJSVal = CSSStyleRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSStyleRule where+  toJSVal = return . unCSSStyleRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSStyleRule where+  fromJSVal v = fmap CSSStyleRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSStyleRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSStyleRule where+  makeObject = makeObject . unCSSStyleRule++instance IsCSSRule CSSStyleRule+instance IsGObject CSSStyleRule where+  typeGType _ = gTypeCSSStyleRule+  {-# INLINE typeGType #-}++gTypeCSSStyleRule :: JSM GType+gTypeCSSStyleRule = GType . Object <$> jsg "CSSStyleRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSStyleSheet".+-- Base interface functions are in:+--+--     * "JSDOM.StyleSheet"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet Mozilla CSSStyleSheet documentation>+newtype CSSStyleSheet = CSSStyleSheet { unCSSStyleSheet :: JSVal }++instance PToJSVal CSSStyleSheet where+  pToJSVal = unCSSStyleSheet+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSStyleSheet where+  pFromJSVal = CSSStyleSheet+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSStyleSheet where+  toJSVal = return . unCSSStyleSheet+  {-# INLINE toJSVal #-}++instance FromJSVal CSSStyleSheet where+  fromJSVal v = fmap CSSStyleSheet <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSStyleSheet+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSStyleSheet where+  makeObject = makeObject . unCSSStyleSheet++instance IsStyleSheet CSSStyleSheet+instance IsGObject CSSStyleSheet where+  typeGType _ = gTypeCSSStyleSheet+  {-# INLINE typeGType #-}++gTypeCSSStyleSheet :: JSM GType+gTypeCSSStyleSheet = GType . Object <$> jsg "CSSStyleSheet"+#else+type IsCSSStyleSheet o = CSSStyleSheetClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSSupportsRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule Mozilla CSSSupportsRule documentation>+newtype CSSSupportsRule = CSSSupportsRule { unCSSSupportsRule :: JSVal }++instance PToJSVal CSSSupportsRule where+  pToJSVal = unCSSSupportsRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSSupportsRule where+  pFromJSVal = CSSSupportsRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSSupportsRule where+  toJSVal = return . unCSSSupportsRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSSupportsRule where+  fromJSVal v = fmap CSSSupportsRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSSupportsRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSSupportsRule where+  makeObject = makeObject . unCSSSupportsRule++instance IsCSSRule CSSSupportsRule+instance IsGObject CSSSupportsRule where+  typeGType _ = gTypeCSSSupportsRule+  {-# INLINE typeGType #-}++gTypeCSSSupportsRule :: JSM GType+gTypeCSSSupportsRule = GType . Object <$> jsg "CSSSupportsRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSUnknownRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSUnknownRule Mozilla CSSUnknownRule documentation>+newtype CSSUnknownRule = CSSUnknownRule { unCSSUnknownRule :: JSVal }++instance PToJSVal CSSUnknownRule where+  pToJSVal = unCSSUnknownRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSUnknownRule where+  pFromJSVal = CSSUnknownRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSUnknownRule where+  toJSVal = return . unCSSUnknownRule+  {-# INLINE toJSVal #-}++instance FromJSVal CSSUnknownRule where+  fromJSVal v = fmap CSSUnknownRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSUnknownRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSUnknownRule where+  makeObject = makeObject . unCSSUnknownRule++instance IsCSSRule CSSUnknownRule+instance IsGObject CSSUnknownRule where+  typeGType _ = gTypeCSSUnknownRule+  {-# INLINE typeGType #-}++gTypeCSSUnknownRule :: JSM GType+gTypeCSSUnknownRule = GType . Object <$> jsg "CSSUnknownRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSValue".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSValue Mozilla CSSValue documentation>+newtype CSSValue = CSSValue { unCSSValue :: JSVal }++instance PToJSVal CSSValue where+  pToJSVal = unCSSValue+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSValue where+  pFromJSVal = CSSValue+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSValue where+  toJSVal = return . unCSSValue+  {-# INLINE toJSVal #-}++instance FromJSVal CSSValue where+  fromJSVal v = fmap CSSValue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSValue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSValue where+  makeObject = makeObject . unCSSValue++class IsGObject o => IsCSSValue o+toCSSValue :: IsCSSValue o => o -> CSSValue+toCSSValue = CSSValue . coerce++instance IsCSSValue CSSValue+instance IsGObject CSSValue where+  typeGType _ = gTypeCSSValue+  {-# INLINE typeGType #-}++gTypeCSSValue :: JSM GType+gTypeCSSValue = GType . Object <$> jsg "CSSValue"+#else+type IsCSSValue o = CSSValueClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CSSValueList".+-- Base interface functions are in:+--+--     * "JSDOM.CSSValue"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList Mozilla CSSValueList documentation>+newtype CSSValueList = CSSValueList { unCSSValueList :: JSVal }++instance PToJSVal CSSValueList where+  pToJSVal = unCSSValueList+  {-# INLINE pToJSVal #-}++instance PFromJSVal CSSValueList where+  pFromJSVal = CSSValueList+  {-# INLINE pFromJSVal #-}++instance ToJSVal CSSValueList where+  toJSVal = return . unCSSValueList+  {-# INLINE toJSVal #-}++instance FromJSVal CSSValueList where+  fromJSVal v = fmap CSSValueList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CSSValueList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CSSValueList where+  makeObject = makeObject . unCSSValueList++class IsCSSValue o => IsCSSValueList o+toCSSValueList :: IsCSSValueList o => o -> CSSValueList+toCSSValueList = CSSValueList . coerce++instance IsCSSValueList CSSValueList+instance IsCSSValue CSSValueList+instance IsGObject CSSValueList where+  typeGType _ = gTypeCSSValueList+  {-# INLINE typeGType #-}++gTypeCSSValueList :: JSM GType+gTypeCSSValueList = GType . Object <$> jsg "CSSValueList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CanvasGradient".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasGradient Mozilla CanvasGradient documentation>+newtype CanvasGradient = CanvasGradient { unCanvasGradient :: JSVal }++instance PToJSVal CanvasGradient where+  pToJSVal = unCanvasGradient+  {-# INLINE pToJSVal #-}++instance PFromJSVal CanvasGradient where+  pFromJSVal = CanvasGradient+  {-# INLINE pFromJSVal #-}++instance ToJSVal CanvasGradient where+  toJSVal = return . unCanvasGradient+  {-# INLINE toJSVal #-}++instance FromJSVal CanvasGradient where+  fromJSVal v = fmap CanvasGradient <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CanvasGradient+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CanvasGradient where+  makeObject = makeObject . unCanvasGradient++instance IsGObject CanvasGradient where+  typeGType _ = gTypeCanvasGradient+  {-# INLINE typeGType #-}++gTypeCanvasGradient :: JSM GType+gTypeCanvasGradient = GType . Object <$> jsg "CanvasGradient"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CanvasPattern".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern Mozilla CanvasPattern documentation>+newtype CanvasPattern = CanvasPattern { unCanvasPattern :: JSVal }++instance PToJSVal CanvasPattern where+  pToJSVal = unCanvasPattern+  {-# INLINE pToJSVal #-}++instance PFromJSVal CanvasPattern where+  pFromJSVal = CanvasPattern+  {-# INLINE pFromJSVal #-}++instance ToJSVal CanvasPattern where+  toJSVal = return . unCanvasPattern+  {-# INLINE toJSVal #-}++instance FromJSVal CanvasPattern where+  fromJSVal v = fmap CanvasPattern <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CanvasPattern+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CanvasPattern where+  makeObject = makeObject . unCanvasPattern++instance IsGObject CanvasPattern where+  typeGType _ = gTypeCanvasPattern+  {-# INLINE typeGType #-}++gTypeCanvasPattern :: JSM GType+gTypeCanvasPattern = GType . Object <$> jsg "CanvasPattern"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CanvasProxy".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasProxy Mozilla CanvasProxy documentation>+newtype CanvasProxy = CanvasProxy { unCanvasProxy :: JSVal }++instance PToJSVal CanvasProxy where+  pToJSVal = unCanvasProxy+  {-# INLINE pToJSVal #-}++instance PFromJSVal CanvasProxy where+  pFromJSVal = CanvasProxy+  {-# INLINE pFromJSVal #-}++instance ToJSVal CanvasProxy where+  toJSVal = return . unCanvasProxy+  {-# INLINE toJSVal #-}++instance FromJSVal CanvasProxy where+  fromJSVal v = fmap CanvasProxy <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CanvasProxy+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CanvasProxy where+  makeObject = makeObject . unCanvasProxy++instance IsGObject CanvasProxy where+  typeGType _ = gTypeCanvasProxy+  {-# INLINE typeGType #-}++gTypeCanvasProxy :: JSM GType+gTypeCanvasProxy = GType . Object <$> jsg "CanvasProxy"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CanvasRenderingContext".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext Mozilla CanvasRenderingContext documentation>+newtype CanvasRenderingContext = CanvasRenderingContext { unCanvasRenderingContext :: JSVal }++instance PToJSVal CanvasRenderingContext where+  pToJSVal = unCanvasRenderingContext+  {-# INLINE pToJSVal #-}++instance PFromJSVal CanvasRenderingContext where+  pFromJSVal = CanvasRenderingContext+  {-# INLINE pFromJSVal #-}++instance ToJSVal CanvasRenderingContext where+  toJSVal = return . unCanvasRenderingContext+  {-# INLINE toJSVal #-}++instance FromJSVal CanvasRenderingContext where+  fromJSVal v = fmap CanvasRenderingContext <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CanvasRenderingContext+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CanvasRenderingContext where+  makeObject = makeObject . unCanvasRenderingContext++class IsGObject o => IsCanvasRenderingContext o+toCanvasRenderingContext :: IsCanvasRenderingContext o => o -> CanvasRenderingContext+toCanvasRenderingContext = CanvasRenderingContext . coerce++instance IsCanvasRenderingContext CanvasRenderingContext+instance IsGObject CanvasRenderingContext where+  typeGType _ = gTypeCanvasRenderingContext+  {-# INLINE typeGType #-}++gTypeCanvasRenderingContext :: JSM GType+gTypeCanvasRenderingContext = GType . Object <$> jsg "CanvasRenderingContext"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CanvasRenderingContext2D".+-- Base interface functions are in:+--+--     * "JSDOM.CanvasRenderingContext"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D Mozilla CanvasRenderingContext2D documentation>+newtype CanvasRenderingContext2D = CanvasRenderingContext2D { unCanvasRenderingContext2D :: JSVal }++instance PToJSVal CanvasRenderingContext2D where+  pToJSVal = unCanvasRenderingContext2D+  {-# INLINE pToJSVal #-}++instance PFromJSVal CanvasRenderingContext2D where+  pFromJSVal = CanvasRenderingContext2D+  {-# INLINE pFromJSVal #-}++instance ToJSVal CanvasRenderingContext2D where+  toJSVal = return . unCanvasRenderingContext2D+  {-# INLINE toJSVal #-}++instance FromJSVal CanvasRenderingContext2D where+  fromJSVal v = fmap CanvasRenderingContext2D <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CanvasRenderingContext2D+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CanvasRenderingContext2D where+  makeObject = makeObject . unCanvasRenderingContext2D++instance IsCanvasRenderingContext CanvasRenderingContext2D+instance IsGObject CanvasRenderingContext2D where+  typeGType _ = gTypeCanvasRenderingContext2D+  {-# INLINE typeGType #-}++gTypeCanvasRenderingContext2D :: JSM GType+gTypeCanvasRenderingContext2D = GType . Object <$> jsg "CanvasRenderingContext2D"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CapabilityRange".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CapabilityRange Mozilla CapabilityRange documentation>+newtype CapabilityRange = CapabilityRange { unCapabilityRange :: JSVal }++instance PToJSVal CapabilityRange where+  pToJSVal = unCapabilityRange+  {-# INLINE pToJSVal #-}++instance PFromJSVal CapabilityRange where+  pFromJSVal = CapabilityRange+  {-# INLINE pFromJSVal #-}++instance ToJSVal CapabilityRange where+  toJSVal = return . unCapabilityRange+  {-# INLINE toJSVal #-}++instance FromJSVal CapabilityRange where+  fromJSVal v = fmap CapabilityRange <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CapabilityRange+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CapabilityRange where+  makeObject = makeObject . unCapabilityRange++instance IsGObject CapabilityRange where+  typeGType _ = gTypeCapabilityRange+  {-# INLINE typeGType #-}++gTypeCapabilityRange :: JSM GType+gTypeCapabilityRange = GType . Object <$> jsg "CapabilityRange"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ChannelMergerNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode Mozilla ChannelMergerNode documentation>+newtype ChannelMergerNode = ChannelMergerNode { unChannelMergerNode :: JSVal }++instance PToJSVal ChannelMergerNode where+  pToJSVal = unChannelMergerNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal ChannelMergerNode where+  pFromJSVal = ChannelMergerNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal ChannelMergerNode where+  toJSVal = return . unChannelMergerNode+  {-# INLINE toJSVal #-}++instance FromJSVal ChannelMergerNode where+  fromJSVal v = fmap ChannelMergerNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ChannelMergerNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ChannelMergerNode where+  makeObject = makeObject . unChannelMergerNode++instance IsAudioNode ChannelMergerNode+instance IsEventTarget ChannelMergerNode+instance IsGObject ChannelMergerNode where+  typeGType _ = gTypeChannelMergerNode+  {-# INLINE typeGType #-}++gTypeChannelMergerNode :: JSM GType+gTypeChannelMergerNode = GType . Object <$> jsg "ChannelMergerNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ChannelSplitterNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode Mozilla ChannelSplitterNode documentation>+newtype ChannelSplitterNode = ChannelSplitterNode { unChannelSplitterNode :: JSVal }++instance PToJSVal ChannelSplitterNode where+  pToJSVal = unChannelSplitterNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal ChannelSplitterNode where+  pFromJSVal = ChannelSplitterNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal ChannelSplitterNode where+  toJSVal = return . unChannelSplitterNode+  {-# INLINE toJSVal #-}++instance FromJSVal ChannelSplitterNode where+  fromJSVal v = fmap ChannelSplitterNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ChannelSplitterNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ChannelSplitterNode where+  makeObject = makeObject . unChannelSplitterNode++instance IsAudioNode ChannelSplitterNode+instance IsEventTarget ChannelSplitterNode+instance IsGObject ChannelSplitterNode where+  typeGType _ = gTypeChannelSplitterNode+  {-# INLINE typeGType #-}++gTypeChannelSplitterNode :: JSM GType+gTypeChannelSplitterNode = GType . Object <$> jsg "ChannelSplitterNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CharacterData".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CharacterData Mozilla CharacterData documentation>+newtype CharacterData = CharacterData { unCharacterData :: JSVal }++instance PToJSVal CharacterData where+  pToJSVal = unCharacterData+  {-# INLINE pToJSVal #-}++instance PFromJSVal CharacterData where+  pFromJSVal = CharacterData+  {-# INLINE pFromJSVal #-}++instance ToJSVal CharacterData where+  toJSVal = return . unCharacterData+  {-# INLINE toJSVal #-}++instance FromJSVal CharacterData where+  fromJSVal v = fmap CharacterData <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CharacterData+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CharacterData where+  makeObject = makeObject . unCharacterData++class IsNode o => IsCharacterData o+toCharacterData :: IsCharacterData o => o -> CharacterData+toCharacterData = CharacterData . coerce++instance IsCharacterData CharacterData+instance IsNode CharacterData+instance IsEventTarget CharacterData+instance IsGObject CharacterData where+  typeGType _ = gTypeCharacterData+  {-# INLINE typeGType #-}++gTypeCharacterData :: JSM GType+gTypeCharacterData = GType . Object <$> jsg "CharacterData"+#else+type IsCharacterData o = CharacterDataClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ChildNode".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode Mozilla ChildNode documentation>+newtype ChildNode = ChildNode { unChildNode :: JSVal }++instance PToJSVal ChildNode where+  pToJSVal = unChildNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal ChildNode where+  pFromJSVal = ChildNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal ChildNode where+  toJSVal = return . unChildNode+  {-# INLINE toJSVal #-}++instance FromJSVal ChildNode where+  fromJSVal v = fmap ChildNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ChildNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ChildNode where+  makeObject = makeObject . unChildNode++instance IsGObject ChildNode where+  typeGType _ = gTypeChildNode+  {-# INLINE typeGType #-}++gTypeChildNode :: JSM GType+gTypeChildNode = GType . Object <$> jsg "ChildNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ClientRect".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect Mozilla ClientRect documentation>+newtype ClientRect = ClientRect { unClientRect :: JSVal }++instance PToJSVal ClientRect where+  pToJSVal = unClientRect+  {-# INLINE pToJSVal #-}++instance PFromJSVal ClientRect where+  pFromJSVal = ClientRect+  {-# INLINE pFromJSVal #-}++instance ToJSVal ClientRect where+  toJSVal = return . unClientRect+  {-# INLINE toJSVal #-}++instance FromJSVal ClientRect where+  fromJSVal v = fmap ClientRect <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ClientRect+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ClientRect where+  makeObject = makeObject . unClientRect++instance IsGObject ClientRect where+  typeGType _ = gTypeClientRect+  {-# INLINE typeGType #-}++gTypeClientRect :: JSM GType+gTypeClientRect = GType . Object <$> jsg "ClientRect"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ClientRectList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList Mozilla ClientRectList documentation>+newtype ClientRectList = ClientRectList { unClientRectList :: JSVal }++instance PToJSVal ClientRectList where+  pToJSVal = unClientRectList+  {-# INLINE pToJSVal #-}++instance PFromJSVal ClientRectList where+  pFromJSVal = ClientRectList+  {-# INLINE pFromJSVal #-}++instance ToJSVal ClientRectList where+  toJSVal = return . unClientRectList+  {-# INLINE toJSVal #-}++instance FromJSVal ClientRectList where+  fromJSVal v = fmap ClientRectList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ClientRectList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ClientRectList where+  makeObject = makeObject . unClientRectList++instance IsGObject ClientRectList where+  typeGType _ = gTypeClientRectList+  {-# INLINE typeGType #-}++gTypeClientRectList :: JSM GType+gTypeClientRectList = GType . Object <$> jsg "ClientRectList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CloseEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent Mozilla CloseEvent documentation>+newtype CloseEvent = CloseEvent { unCloseEvent :: JSVal }++instance PToJSVal CloseEvent where+  pToJSVal = unCloseEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal CloseEvent where+  pFromJSVal = CloseEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal CloseEvent where+  toJSVal = return . unCloseEvent+  {-# INLINE toJSVal #-}++instance FromJSVal CloseEvent where+  fromJSVal v = fmap CloseEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CloseEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CloseEvent where+  makeObject = makeObject . unCloseEvent++instance IsEvent CloseEvent+instance IsGObject CloseEvent where+  typeGType _ = gTypeCloseEvent+  {-# INLINE typeGType #-}++gTypeCloseEvent :: JSM GType+gTypeCloseEvent = GType . Object <$> jsg "CloseEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CommandLineAPIHost".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost Mozilla CommandLineAPIHost documentation>+newtype CommandLineAPIHost = CommandLineAPIHost { unCommandLineAPIHost :: JSVal }++instance PToJSVal CommandLineAPIHost where+  pToJSVal = unCommandLineAPIHost+  {-# INLINE pToJSVal #-}++instance PFromJSVal CommandLineAPIHost where+  pFromJSVal = CommandLineAPIHost+  {-# INLINE pFromJSVal #-}++instance ToJSVal CommandLineAPIHost where+  toJSVal = return . unCommandLineAPIHost+  {-# INLINE toJSVal #-}++instance FromJSVal CommandLineAPIHost where+  fromJSVal v = fmap CommandLineAPIHost <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CommandLineAPIHost+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CommandLineAPIHost where+  makeObject = makeObject . unCommandLineAPIHost++instance IsGObject CommandLineAPIHost where+  typeGType _ = gTypeCommandLineAPIHost+  {-# INLINE typeGType #-}++gTypeCommandLineAPIHost :: JSM GType+gTypeCommandLineAPIHost = GType . Object <$> jsg "CommandLineAPIHost"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Comment".+-- Base interface functions are in:+--+--     * "JSDOM.CharacterData"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Comment Mozilla Comment documentation>+newtype Comment = Comment { unComment :: JSVal }++instance PToJSVal Comment where+  pToJSVal = unComment+  {-# INLINE pToJSVal #-}++instance PFromJSVal Comment where+  pFromJSVal = Comment+  {-# INLINE pFromJSVal #-}++instance ToJSVal Comment where+  toJSVal = return . unComment+  {-# INLINE toJSVal #-}++instance FromJSVal Comment where+  fromJSVal v = fmap Comment <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Comment+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Comment where+  makeObject = makeObject . unComment++instance IsCharacterData Comment+instance IsNode Comment+instance IsEventTarget Comment+instance IsGObject Comment where+  typeGType _ = gTypeComment+  {-# INLINE typeGType #-}++gTypeComment :: JSM GType+gTypeComment = GType . Object <$> jsg "Comment"+#else+type IsComment o = CommentClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CompositionEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent Mozilla CompositionEvent documentation>+newtype CompositionEvent = CompositionEvent { unCompositionEvent :: JSVal }++instance PToJSVal CompositionEvent where+  pToJSVal = unCompositionEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal CompositionEvent where+  pFromJSVal = CompositionEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal CompositionEvent where+  toJSVal = return . unCompositionEvent+  {-# INLINE toJSVal #-}++instance FromJSVal CompositionEvent where+  fromJSVal v = fmap CompositionEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CompositionEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CompositionEvent where+  makeObject = makeObject . unCompositionEvent++instance IsUIEvent CompositionEvent+instance IsEvent CompositionEvent+instance IsGObject CompositionEvent where+  typeGType _ = gTypeCompositionEvent+  {-# INLINE typeGType #-}++gTypeCompositionEvent :: JSM GType+gTypeCompositionEvent = GType . Object <$> jsg "CompositionEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ConvolverNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode Mozilla ConvolverNode documentation>+newtype ConvolverNode = ConvolverNode { unConvolverNode :: JSVal }++instance PToJSVal ConvolverNode where+  pToJSVal = unConvolverNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal ConvolverNode where+  pFromJSVal = ConvolverNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal ConvolverNode where+  toJSVal = return . unConvolverNode+  {-# INLINE toJSVal #-}++instance FromJSVal ConvolverNode where+  fromJSVal v = fmap ConvolverNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ConvolverNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ConvolverNode where+  makeObject = makeObject . unConvolverNode++instance IsAudioNode ConvolverNode+instance IsEventTarget ConvolverNode+instance IsGObject ConvolverNode where+  typeGType _ = gTypeConvolverNode+  {-# INLINE typeGType #-}++gTypeConvolverNode :: JSM GType+gTypeConvolverNode = GType . Object <$> jsg "ConvolverNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Coordinates".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates Mozilla Coordinates documentation>+newtype Coordinates = Coordinates { unCoordinates :: JSVal }++instance PToJSVal Coordinates where+  pToJSVal = unCoordinates+  {-# INLINE pToJSVal #-}++instance PFromJSVal Coordinates where+  pFromJSVal = Coordinates+  {-# INLINE pFromJSVal #-}++instance ToJSVal Coordinates where+  toJSVal = return . unCoordinates+  {-# INLINE toJSVal #-}++instance FromJSVal Coordinates where+  fromJSVal v = fmap Coordinates <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Coordinates+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Coordinates where+  makeObject = makeObject . unCoordinates++instance IsGObject Coordinates where+  typeGType _ = gTypeCoordinates+  {-# INLINE typeGType #-}++gTypeCoordinates :: JSM GType+gTypeCoordinates = GType . Object <$> jsg "Coordinates"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Counter".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Counter Mozilla Counter documentation>+newtype Counter = Counter { unCounter :: JSVal }++instance PToJSVal Counter where+  pToJSVal = unCounter+  {-# INLINE pToJSVal #-}++instance PFromJSVal Counter where+  pFromJSVal = Counter+  {-# INLINE pFromJSVal #-}++instance ToJSVal Counter where+  toJSVal = return . unCounter+  {-# INLINE toJSVal #-}++instance FromJSVal Counter where+  fromJSVal v = fmap Counter <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Counter+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Counter where+  makeObject = makeObject . unCounter++instance IsGObject Counter where+  typeGType _ = gTypeCounter+  {-# INLINE typeGType #-}++gTypeCounter :: JSM GType+gTypeCounter = GType . Object <$> jsg "Counter"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Crypto".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Crypto Mozilla Crypto documentation>+newtype Crypto = Crypto { unCrypto :: JSVal }++instance PToJSVal Crypto where+  pToJSVal = unCrypto+  {-# INLINE pToJSVal #-}++instance PFromJSVal Crypto where+  pFromJSVal = Crypto+  {-# INLINE pFromJSVal #-}++instance ToJSVal Crypto where+  toJSVal = return . unCrypto+  {-# INLINE toJSVal #-}++instance FromJSVal Crypto where+  fromJSVal v = fmap Crypto <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Crypto+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Crypto where+  makeObject = makeObject . unCrypto++instance IsGObject Crypto where+  typeGType _ = gTypeCrypto+  {-# INLINE typeGType #-}++gTypeCrypto :: JSM GType+gTypeCrypto = GType . Object <$> jsg "Crypto"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CryptoKey".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey Mozilla CryptoKey documentation>+newtype CryptoKey = CryptoKey { unCryptoKey :: JSVal }++instance PToJSVal CryptoKey where+  pToJSVal = unCryptoKey+  {-# INLINE pToJSVal #-}++instance PFromJSVal CryptoKey where+  pFromJSVal = CryptoKey+  {-# INLINE pFromJSVal #-}++instance ToJSVal CryptoKey where+  toJSVal = return . unCryptoKey+  {-# INLINE toJSVal #-}++instance FromJSVal CryptoKey where+  fromJSVal v = fmap CryptoKey <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CryptoKey+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CryptoKey where+  makeObject = makeObject . unCryptoKey++instance IsGObject CryptoKey where+  typeGType _ = gTypeCryptoKey+  {-# INLINE typeGType #-}++gTypeCryptoKey :: JSM GType+gTypeCryptoKey = GType . Object <$> jsg "CryptoKey"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CryptoKeyPair".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair Mozilla CryptoKeyPair documentation>+newtype CryptoKeyPair = CryptoKeyPair { unCryptoKeyPair :: JSVal }++instance PToJSVal CryptoKeyPair where+  pToJSVal = unCryptoKeyPair+  {-# INLINE pToJSVal #-}++instance PFromJSVal CryptoKeyPair where+  pFromJSVal = CryptoKeyPair+  {-# INLINE pFromJSVal #-}++instance ToJSVal CryptoKeyPair where+  toJSVal = return . unCryptoKeyPair+  {-# INLINE toJSVal #-}++instance FromJSVal CryptoKeyPair where+  fromJSVal v = fmap CryptoKeyPair <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CryptoKeyPair+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CryptoKeyPair where+  makeObject = makeObject . unCryptoKeyPair++instance IsGObject CryptoKeyPair where+  typeGType _ = gTypeCryptoKeyPair+  {-# INLINE typeGType #-}++gTypeCryptoKeyPair :: JSM GType+gTypeCryptoKeyPair = GType . Object <$> jsg "CryptoKeyPair"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.CustomEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent Mozilla CustomEvent documentation>+newtype CustomEvent = CustomEvent { unCustomEvent :: JSVal }++instance PToJSVal CustomEvent where+  pToJSVal = unCustomEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal CustomEvent where+  pFromJSVal = CustomEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal CustomEvent where+  toJSVal = return . unCustomEvent+  {-# INLINE toJSVal #-}++instance FromJSVal CustomEvent where+  fromJSVal v = fmap CustomEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . CustomEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject CustomEvent where+  makeObject = makeObject . unCustomEvent++instance IsEvent CustomEvent+instance IsGObject CustomEvent where+  typeGType _ = gTypeCustomEvent+  {-# INLINE typeGType #-}++gTypeCustomEvent :: JSM GType+gTypeCustomEvent = GType . Object <$> jsg "CustomEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMError".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMError Mozilla DOMError documentation>+newtype DOMError = DOMError { unDOMError :: JSVal }++instance PToJSVal DOMError where+  pToJSVal = unDOMError+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMError where+  pFromJSVal = DOMError+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMError where+  toJSVal = return . unDOMError+  {-# INLINE toJSVal #-}++instance FromJSVal DOMError where+  fromJSVal v = fmap DOMError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMError where+  makeObject = makeObject . unDOMError++class IsGObject o => IsDOMError o+toDOMError :: IsDOMError o => o -> DOMError+toDOMError = DOMError . coerce++instance IsDOMError DOMError+instance IsGObject DOMError where+  typeGType _ = gTypeDOMError+  {-# INLINE typeGType #-}++gTypeDOMError :: JSM GType+gTypeDOMError = GType . Object <$> jsg "DOMError"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMImplementation".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation Mozilla DOMImplementation documentation>+newtype DOMImplementation = DOMImplementation { unDOMImplementation :: JSVal }++instance PToJSVal DOMImplementation where+  pToJSVal = unDOMImplementation+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMImplementation where+  pFromJSVal = DOMImplementation+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMImplementation where+  toJSVal = return . unDOMImplementation+  {-# INLINE toJSVal #-}++instance FromJSVal DOMImplementation where+  fromJSVal v = fmap DOMImplementation <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMImplementation+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMImplementation where+  makeObject = makeObject . unDOMImplementation++instance IsGObject DOMImplementation where+  typeGType _ = gTypeDOMImplementation+  {-# INLINE typeGType #-}++gTypeDOMImplementation :: JSM GType+gTypeDOMImplementation = GType . Object <$> jsg "DOMImplementation"+#else+type IsDOMImplementation o = DOMImplementationClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMNamedFlowCollection".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection Mozilla WebKitNamedFlowCollection documentation>+newtype DOMNamedFlowCollection = DOMNamedFlowCollection { unDOMNamedFlowCollection :: JSVal }++instance PToJSVal DOMNamedFlowCollection where+  pToJSVal = unDOMNamedFlowCollection+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMNamedFlowCollection where+  pFromJSVal = DOMNamedFlowCollection+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMNamedFlowCollection where+  toJSVal = return . unDOMNamedFlowCollection+  {-# INLINE toJSVal #-}++instance FromJSVal DOMNamedFlowCollection where+  fromJSVal v = fmap DOMNamedFlowCollection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMNamedFlowCollection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMNamedFlowCollection where+  makeObject = makeObject . unDOMNamedFlowCollection++instance IsGObject DOMNamedFlowCollection where+  typeGType _ = gTypeDOMNamedFlowCollection+  {-# INLINE typeGType #-}++gTypeDOMNamedFlowCollection :: JSM GType+gTypeDOMNamedFlowCollection = GType . Object <$> jsg "WebKitNamedFlowCollection"+#else+#ifndef USE_OLD_WEBKIT+type IsDOMNamedFlowCollection o = DOMNamedFlowCollectionClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMParser".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser Mozilla DOMParser documentation>+newtype DOMParser = DOMParser { unDOMParser :: JSVal }++instance PToJSVal DOMParser where+  pToJSVal = unDOMParser+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMParser where+  pFromJSVal = DOMParser+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMParser where+  toJSVal = return . unDOMParser+  {-# INLINE toJSVal #-}++instance FromJSVal DOMParser where+  fromJSVal v = fmap DOMParser <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMParser+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMParser where+  makeObject = makeObject . unDOMParser++instance IsGObject DOMParser where+  typeGType _ = gTypeDOMParser+  {-# INLINE typeGType #-}++gTypeDOMParser :: JSM GType+gTypeDOMParser = GType . Object <$> jsg "DOMParser"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMSettableTokenList".+-- Base interface functions are in:+--+--     * "JSDOM.DOMTokenList"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList Mozilla DOMSettableTokenList documentation>+newtype DOMSettableTokenList = DOMSettableTokenList { unDOMSettableTokenList :: JSVal }++instance PToJSVal DOMSettableTokenList where+  pToJSVal = unDOMSettableTokenList+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMSettableTokenList where+  pFromJSVal = DOMSettableTokenList+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMSettableTokenList where+  toJSVal = return . unDOMSettableTokenList+  {-# INLINE toJSVal #-}++instance FromJSVal DOMSettableTokenList where+  fromJSVal v = fmap DOMSettableTokenList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMSettableTokenList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMSettableTokenList where+  makeObject = makeObject . unDOMSettableTokenList++instance IsDOMTokenList DOMSettableTokenList+instance IsGObject DOMSettableTokenList where+  typeGType _ = gTypeDOMSettableTokenList+  {-# INLINE typeGType #-}++gTypeDOMSettableTokenList :: JSM GType+gTypeDOMSettableTokenList = GType . Object <$> jsg "DOMSettableTokenList"+#else+type IsDOMSettableTokenList o = DOMSettableTokenListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMStringList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList Mozilla DOMStringList documentation>+newtype DOMStringList = DOMStringList { unDOMStringList :: JSVal }++instance PToJSVal DOMStringList where+  pToJSVal = unDOMStringList+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMStringList where+  pFromJSVal = DOMStringList+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMStringList where+  toJSVal = return . unDOMStringList+  {-# INLINE toJSVal #-}++instance FromJSVal DOMStringList where+  fromJSVal v = fmap DOMStringList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMStringList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMStringList where+  makeObject = makeObject . unDOMStringList++instance IsGObject DOMStringList where+  typeGType _ = gTypeDOMStringList+  {-# INLINE typeGType #-}++gTypeDOMStringList :: JSM GType+gTypeDOMStringList = GType . Object <$> jsg "DOMStringList"+#else+type IsDOMStringList o = DOMStringListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMStringMap".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringMap Mozilla DOMStringMap documentation>+newtype DOMStringMap = DOMStringMap { unDOMStringMap :: JSVal }++instance PToJSVal DOMStringMap where+  pToJSVal = unDOMStringMap+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMStringMap where+  pFromJSVal = DOMStringMap+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMStringMap where+  toJSVal = return . unDOMStringMap+  {-# INLINE toJSVal #-}++instance FromJSVal DOMStringMap where+  fromJSVal v = fmap DOMStringMap <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMStringMap+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMStringMap where+  makeObject = makeObject . unDOMStringMap++instance IsGObject DOMStringMap where+  typeGType _ = gTypeDOMStringMap+  {-# INLINE typeGType #-}++gTypeDOMStringMap :: JSM GType+gTypeDOMStringMap = GType . Object <$> jsg "DOMStringMap"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DOMTokenList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList Mozilla DOMTokenList documentation>+newtype DOMTokenList = DOMTokenList { unDOMTokenList :: JSVal }++instance PToJSVal DOMTokenList where+  pToJSVal = unDOMTokenList+  {-# INLINE pToJSVal #-}++instance PFromJSVal DOMTokenList where+  pFromJSVal = DOMTokenList+  {-# INLINE pFromJSVal #-}++instance ToJSVal DOMTokenList where+  toJSVal = return . unDOMTokenList+  {-# INLINE toJSVal #-}++instance FromJSVal DOMTokenList where+  fromJSVal v = fmap DOMTokenList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DOMTokenList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DOMTokenList where+  makeObject = makeObject . unDOMTokenList++class IsGObject o => IsDOMTokenList o+toDOMTokenList :: IsDOMTokenList o => o -> DOMTokenList+toDOMTokenList = DOMTokenList . coerce++instance IsDOMTokenList DOMTokenList+instance IsGObject DOMTokenList where+  typeGType _ = gTypeDOMTokenList+  {-# INLINE typeGType #-}++gTypeDOMTokenList :: JSM GType+gTypeDOMTokenList = GType . Object <$> jsg "DOMTokenList"+#else+type IsDOMTokenList o = DOMTokenListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DataCue".+-- Base interface functions are in:+--+--     * "JSDOM.TextTrackCue"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue Mozilla WebKitDataCue documentation>+newtype DataCue = DataCue { unDataCue :: JSVal }++instance PToJSVal DataCue where+  pToJSVal = unDataCue+  {-# INLINE pToJSVal #-}++instance PFromJSVal DataCue where+  pFromJSVal = DataCue+  {-# INLINE pFromJSVal #-}++instance ToJSVal DataCue where+  toJSVal = return . unDataCue+  {-# INLINE toJSVal #-}++instance FromJSVal DataCue where+  fromJSVal v = fmap DataCue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DataCue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DataCue where+  makeObject = makeObject . unDataCue++instance IsTextTrackCue DataCue+instance IsEventTarget DataCue+instance IsGObject DataCue where+  typeGType _ = gTypeDataCue+  {-# INLINE typeGType #-}++gTypeDataCue :: JSM GType+gTypeDataCue = GType . Object <$> jsg "WebKitDataCue"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DataTransfer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer Mozilla DataTransfer documentation>+newtype DataTransfer = DataTransfer { unDataTransfer :: JSVal }++instance PToJSVal DataTransfer where+  pToJSVal = unDataTransfer+  {-# INLINE pToJSVal #-}++instance PFromJSVal DataTransfer where+  pFromJSVal = DataTransfer+  {-# INLINE pFromJSVal #-}++instance ToJSVal DataTransfer where+  toJSVal = return . unDataTransfer+  {-# INLINE toJSVal #-}++instance FromJSVal DataTransfer where+  fromJSVal v = fmap DataTransfer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DataTransfer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DataTransfer where+  makeObject = makeObject . unDataTransfer++instance IsGObject DataTransfer where+  typeGType _ = gTypeDataTransfer+  {-# INLINE typeGType #-}++gTypeDataTransfer :: JSM GType+gTypeDataTransfer = GType . Object <$> jsg "DataTransfer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DataTransferItem".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem Mozilla DataTransferItem documentation>+newtype DataTransferItem = DataTransferItem { unDataTransferItem :: JSVal }++instance PToJSVal DataTransferItem where+  pToJSVal = unDataTransferItem+  {-# INLINE pToJSVal #-}++instance PFromJSVal DataTransferItem where+  pFromJSVal = DataTransferItem+  {-# INLINE pFromJSVal #-}++instance ToJSVal DataTransferItem where+  toJSVal = return . unDataTransferItem+  {-# INLINE toJSVal #-}++instance FromJSVal DataTransferItem where+  fromJSVal v = fmap DataTransferItem <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DataTransferItem+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DataTransferItem where+  makeObject = makeObject . unDataTransferItem++instance IsGObject DataTransferItem where+  typeGType _ = gTypeDataTransferItem+  {-# INLINE typeGType #-}++gTypeDataTransferItem :: JSM GType+gTypeDataTransferItem = GType . Object <$> jsg "DataTransferItem"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DataTransferItemList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList Mozilla DataTransferItemList documentation>+newtype DataTransferItemList = DataTransferItemList { unDataTransferItemList :: JSVal }++instance PToJSVal DataTransferItemList where+  pToJSVal = unDataTransferItemList+  {-# INLINE pToJSVal #-}++instance PFromJSVal DataTransferItemList where+  pFromJSVal = DataTransferItemList+  {-# INLINE pFromJSVal #-}++instance ToJSVal DataTransferItemList where+  toJSVal = return . unDataTransferItemList+  {-# INLINE toJSVal #-}++instance FromJSVal DataTransferItemList where+  fromJSVal v = fmap DataTransferItemList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DataTransferItemList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DataTransferItemList where+  makeObject = makeObject . unDataTransferItemList++instance IsGObject DataTransferItemList where+  typeGType _ = gTypeDataTransferItemList+  {-# INLINE typeGType #-}++gTypeDataTransferItemList :: JSM GType+gTypeDataTransferItemList = GType . Object <$> jsg "DataTransferItemList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Database".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Database Mozilla Database documentation>+newtype Database = Database { unDatabase :: JSVal }++instance PToJSVal Database where+  pToJSVal = unDatabase+  {-# INLINE pToJSVal #-}++instance PFromJSVal Database where+  pFromJSVal = Database+  {-# INLINE pFromJSVal #-}++instance ToJSVal Database where+  toJSVal = return . unDatabase+  {-# INLINE toJSVal #-}++instance FromJSVal Database where+  fromJSVal v = fmap Database <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Database+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Database where+  makeObject = makeObject . unDatabase++instance IsGObject Database where+  typeGType _ = gTypeDatabase+  {-# INLINE typeGType #-}++gTypeDatabase :: JSM GType+gTypeDatabase = GType . Object <$> jsg "Database"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DedicatedWorkerGlobalScope".+-- Base interface functions are in:+--+--     * "JSDOM.WorkerGlobalScope"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope Mozilla DedicatedWorkerGlobalScope documentation>+newtype DedicatedWorkerGlobalScope = DedicatedWorkerGlobalScope { unDedicatedWorkerGlobalScope :: JSVal }++instance PToJSVal DedicatedWorkerGlobalScope where+  pToJSVal = unDedicatedWorkerGlobalScope+  {-# INLINE pToJSVal #-}++instance PFromJSVal DedicatedWorkerGlobalScope where+  pFromJSVal = DedicatedWorkerGlobalScope+  {-# INLINE pFromJSVal #-}++instance ToJSVal DedicatedWorkerGlobalScope where+  toJSVal = return . unDedicatedWorkerGlobalScope+  {-# INLINE toJSVal #-}++instance FromJSVal DedicatedWorkerGlobalScope where+  fromJSVal v = fmap DedicatedWorkerGlobalScope <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DedicatedWorkerGlobalScope+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DedicatedWorkerGlobalScope where+  makeObject = makeObject . unDedicatedWorkerGlobalScope++instance IsWorkerGlobalScope DedicatedWorkerGlobalScope+instance IsEventTarget DedicatedWorkerGlobalScope+instance IsGObject DedicatedWorkerGlobalScope where+  typeGType _ = gTypeDedicatedWorkerGlobalScope+  {-# INLINE typeGType #-}++gTypeDedicatedWorkerGlobalScope :: JSM GType+gTypeDedicatedWorkerGlobalScope = GType . Object <$> jsg "DedicatedWorkerGlobalScope"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DelayNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode Mozilla DelayNode documentation>+newtype DelayNode = DelayNode { unDelayNode :: JSVal }++instance PToJSVal DelayNode where+  pToJSVal = unDelayNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal DelayNode where+  pFromJSVal = DelayNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal DelayNode where+  toJSVal = return . unDelayNode+  {-# INLINE toJSVal #-}++instance FromJSVal DelayNode where+  fromJSVal v = fmap DelayNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DelayNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DelayNode where+  makeObject = makeObject . unDelayNode++instance IsAudioNode DelayNode+instance IsEventTarget DelayNode+instance IsGObject DelayNode where+  typeGType _ = gTypeDelayNode+  {-# INLINE typeGType #-}++gTypeDelayNode :: JSM GType+gTypeDelayNode = GType . Object <$> jsg "DelayNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DeviceMotionEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent Mozilla DeviceMotionEvent documentation>+newtype DeviceMotionEvent = DeviceMotionEvent { unDeviceMotionEvent :: JSVal }++instance PToJSVal DeviceMotionEvent where+  pToJSVal = unDeviceMotionEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal DeviceMotionEvent where+  pFromJSVal = DeviceMotionEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal DeviceMotionEvent where+  toJSVal = return . unDeviceMotionEvent+  {-# INLINE toJSVal #-}++instance FromJSVal DeviceMotionEvent where+  fromJSVal v = fmap DeviceMotionEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DeviceMotionEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DeviceMotionEvent where+  makeObject = makeObject . unDeviceMotionEvent++instance IsEvent DeviceMotionEvent+instance IsGObject DeviceMotionEvent where+  typeGType _ = gTypeDeviceMotionEvent+  {-# INLINE typeGType #-}++gTypeDeviceMotionEvent :: JSM GType+gTypeDeviceMotionEvent = GType . Object <$> jsg "DeviceMotionEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DeviceOrientationEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent Mozilla DeviceOrientationEvent documentation>+newtype DeviceOrientationEvent = DeviceOrientationEvent { unDeviceOrientationEvent :: JSVal }++instance PToJSVal DeviceOrientationEvent where+  pToJSVal = unDeviceOrientationEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal DeviceOrientationEvent where+  pFromJSVal = DeviceOrientationEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal DeviceOrientationEvent where+  toJSVal = return . unDeviceOrientationEvent+  {-# INLINE toJSVal #-}++instance FromJSVal DeviceOrientationEvent where+  fromJSVal v = fmap DeviceOrientationEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DeviceOrientationEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DeviceOrientationEvent where+  makeObject = makeObject . unDeviceOrientationEvent++instance IsEvent DeviceOrientationEvent+instance IsGObject DeviceOrientationEvent where+  typeGType _ = gTypeDeviceOrientationEvent+  {-# INLINE typeGType #-}++gTypeDeviceOrientationEvent :: JSM GType+gTypeDeviceOrientationEvent = GType . Object <$> jsg "DeviceOrientationEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DeviceProximityEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent Mozilla DeviceProximityEvent documentation>+newtype DeviceProximityEvent = DeviceProximityEvent { unDeviceProximityEvent :: JSVal }++instance PToJSVal DeviceProximityEvent where+  pToJSVal = unDeviceProximityEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal DeviceProximityEvent where+  pFromJSVal = DeviceProximityEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal DeviceProximityEvent where+  toJSVal = return . unDeviceProximityEvent+  {-# INLINE toJSVal #-}++instance FromJSVal DeviceProximityEvent where+  fromJSVal v = fmap DeviceProximityEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DeviceProximityEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DeviceProximityEvent where+  makeObject = makeObject . unDeviceProximityEvent++instance IsEvent DeviceProximityEvent+instance IsGObject DeviceProximityEvent where+  typeGType _ = gTypeDeviceProximityEvent+  {-# INLINE typeGType #-}++gTypeDeviceProximityEvent :: JSM GType+gTypeDeviceProximityEvent = GType . Object <$> jsg "DeviceProximityEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Document".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Document Mozilla Document documentation>+newtype Document = Document { unDocument :: JSVal }++instance PToJSVal Document where+  pToJSVal = unDocument+  {-# INLINE pToJSVal #-}++instance PFromJSVal Document where+  pFromJSVal = Document+  {-# INLINE pFromJSVal #-}++instance ToJSVal Document where+  toJSVal = return . unDocument+  {-# INLINE toJSVal #-}++instance FromJSVal Document where+  fromJSVal v = fmap Document <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Document+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Document where+  makeObject = makeObject . unDocument++class IsNode o => IsDocument o+toDocument :: IsDocument o => o -> Document+toDocument = Document . coerce++instance IsDocument Document+instance IsNode Document+instance IsEventTarget Document+instance IsGObject Document where+  typeGType _ = gTypeDocument+  {-# INLINE typeGType #-}++gTypeDocument :: JSM GType+gTypeDocument = GType . Object <$> jsg "Document"+#else+type IsDocument o = DocumentClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DocumentFragment".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment Mozilla DocumentFragment documentation>+newtype DocumentFragment = DocumentFragment { unDocumentFragment :: JSVal }++instance PToJSVal DocumentFragment where+  pToJSVal = unDocumentFragment+  {-# INLINE pToJSVal #-}++instance PFromJSVal DocumentFragment where+  pFromJSVal = DocumentFragment+  {-# INLINE pFromJSVal #-}++instance ToJSVal DocumentFragment where+  toJSVal = return . unDocumentFragment+  {-# INLINE toJSVal #-}++instance FromJSVal DocumentFragment where+  fromJSVal v = fmap DocumentFragment <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DocumentFragment+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DocumentFragment where+  makeObject = makeObject . unDocumentFragment++instance IsNode DocumentFragment+instance IsEventTarget DocumentFragment+instance IsGObject DocumentFragment where+  typeGType _ = gTypeDocumentFragment+  {-# INLINE typeGType #-}++gTypeDocumentFragment :: JSM GType+gTypeDocumentFragment = GType . Object <$> jsg "DocumentFragment"+#else+type IsDocumentFragment o = DocumentFragmentClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DocumentType".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType Mozilla DocumentType documentation>+newtype DocumentType = DocumentType { unDocumentType :: JSVal }++instance PToJSVal DocumentType where+  pToJSVal = unDocumentType+  {-# INLINE pToJSVal #-}++instance PFromJSVal DocumentType where+  pFromJSVal = DocumentType+  {-# INLINE pFromJSVal #-}++instance ToJSVal DocumentType where+  toJSVal = return . unDocumentType+  {-# INLINE toJSVal #-}++instance FromJSVal DocumentType where+  fromJSVal v = fmap DocumentType <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DocumentType+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DocumentType where+  makeObject = makeObject . unDocumentType++instance IsNode DocumentType+instance IsEventTarget DocumentType+instance IsGObject DocumentType where+  typeGType _ = gTypeDocumentType+  {-# INLINE typeGType #-}++gTypeDocumentType :: JSM GType+gTypeDocumentType = GType . Object <$> jsg "DocumentType"+#else+type IsDocumentType o = DocumentTypeClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.DynamicsCompressorNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode Mozilla DynamicsCompressorNode documentation>+newtype DynamicsCompressorNode = DynamicsCompressorNode { unDynamicsCompressorNode :: JSVal }++instance PToJSVal DynamicsCompressorNode where+  pToJSVal = unDynamicsCompressorNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal DynamicsCompressorNode where+  pFromJSVal = DynamicsCompressorNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal DynamicsCompressorNode where+  toJSVal = return . unDynamicsCompressorNode+  {-# INLINE toJSVal #-}++instance FromJSVal DynamicsCompressorNode where+  fromJSVal v = fmap DynamicsCompressorNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . DynamicsCompressorNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject DynamicsCompressorNode where+  makeObject = makeObject . unDynamicsCompressorNode++instance IsAudioNode DynamicsCompressorNode+instance IsEventTarget DynamicsCompressorNode+instance IsGObject DynamicsCompressorNode where+  typeGType _ = gTypeDynamicsCompressorNode+  {-# INLINE typeGType #-}++gTypeDynamicsCompressorNode :: JSM GType+gTypeDynamicsCompressorNode = GType . Object <$> jsg "DynamicsCompressorNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EXTBlendMinMax".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTBlendMinMax Mozilla EXTBlendMinMax documentation>+newtype EXTBlendMinMax = EXTBlendMinMax { unEXTBlendMinMax :: JSVal }++instance PToJSVal EXTBlendMinMax where+  pToJSVal = unEXTBlendMinMax+  {-# INLINE pToJSVal #-}++instance PFromJSVal EXTBlendMinMax where+  pFromJSVal = EXTBlendMinMax+  {-# INLINE pFromJSVal #-}++instance ToJSVal EXTBlendMinMax where+  toJSVal = return . unEXTBlendMinMax+  {-# INLINE toJSVal #-}++instance FromJSVal EXTBlendMinMax where+  fromJSVal v = fmap EXTBlendMinMax <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EXTBlendMinMax+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EXTBlendMinMax where+  makeObject = makeObject . unEXTBlendMinMax++instance IsGObject EXTBlendMinMax where+  typeGType _ = gTypeEXTBlendMinMax+  {-# INLINE typeGType #-}++gTypeEXTBlendMinMax :: JSM GType+gTypeEXTBlendMinMax = GType . Object <$> jsg "EXTBlendMinMax"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EXTFragDepth".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTFragDepth Mozilla EXTFragDepth documentation>+newtype EXTFragDepth = EXTFragDepth { unEXTFragDepth :: JSVal }++instance PToJSVal EXTFragDepth where+  pToJSVal = unEXTFragDepth+  {-# INLINE pToJSVal #-}++instance PFromJSVal EXTFragDepth where+  pFromJSVal = EXTFragDepth+  {-# INLINE pFromJSVal #-}++instance ToJSVal EXTFragDepth where+  toJSVal = return . unEXTFragDepth+  {-# INLINE toJSVal #-}++instance FromJSVal EXTFragDepth where+  fromJSVal v = fmap EXTFragDepth <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EXTFragDepth+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EXTFragDepth where+  makeObject = makeObject . unEXTFragDepth++instance IsGObject EXTFragDepth where+  typeGType _ = gTypeEXTFragDepth+  {-# INLINE typeGType #-}++gTypeEXTFragDepth :: JSM GType+gTypeEXTFragDepth = GType . Object <$> jsg "EXTFragDepth"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EXTShaderTextureLOD".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTShaderTextureLOD Mozilla EXTShaderTextureLOD documentation>+newtype EXTShaderTextureLOD = EXTShaderTextureLOD { unEXTShaderTextureLOD :: JSVal }++instance PToJSVal EXTShaderTextureLOD where+  pToJSVal = unEXTShaderTextureLOD+  {-# INLINE pToJSVal #-}++instance PFromJSVal EXTShaderTextureLOD where+  pFromJSVal = EXTShaderTextureLOD+  {-# INLINE pFromJSVal #-}++instance ToJSVal EXTShaderTextureLOD where+  toJSVal = return . unEXTShaderTextureLOD+  {-# INLINE toJSVal #-}++instance FromJSVal EXTShaderTextureLOD where+  fromJSVal v = fmap EXTShaderTextureLOD <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EXTShaderTextureLOD+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EXTShaderTextureLOD where+  makeObject = makeObject . unEXTShaderTextureLOD++instance IsGObject EXTShaderTextureLOD where+  typeGType _ = gTypeEXTShaderTextureLOD+  {-# INLINE typeGType #-}++gTypeEXTShaderTextureLOD :: JSM GType+gTypeEXTShaderTextureLOD = GType . Object <$> jsg "EXTShaderTextureLOD"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EXTTextureFilterAnisotropic".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTTextureFilterAnisotropic Mozilla EXTTextureFilterAnisotropic documentation>+newtype EXTTextureFilterAnisotropic = EXTTextureFilterAnisotropic { unEXTTextureFilterAnisotropic :: JSVal }++instance PToJSVal EXTTextureFilterAnisotropic where+  pToJSVal = unEXTTextureFilterAnisotropic+  {-# INLINE pToJSVal #-}++instance PFromJSVal EXTTextureFilterAnisotropic where+  pFromJSVal = EXTTextureFilterAnisotropic+  {-# INLINE pFromJSVal #-}++instance ToJSVal EXTTextureFilterAnisotropic where+  toJSVal = return . unEXTTextureFilterAnisotropic+  {-# INLINE toJSVal #-}++instance FromJSVal EXTTextureFilterAnisotropic where+  fromJSVal v = fmap EXTTextureFilterAnisotropic <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EXTTextureFilterAnisotropic+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EXTTextureFilterAnisotropic where+  makeObject = makeObject . unEXTTextureFilterAnisotropic++instance IsGObject EXTTextureFilterAnisotropic where+  typeGType _ = gTypeEXTTextureFilterAnisotropic+  {-# INLINE typeGType #-}++gTypeEXTTextureFilterAnisotropic :: JSM GType+gTypeEXTTextureFilterAnisotropic = GType . Object <$> jsg "EXTTextureFilterAnisotropic"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EXTsRGB".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTsRGB Mozilla EXTsRGB documentation>+newtype EXTsRGB = EXTsRGB { unEXTsRGB :: JSVal }++instance PToJSVal EXTsRGB where+  pToJSVal = unEXTsRGB+  {-# INLINE pToJSVal #-}++instance PFromJSVal EXTsRGB where+  pFromJSVal = EXTsRGB+  {-# INLINE pFromJSVal #-}++instance ToJSVal EXTsRGB where+  toJSVal = return . unEXTsRGB+  {-# INLINE toJSVal #-}++instance FromJSVal EXTsRGB where+  fromJSVal v = fmap EXTsRGB <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EXTsRGB+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EXTsRGB where+  makeObject = makeObject . unEXTsRGB++instance IsGObject EXTsRGB where+  typeGType _ = gTypeEXTsRGB+  {-# INLINE typeGType #-}++gTypeEXTsRGB :: JSM GType+gTypeEXTsRGB = GType . Object <$> jsg "EXTsRGB"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Element".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Element Mozilla Element documentation>+newtype Element = Element { unElement :: JSVal }++instance PToJSVal Element where+  pToJSVal = unElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal Element where+  pFromJSVal = Element+  {-# INLINE pFromJSVal #-}++instance ToJSVal Element where+  toJSVal = return . unElement+  {-# INLINE toJSVal #-}++instance FromJSVal Element where+  fromJSVal v = fmap Element <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Element+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Element where+  makeObject = makeObject . unElement++class IsNode o => IsElement o+toElement :: IsElement o => o -> Element+toElement = Element . coerce++instance IsElement Element+instance IsNode Element+instance IsEventTarget Element+instance IsGObject Element where+  typeGType _ = gTypeElement+  {-# INLINE typeGType #-}++gTypeElement :: JSM GType+gTypeElement = GType . Object <$> jsg "Element"+#else+type IsElement o = ElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Entity".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Entity Mozilla Entity documentation>+newtype Entity = Entity { unEntity :: JSVal }++instance PToJSVal Entity where+  pToJSVal = unEntity+  {-# INLINE pToJSVal #-}++instance PFromJSVal Entity where+  pFromJSVal = Entity+  {-# INLINE pFromJSVal #-}++instance ToJSVal Entity where+  toJSVal = return . unEntity+  {-# INLINE toJSVal #-}++instance FromJSVal Entity where+  fromJSVal v = fmap Entity <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Entity+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Entity where+  makeObject = makeObject . unEntity++instance IsNode Entity+instance IsEventTarget Entity+instance IsGObject Entity where+  typeGType _ = gTypeEntity+  {-# INLINE typeGType #-}++gTypeEntity :: JSM GType+gTypeEntity = GType . Object <$> jsg "Entity"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EntityReference".+-- Base interface functions are in:+--+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EntityReference Mozilla EntityReference documentation>+newtype EntityReference = EntityReference { unEntityReference :: JSVal }++instance PToJSVal EntityReference where+  pToJSVal = unEntityReference+  {-# INLINE pToJSVal #-}++instance PFromJSVal EntityReference where+  pFromJSVal = EntityReference+  {-# INLINE pFromJSVal #-}++instance ToJSVal EntityReference where+  toJSVal = return . unEntityReference+  {-# INLINE toJSVal #-}++instance FromJSVal EntityReference where+  fromJSVal v = fmap EntityReference <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EntityReference+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EntityReference where+  makeObject = makeObject . unEntityReference++instance IsNode EntityReference+instance IsEventTarget EntityReference+instance IsGObject EntityReference where+  typeGType _ = gTypeEntityReference+  {-# INLINE typeGType #-}++gTypeEntityReference :: JSM GType+gTypeEntityReference = GType . Object <$> jsg "EntityReference"+#else+type IsEntityReference o = EntityReferenceClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ErrorEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent Mozilla ErrorEvent documentation>+newtype ErrorEvent = ErrorEvent { unErrorEvent :: JSVal }++instance PToJSVal ErrorEvent where+  pToJSVal = unErrorEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal ErrorEvent where+  pFromJSVal = ErrorEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal ErrorEvent where+  toJSVal = return . unErrorEvent+  {-# INLINE toJSVal #-}++instance FromJSVal ErrorEvent where+  fromJSVal v = fmap ErrorEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ErrorEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ErrorEvent where+  makeObject = makeObject . unErrorEvent++instance IsEvent ErrorEvent+instance IsGObject ErrorEvent where+  typeGType _ = gTypeErrorEvent+  {-# INLINE typeGType #-}++gTypeErrorEvent :: JSM GType+gTypeErrorEvent = GType . Object <$> jsg "ErrorEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Event".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Event Mozilla Event documentation>+newtype Event = Event { unEvent :: JSVal }++instance PToJSVal Event where+  pToJSVal = unEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal Event where+  pFromJSVal = Event+  {-# INLINE pFromJSVal #-}++instance ToJSVal Event where+  toJSVal = return . unEvent+  {-# INLINE toJSVal #-}++instance FromJSVal Event where+  fromJSVal v = fmap Event <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Event+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Event where+  makeObject = makeObject . unEvent++class IsGObject o => IsEvent o+toEvent :: IsEvent o => o -> Event+toEvent = Event . coerce++instance IsEvent Event+instance IsGObject Event where+  typeGType _ = gTypeEvent+  {-# INLINE typeGType #-}++gTypeEvent :: JSM GType+gTypeEvent = GType . Object <$> jsg "Event"+#else+type IsEvent o = EventClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EventListener".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventListener Mozilla EventListener documentation>+newtype EventListener = EventListener { unEventListener :: JSVal }++instance PToJSVal EventListener where+  pToJSVal = unEventListener+  {-# INLINE pToJSVal #-}++instance PFromJSVal EventListener where+  pFromJSVal = EventListener+  {-# INLINE pFromJSVal #-}++instance ToJSVal EventListener where+  toJSVal = return . unEventListener+  {-# INLINE toJSVal #-}++instance FromJSVal EventListener where+  fromJSVal v = fmap EventListener <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EventListener+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EventListener where+  makeObject = makeObject . unEventListener++instance IsGObject EventListener where+  typeGType _ = gTypeEventListener+  {-# INLINE typeGType #-}++gTypeEventListener :: JSM GType+gTypeEventListener = GType . Object <$> jsg "EventListener"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EventSource".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventSource Mozilla EventSource documentation>+newtype EventSource = EventSource { unEventSource :: JSVal }++instance PToJSVal EventSource where+  pToJSVal = unEventSource+  {-# INLINE pToJSVal #-}++instance PFromJSVal EventSource where+  pFromJSVal = EventSource+  {-# INLINE pFromJSVal #-}++instance ToJSVal EventSource where+  toJSVal = return . unEventSource+  {-# INLINE toJSVal #-}++instance FromJSVal EventSource where+  fromJSVal v = fmap EventSource <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EventSource+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EventSource where+  makeObject = makeObject . unEventSource++instance IsEventTarget EventSource+instance IsGObject EventSource where+  typeGType _ = gTypeEventSource+  {-# INLINE typeGType #-}++gTypeEventSource :: JSM GType+gTypeEventSource = GType . Object <$> jsg "EventSource"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.EventTarget".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget Mozilla EventTarget documentation>+newtype EventTarget = EventTarget { unEventTarget :: JSVal }++instance PToJSVal EventTarget where+  pToJSVal = unEventTarget+  {-# INLINE pToJSVal #-}++instance PFromJSVal EventTarget where+  pFromJSVal = EventTarget+  {-# INLINE pFromJSVal #-}++instance ToJSVal EventTarget where+  toJSVal = return . unEventTarget+  {-# INLINE toJSVal #-}++instance FromJSVal EventTarget where+  fromJSVal v = fmap EventTarget <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . EventTarget+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject EventTarget where+  makeObject = makeObject . unEventTarget++class IsGObject o => IsEventTarget o+toEventTarget :: IsEventTarget o => o -> EventTarget+toEventTarget = EventTarget . coerce++instance IsEventTarget EventTarget+instance IsGObject EventTarget where+  typeGType _ = gTypeEventTarget+  {-# INLINE typeGType #-}++gTypeEventTarget :: JSM GType+gTypeEventTarget = GType . Object <$> jsg "EventTarget"+#else+type IsEventTarget o = EventTargetClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.File".+-- Base interface functions are in:+--+--     * "JSDOM.Blob"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/File Mozilla File documentation>+newtype File = File { unFile :: JSVal }++instance PToJSVal File where+  pToJSVal = unFile+  {-# INLINE pToJSVal #-}++instance PFromJSVal File where+  pFromJSVal = File+  {-# INLINE pFromJSVal #-}++instance ToJSVal File where+  toJSVal = return . unFile+  {-# INLINE toJSVal #-}++instance FromJSVal File where+  fromJSVal v = fmap File <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . File+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject File where+  makeObject = makeObject . unFile++instance IsBlob File+instance IsGObject File where+  typeGType _ = gTypeFile+  {-# INLINE typeGType #-}++gTypeFile :: JSM GType+gTypeFile = GType . Object <$> jsg "File"+#else+type IsFile o = FileClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FileError".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileError Mozilla FileError documentation>+newtype FileError = FileError { unFileError :: JSVal }++instance PToJSVal FileError where+  pToJSVal = unFileError+  {-# INLINE pToJSVal #-}++instance PFromJSVal FileError where+  pFromJSVal = FileError+  {-# INLINE pFromJSVal #-}++instance ToJSVal FileError where+  toJSVal = return . unFileError+  {-# INLINE toJSVal #-}++instance FromJSVal FileError where+  fromJSVal v = fmap FileError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FileError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FileError where+  makeObject = makeObject . unFileError++instance IsGObject FileError where+  typeGType _ = gTypeFileError+  {-# INLINE typeGType #-}++gTypeFileError :: JSM GType+gTypeFileError = GType . Object <$> jsg "FileError"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FileList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileList Mozilla FileList documentation>+newtype FileList = FileList { unFileList :: JSVal }++instance PToJSVal FileList where+  pToJSVal = unFileList+  {-# INLINE pToJSVal #-}++instance PFromJSVal FileList where+  pFromJSVal = FileList+  {-# INLINE pFromJSVal #-}++instance ToJSVal FileList where+  toJSVal = return . unFileList+  {-# INLINE toJSVal #-}++instance FromJSVal FileList where+  fromJSVal v = fmap FileList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FileList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FileList where+  makeObject = makeObject . unFileList++instance IsGObject FileList where+  typeGType _ = gTypeFileList+  {-# INLINE typeGType #-}++gTypeFileList :: JSM GType+gTypeFileList = GType . Object <$> jsg "FileList"+#else+type IsFileList o = FileListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FileReader".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileReader Mozilla FileReader documentation>+newtype FileReader = FileReader { unFileReader :: JSVal }++instance PToJSVal FileReader where+  pToJSVal = unFileReader+  {-# INLINE pToJSVal #-}++instance PFromJSVal FileReader where+  pFromJSVal = FileReader+  {-# INLINE pFromJSVal #-}++instance ToJSVal FileReader where+  toJSVal = return . unFileReader+  {-# INLINE toJSVal #-}++instance FromJSVal FileReader where+  fromJSVal v = fmap FileReader <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FileReader+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FileReader where+  makeObject = makeObject . unFileReader++instance IsEventTarget FileReader+instance IsGObject FileReader where+  typeGType _ = gTypeFileReader+  {-# INLINE typeGType #-}++gTypeFileReader :: JSM GType+gTypeFileReader = GType . Object <$> jsg "FileReader"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FileReaderSync".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync Mozilla FileReaderSync documentation>+newtype FileReaderSync = FileReaderSync { unFileReaderSync :: JSVal }++instance PToJSVal FileReaderSync where+  pToJSVal = unFileReaderSync+  {-# INLINE pToJSVal #-}++instance PFromJSVal FileReaderSync where+  pFromJSVal = FileReaderSync+  {-# INLINE pFromJSVal #-}++instance ToJSVal FileReaderSync where+  toJSVal = return . unFileReaderSync+  {-# INLINE toJSVal #-}++instance FromJSVal FileReaderSync where+  fromJSVal v = fmap FileReaderSync <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FileReaderSync+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FileReaderSync where+  makeObject = makeObject . unFileReaderSync++instance IsGObject FileReaderSync where+  typeGType _ = gTypeFileReaderSync+  {-# INLINE typeGType #-}++gTypeFileReaderSync :: JSM GType+gTypeFileReaderSync = GType . Object <$> jsg "FileReaderSync"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FocusEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent Mozilla FocusEvent documentation>+newtype FocusEvent = FocusEvent { unFocusEvent :: JSVal }++instance PToJSVal FocusEvent where+  pToJSVal = unFocusEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal FocusEvent where+  pFromJSVal = FocusEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal FocusEvent where+  toJSVal = return . unFocusEvent+  {-# INLINE toJSVal #-}++instance FromJSVal FocusEvent where+  fromJSVal v = fmap FocusEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FocusEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FocusEvent where+  makeObject = makeObject . unFocusEvent++instance IsUIEvent FocusEvent+instance IsEvent FocusEvent+instance IsGObject FocusEvent where+  typeGType _ = gTypeFocusEvent+  {-# INLINE typeGType #-}++gTypeFocusEvent :: JSM GType+gTypeFocusEvent = GType . Object <$> jsg "FocusEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FontLoader".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader Mozilla FontLoader documentation>+newtype FontLoader = FontLoader { unFontLoader :: JSVal }++instance PToJSVal FontLoader where+  pToJSVal = unFontLoader+  {-# INLINE pToJSVal #-}++instance PFromJSVal FontLoader where+  pFromJSVal = FontLoader+  {-# INLINE pFromJSVal #-}++instance ToJSVal FontLoader where+  toJSVal = return . unFontLoader+  {-# INLINE toJSVal #-}++instance FromJSVal FontLoader where+  fromJSVal v = fmap FontLoader <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FontLoader+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FontLoader where+  makeObject = makeObject . unFontLoader++instance IsEventTarget FontLoader+instance IsGObject FontLoader where+  typeGType _ = gTypeFontLoader+  {-# INLINE typeGType #-}++gTypeFontLoader :: JSM GType+gTypeFontLoader = GType . Object <$> jsg "FontLoader"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.FormData".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/FormData Mozilla FormData documentation>+newtype FormData = FormData { unFormData :: JSVal }++instance PToJSVal FormData where+  pToJSVal = unFormData+  {-# INLINE pToJSVal #-}++instance PFromJSVal FormData where+  pFromJSVal = FormData+  {-# INLINE pFromJSVal #-}++instance ToJSVal FormData where+  toJSVal = return . unFormData+  {-# INLINE toJSVal #-}++instance FromJSVal FormData where+  fromJSVal v = fmap FormData <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . FormData+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject FormData where+  makeObject = makeObject . unFormData++instance IsGObject FormData where+  typeGType _ = gTypeFormData+  {-# INLINE typeGType #-}++gTypeFormData :: JSM GType+gTypeFormData = GType . Object <$> jsg "FormData"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.GainNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/GainNode Mozilla GainNode documentation>+newtype GainNode = GainNode { unGainNode :: JSVal }++instance PToJSVal GainNode where+  pToJSVal = unGainNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal GainNode where+  pFromJSVal = GainNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal GainNode where+  toJSVal = return . unGainNode+  {-# INLINE toJSVal #-}++instance FromJSVal GainNode where+  fromJSVal v = fmap GainNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . GainNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject GainNode where+  makeObject = makeObject . unGainNode++instance IsAudioNode GainNode+instance IsEventTarget GainNode+instance IsGObject GainNode where+  typeGType _ = gTypeGainNode+  {-# INLINE typeGType #-}++gTypeGainNode :: JSM GType+gTypeGainNode = GType . Object <$> jsg "GainNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Gamepad".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad Mozilla Gamepad documentation>+newtype Gamepad = Gamepad { unGamepad :: JSVal }++instance PToJSVal Gamepad where+  pToJSVal = unGamepad+  {-# INLINE pToJSVal #-}++instance PFromJSVal Gamepad where+  pFromJSVal = Gamepad+  {-# INLINE pFromJSVal #-}++instance ToJSVal Gamepad where+  toJSVal = return . unGamepad+  {-# INLINE toJSVal #-}++instance FromJSVal Gamepad where+  fromJSVal v = fmap Gamepad <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Gamepad+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Gamepad where+  makeObject = makeObject . unGamepad++instance IsGObject Gamepad where+  typeGType _ = gTypeGamepad+  {-# INLINE typeGType #-}++gTypeGamepad :: JSM GType+gTypeGamepad = GType . Object <$> jsg "Gamepad"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.GamepadButton".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton Mozilla GamepadButton documentation>+newtype GamepadButton = GamepadButton { unGamepadButton :: JSVal }++instance PToJSVal GamepadButton where+  pToJSVal = unGamepadButton+  {-# INLINE pToJSVal #-}++instance PFromJSVal GamepadButton where+  pFromJSVal = GamepadButton+  {-# INLINE pFromJSVal #-}++instance ToJSVal GamepadButton where+  toJSVal = return . unGamepadButton+  {-# INLINE toJSVal #-}++instance FromJSVal GamepadButton where+  fromJSVal v = fmap GamepadButton <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . GamepadButton+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject GamepadButton where+  makeObject = makeObject . unGamepadButton++instance IsGObject GamepadButton where+  typeGType _ = gTypeGamepadButton+  {-# INLINE typeGType #-}++gTypeGamepadButton :: JSM GType+gTypeGamepadButton = GType . Object <$> jsg "GamepadButton"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.GamepadEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent Mozilla GamepadEvent documentation>+newtype GamepadEvent = GamepadEvent { unGamepadEvent :: JSVal }++instance PToJSVal GamepadEvent where+  pToJSVal = unGamepadEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal GamepadEvent where+  pFromJSVal = GamepadEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal GamepadEvent where+  toJSVal = return . unGamepadEvent+  {-# INLINE toJSVal #-}++instance FromJSVal GamepadEvent where+  fromJSVal v = fmap GamepadEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . GamepadEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject GamepadEvent where+  makeObject = makeObject . unGamepadEvent++instance IsEvent GamepadEvent+instance IsGObject GamepadEvent where+  typeGType _ = gTypeGamepadEvent+  {-# INLINE typeGType #-}++gTypeGamepadEvent :: JSM GType+gTypeGamepadEvent = GType . Object <$> jsg "GamepadEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Geolocation".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation Mozilla Geolocation documentation>+newtype Geolocation = Geolocation { unGeolocation :: JSVal }++instance PToJSVal Geolocation where+  pToJSVal = unGeolocation+  {-# INLINE pToJSVal #-}++instance PFromJSVal Geolocation where+  pFromJSVal = Geolocation+  {-# INLINE pFromJSVal #-}++instance ToJSVal Geolocation where+  toJSVal = return . unGeolocation+  {-# INLINE toJSVal #-}++instance FromJSVal Geolocation where+  fromJSVal v = fmap Geolocation <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Geolocation+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Geolocation where+  makeObject = makeObject . unGeolocation++instance IsGObject Geolocation where+  typeGType _ = gTypeGeolocation+  {-# INLINE typeGType #-}++gTypeGeolocation :: JSM GType+gTypeGeolocation = GType . Object <$> jsg "Geolocation"+#else+type IsGeolocation o = GeolocationClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Geoposition".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition Mozilla Geoposition documentation>+newtype Geoposition = Geoposition { unGeoposition :: JSVal }++instance PToJSVal Geoposition where+  pToJSVal = unGeoposition+  {-# INLINE pToJSVal #-}++instance PFromJSVal Geoposition where+  pFromJSVal = Geoposition+  {-# INLINE pFromJSVal #-}++instance ToJSVal Geoposition where+  toJSVal = return . unGeoposition+  {-# INLINE toJSVal #-}++instance FromJSVal Geoposition where+  fromJSVal v = fmap Geoposition <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Geoposition+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Geoposition where+  makeObject = makeObject . unGeoposition++instance IsGObject Geoposition where+  typeGType _ = gTypeGeoposition+  {-# INLINE typeGType #-}++gTypeGeoposition :: JSM GType+gTypeGeoposition = GType . Object <$> jsg "Geoposition"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLAllCollection".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection Mozilla HTMLAllCollection documentation>+newtype HTMLAllCollection = HTMLAllCollection { unHTMLAllCollection :: JSVal }++instance PToJSVal HTMLAllCollection where+  pToJSVal = unHTMLAllCollection+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLAllCollection where+  pFromJSVal = HTMLAllCollection+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLAllCollection where+  toJSVal = return . unHTMLAllCollection+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLAllCollection where+  fromJSVal v = fmap HTMLAllCollection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLAllCollection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLAllCollection where+  makeObject = makeObject . unHTMLAllCollection++instance IsGObject HTMLAllCollection where+  typeGType _ = gTypeHTMLAllCollection+  {-# INLINE typeGType #-}++gTypeHTMLAllCollection :: JSM GType+gTypeHTMLAllCollection = GType . Object <$> jsg "HTMLAllCollection"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLAnchorElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement Mozilla HTMLAnchorElement documentation>+newtype HTMLAnchorElement = HTMLAnchorElement { unHTMLAnchorElement :: JSVal }++instance PToJSVal HTMLAnchorElement where+  pToJSVal = unHTMLAnchorElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLAnchorElement where+  pFromJSVal = HTMLAnchorElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLAnchorElement where+  toJSVal = return . unHTMLAnchorElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLAnchorElement where+  fromJSVal v = fmap HTMLAnchorElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLAnchorElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLAnchorElement where+  makeObject = makeObject . unHTMLAnchorElement++instance IsHTMLElement HTMLAnchorElement+instance IsElement HTMLAnchorElement+instance IsNode HTMLAnchorElement+instance IsEventTarget HTMLAnchorElement+instance IsGObject HTMLAnchorElement where+  typeGType _ = gTypeHTMLAnchorElement+  {-# INLINE typeGType #-}++gTypeHTMLAnchorElement :: JSM GType+gTypeHTMLAnchorElement = GType . Object <$> jsg "HTMLAnchorElement"+#else+type IsHTMLAnchorElement o = HTMLAnchorElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLAppletElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement Mozilla HTMLAppletElement documentation>+newtype HTMLAppletElement = HTMLAppletElement { unHTMLAppletElement :: JSVal }++instance PToJSVal HTMLAppletElement where+  pToJSVal = unHTMLAppletElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLAppletElement where+  pFromJSVal = HTMLAppletElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLAppletElement where+  toJSVal = return . unHTMLAppletElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLAppletElement where+  fromJSVal v = fmap HTMLAppletElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLAppletElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLAppletElement where+  makeObject = makeObject . unHTMLAppletElement++instance IsHTMLElement HTMLAppletElement+instance IsElement HTMLAppletElement+instance IsNode HTMLAppletElement+instance IsEventTarget HTMLAppletElement+instance IsGObject HTMLAppletElement where+  typeGType _ = gTypeHTMLAppletElement+  {-# INLINE typeGType #-}++gTypeHTMLAppletElement :: JSM GType+gTypeHTMLAppletElement = GType . Object <$> jsg "HTMLAppletElement"+#else+type IsHTMLAppletElement o = HTMLAppletElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLAreaElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement Mozilla HTMLAreaElement documentation>+newtype HTMLAreaElement = HTMLAreaElement { unHTMLAreaElement :: JSVal }++instance PToJSVal HTMLAreaElement where+  pToJSVal = unHTMLAreaElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLAreaElement where+  pFromJSVal = HTMLAreaElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLAreaElement where+  toJSVal = return . unHTMLAreaElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLAreaElement where+  fromJSVal v = fmap HTMLAreaElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLAreaElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLAreaElement where+  makeObject = makeObject . unHTMLAreaElement++instance IsHTMLElement HTMLAreaElement+instance IsElement HTMLAreaElement+instance IsNode HTMLAreaElement+instance IsEventTarget HTMLAreaElement+instance IsGObject HTMLAreaElement where+  typeGType _ = gTypeHTMLAreaElement+  {-# INLINE typeGType #-}++gTypeHTMLAreaElement :: JSM GType+gTypeHTMLAreaElement = GType . Object <$> jsg "HTMLAreaElement"+#else+type IsHTMLAreaElement o = HTMLAreaElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLAudioElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLMediaElement"+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement Mozilla HTMLAudioElement documentation>+newtype HTMLAudioElement = HTMLAudioElement { unHTMLAudioElement :: JSVal }++instance PToJSVal HTMLAudioElement where+  pToJSVal = unHTMLAudioElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLAudioElement where+  pFromJSVal = HTMLAudioElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLAudioElement where+  toJSVal = return . unHTMLAudioElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLAudioElement where+  fromJSVal v = fmap HTMLAudioElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLAudioElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLAudioElement where+  makeObject = makeObject . unHTMLAudioElement++instance IsHTMLMediaElement HTMLAudioElement+instance IsHTMLElement HTMLAudioElement+instance IsElement HTMLAudioElement+instance IsNode HTMLAudioElement+instance IsEventTarget HTMLAudioElement+instance IsGObject HTMLAudioElement where+  typeGType _ = gTypeHTMLAudioElement+  {-# INLINE typeGType #-}++gTypeHTMLAudioElement :: JSM GType+gTypeHTMLAudioElement = GType . Object <$> jsg "HTMLAudioElement"+#else+type IsHTMLAudioElement o = HTMLAudioElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLBRElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement Mozilla HTMLBRElement documentation>+newtype HTMLBRElement = HTMLBRElement { unHTMLBRElement :: JSVal }++instance PToJSVal HTMLBRElement where+  pToJSVal = unHTMLBRElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLBRElement where+  pFromJSVal = HTMLBRElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLBRElement where+  toJSVal = return . unHTMLBRElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLBRElement where+  fromJSVal v = fmap HTMLBRElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLBRElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLBRElement where+  makeObject = makeObject . unHTMLBRElement++instance IsHTMLElement HTMLBRElement+instance IsElement HTMLBRElement+instance IsNode HTMLBRElement+instance IsEventTarget HTMLBRElement+instance IsGObject HTMLBRElement where+  typeGType _ = gTypeHTMLBRElement+  {-# INLINE typeGType #-}++gTypeHTMLBRElement :: JSM GType+gTypeHTMLBRElement = GType . Object <$> jsg "HTMLBRElement"+#else+type IsHTMLBRElement o = HTMLBRElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLBaseElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement Mozilla HTMLBaseElement documentation>+newtype HTMLBaseElement = HTMLBaseElement { unHTMLBaseElement :: JSVal }++instance PToJSVal HTMLBaseElement where+  pToJSVal = unHTMLBaseElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLBaseElement where+  pFromJSVal = HTMLBaseElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLBaseElement where+  toJSVal = return . unHTMLBaseElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLBaseElement where+  fromJSVal v = fmap HTMLBaseElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLBaseElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLBaseElement where+  makeObject = makeObject . unHTMLBaseElement++instance IsHTMLElement HTMLBaseElement+instance IsElement HTMLBaseElement+instance IsNode HTMLBaseElement+instance IsEventTarget HTMLBaseElement+instance IsGObject HTMLBaseElement where+  typeGType _ = gTypeHTMLBaseElement+  {-# INLINE typeGType #-}++gTypeHTMLBaseElement :: JSM GType+gTypeHTMLBaseElement = GType . Object <$> jsg "HTMLBaseElement"+#else+type IsHTMLBaseElement o = HTMLBaseElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLBaseFontElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement Mozilla HTMLBaseFontElement documentation>+newtype HTMLBaseFontElement = HTMLBaseFontElement { unHTMLBaseFontElement :: JSVal }++instance PToJSVal HTMLBaseFontElement where+  pToJSVal = unHTMLBaseFontElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLBaseFontElement where+  pFromJSVal = HTMLBaseFontElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLBaseFontElement where+  toJSVal = return . unHTMLBaseFontElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLBaseFontElement where+  fromJSVal v = fmap HTMLBaseFontElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLBaseFontElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLBaseFontElement where+  makeObject = makeObject . unHTMLBaseFontElement++instance IsHTMLElement HTMLBaseFontElement+instance IsElement HTMLBaseFontElement+instance IsNode HTMLBaseFontElement+instance IsEventTarget HTMLBaseFontElement+instance IsGObject HTMLBaseFontElement where+  typeGType _ = gTypeHTMLBaseFontElement+  {-# INLINE typeGType #-}++gTypeHTMLBaseFontElement :: JSM GType+gTypeHTMLBaseFontElement = GType . Object <$> jsg "HTMLBaseFontElement"+#else+type IsHTMLBaseFontElement o = HTMLBaseFontElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLBodyElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement Mozilla HTMLBodyElement documentation>+newtype HTMLBodyElement = HTMLBodyElement { unHTMLBodyElement :: JSVal }++instance PToJSVal HTMLBodyElement where+  pToJSVal = unHTMLBodyElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLBodyElement where+  pFromJSVal = HTMLBodyElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLBodyElement where+  toJSVal = return . unHTMLBodyElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLBodyElement where+  fromJSVal v = fmap HTMLBodyElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLBodyElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLBodyElement where+  makeObject = makeObject . unHTMLBodyElement++instance IsHTMLElement HTMLBodyElement+instance IsElement HTMLBodyElement+instance IsNode HTMLBodyElement+instance IsEventTarget HTMLBodyElement+instance IsGObject HTMLBodyElement where+  typeGType _ = gTypeHTMLBodyElement+  {-# INLINE typeGType #-}++gTypeHTMLBodyElement :: JSM GType+gTypeHTMLBodyElement = GType . Object <$> jsg "HTMLBodyElement"+#else+type IsHTMLBodyElement o = HTMLBodyElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLButtonElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement Mozilla HTMLButtonElement documentation>+newtype HTMLButtonElement = HTMLButtonElement { unHTMLButtonElement :: JSVal }++instance PToJSVal HTMLButtonElement where+  pToJSVal = unHTMLButtonElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLButtonElement where+  pFromJSVal = HTMLButtonElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLButtonElement where+  toJSVal = return . unHTMLButtonElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLButtonElement where+  fromJSVal v = fmap HTMLButtonElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLButtonElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLButtonElement where+  makeObject = makeObject . unHTMLButtonElement++instance IsHTMLElement HTMLButtonElement+instance IsElement HTMLButtonElement+instance IsNode HTMLButtonElement+instance IsEventTarget HTMLButtonElement+instance IsGObject HTMLButtonElement where+  typeGType _ = gTypeHTMLButtonElement+  {-# INLINE typeGType #-}++gTypeHTMLButtonElement :: JSM GType+gTypeHTMLButtonElement = GType . Object <$> jsg "HTMLButtonElement"+#else+type IsHTMLButtonElement o = HTMLButtonElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLCanvasElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement Mozilla HTMLCanvasElement documentation>+newtype HTMLCanvasElement = HTMLCanvasElement { unHTMLCanvasElement :: JSVal }++instance PToJSVal HTMLCanvasElement where+  pToJSVal = unHTMLCanvasElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLCanvasElement where+  pFromJSVal = HTMLCanvasElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLCanvasElement where+  toJSVal = return . unHTMLCanvasElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLCanvasElement where+  fromJSVal v = fmap HTMLCanvasElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLCanvasElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLCanvasElement where+  makeObject = makeObject . unHTMLCanvasElement++instance IsHTMLElement HTMLCanvasElement+instance IsElement HTMLCanvasElement+instance IsNode HTMLCanvasElement+instance IsEventTarget HTMLCanvasElement+instance IsGObject HTMLCanvasElement where+  typeGType _ = gTypeHTMLCanvasElement+  {-# INLINE typeGType #-}++gTypeHTMLCanvasElement :: JSM GType+gTypeHTMLCanvasElement = GType . Object <$> jsg "HTMLCanvasElement"+#else+type IsHTMLCanvasElement o = HTMLCanvasElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLCollection".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection Mozilla HTMLCollection documentation>+newtype HTMLCollection = HTMLCollection { unHTMLCollection :: JSVal }++instance PToJSVal HTMLCollection where+  pToJSVal = unHTMLCollection+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLCollection where+  pFromJSVal = HTMLCollection+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLCollection where+  toJSVal = return . unHTMLCollection+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLCollection where+  fromJSVal v = fmap HTMLCollection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLCollection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLCollection where+  makeObject = makeObject . unHTMLCollection++class IsGObject o => IsHTMLCollection o+toHTMLCollection :: IsHTMLCollection o => o -> HTMLCollection+toHTMLCollection = HTMLCollection . coerce++instance IsHTMLCollection HTMLCollection+instance IsGObject HTMLCollection where+  typeGType _ = gTypeHTMLCollection+  {-# INLINE typeGType #-}++gTypeHTMLCollection :: JSM GType+gTypeHTMLCollection = GType . Object <$> jsg "HTMLCollection"+#else+type IsHTMLCollection o = HTMLCollectionClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLDListElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement Mozilla HTMLDListElement documentation>+newtype HTMLDListElement = HTMLDListElement { unHTMLDListElement :: JSVal }++instance PToJSVal HTMLDListElement where+  pToJSVal = unHTMLDListElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLDListElement where+  pFromJSVal = HTMLDListElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLDListElement where+  toJSVal = return . unHTMLDListElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLDListElement where+  fromJSVal v = fmap HTMLDListElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLDListElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLDListElement where+  makeObject = makeObject . unHTMLDListElement++instance IsHTMLElement HTMLDListElement+instance IsElement HTMLDListElement+instance IsNode HTMLDListElement+instance IsEventTarget HTMLDListElement+instance IsGObject HTMLDListElement where+  typeGType _ = gTypeHTMLDListElement+  {-# INLINE typeGType #-}++gTypeHTMLDListElement :: JSM GType+gTypeHTMLDListElement = GType . Object <$> jsg "HTMLDListElement"+#else+type IsHTMLDListElement o = HTMLDListElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLDataListElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement Mozilla HTMLDataListElement documentation>+newtype HTMLDataListElement = HTMLDataListElement { unHTMLDataListElement :: JSVal }++instance PToJSVal HTMLDataListElement where+  pToJSVal = unHTMLDataListElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLDataListElement where+  pFromJSVal = HTMLDataListElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLDataListElement where+  toJSVal = return . unHTMLDataListElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLDataListElement where+  fromJSVal v = fmap HTMLDataListElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLDataListElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLDataListElement where+  makeObject = makeObject . unHTMLDataListElement++instance IsHTMLElement HTMLDataListElement+instance IsElement HTMLDataListElement+instance IsNode HTMLDataListElement+instance IsEventTarget HTMLDataListElement+instance IsGObject HTMLDataListElement where+  typeGType _ = gTypeHTMLDataListElement+  {-# INLINE typeGType #-}++gTypeHTMLDataListElement :: JSM GType+gTypeHTMLDataListElement = GType . Object <$> jsg "HTMLDataListElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLDetailsElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement Mozilla HTMLDetailsElement documentation>+newtype HTMLDetailsElement = HTMLDetailsElement { unHTMLDetailsElement :: JSVal }++instance PToJSVal HTMLDetailsElement where+  pToJSVal = unHTMLDetailsElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLDetailsElement where+  pFromJSVal = HTMLDetailsElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLDetailsElement where+  toJSVal = return . unHTMLDetailsElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLDetailsElement where+  fromJSVal v = fmap HTMLDetailsElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLDetailsElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLDetailsElement where+  makeObject = makeObject . unHTMLDetailsElement++instance IsHTMLElement HTMLDetailsElement+instance IsElement HTMLDetailsElement+instance IsNode HTMLDetailsElement+instance IsEventTarget HTMLDetailsElement+instance IsGObject HTMLDetailsElement where+  typeGType _ = gTypeHTMLDetailsElement+  {-# INLINE typeGType #-}++gTypeHTMLDetailsElement :: JSM GType+gTypeHTMLDetailsElement = GType . Object <$> jsg "HTMLDetailsElement"+#else+type IsHTMLDetailsElement o = HTMLDetailsElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLDirectoryElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDirectoryElement Mozilla HTMLDirectoryElement documentation>+newtype HTMLDirectoryElement = HTMLDirectoryElement { unHTMLDirectoryElement :: JSVal }++instance PToJSVal HTMLDirectoryElement where+  pToJSVal = unHTMLDirectoryElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLDirectoryElement where+  pFromJSVal = HTMLDirectoryElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLDirectoryElement where+  toJSVal = return . unHTMLDirectoryElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLDirectoryElement where+  fromJSVal v = fmap HTMLDirectoryElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLDirectoryElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLDirectoryElement where+  makeObject = makeObject . unHTMLDirectoryElement++instance IsHTMLElement HTMLDirectoryElement+instance IsElement HTMLDirectoryElement+instance IsNode HTMLDirectoryElement+instance IsEventTarget HTMLDirectoryElement+instance IsGObject HTMLDirectoryElement where+  typeGType _ = gTypeHTMLDirectoryElement+  {-# INLINE typeGType #-}++gTypeHTMLDirectoryElement :: JSM GType+gTypeHTMLDirectoryElement = GType . Object <$> jsg "HTMLDirectoryElement"+#else+type IsHTMLDirectoryElement o = HTMLDirectoryElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLDivElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement Mozilla HTMLDivElement documentation>+newtype HTMLDivElement = HTMLDivElement { unHTMLDivElement :: JSVal }++instance PToJSVal HTMLDivElement where+  pToJSVal = unHTMLDivElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLDivElement where+  pFromJSVal = HTMLDivElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLDivElement where+  toJSVal = return . unHTMLDivElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLDivElement where+  fromJSVal v = fmap HTMLDivElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLDivElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLDivElement where+  makeObject = makeObject . unHTMLDivElement++instance IsHTMLElement HTMLDivElement+instance IsElement HTMLDivElement+instance IsNode HTMLDivElement+instance IsEventTarget HTMLDivElement+instance IsGObject HTMLDivElement where+  typeGType _ = gTypeHTMLDivElement+  {-# INLINE typeGType #-}++gTypeHTMLDivElement :: JSM GType+gTypeHTMLDivElement = GType . Object <$> jsg "HTMLDivElement"+#else+type IsHTMLDivElement o = HTMLDivElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLDocument".+-- Base interface functions are in:+--+--     * "JSDOM.Document"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument Mozilla HTMLDocument documentation>+newtype HTMLDocument = HTMLDocument { unHTMLDocument :: JSVal }++instance PToJSVal HTMLDocument where+  pToJSVal = unHTMLDocument+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLDocument where+  pFromJSVal = HTMLDocument+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLDocument where+  toJSVal = return . unHTMLDocument+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLDocument where+  fromJSVal v = fmap HTMLDocument <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLDocument+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLDocument where+  makeObject = makeObject . unHTMLDocument++instance IsDocument HTMLDocument+instance IsNode HTMLDocument+instance IsEventTarget HTMLDocument+instance IsGObject HTMLDocument where+  typeGType _ = gTypeHTMLDocument+  {-# INLINE typeGType #-}++gTypeHTMLDocument :: JSM GType+gTypeHTMLDocument = GType . Object <$> jsg "HTMLDocument"+#else+type IsHTMLDocument o = HTMLDocumentClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLElement".+-- Base interface functions are in:+--+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement Mozilla HTMLElement documentation>+newtype HTMLElement = HTMLElement { unHTMLElement :: JSVal }++instance PToJSVal HTMLElement where+  pToJSVal = unHTMLElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLElement where+  pFromJSVal = HTMLElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLElement where+  toJSVal = return . unHTMLElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLElement where+  fromJSVal v = fmap HTMLElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLElement where+  makeObject = makeObject . unHTMLElement++class IsElement o => IsHTMLElement o+toHTMLElement :: IsHTMLElement o => o -> HTMLElement+toHTMLElement = HTMLElement . coerce++instance IsHTMLElement HTMLElement+instance IsElement HTMLElement+instance IsNode HTMLElement+instance IsEventTarget HTMLElement+instance IsGObject HTMLElement where+  typeGType _ = gTypeHTMLElement+  {-# INLINE typeGType #-}++gTypeHTMLElement :: JSM GType+gTypeHTMLElement = GType . Object <$> jsg "HTMLElement"+#else+type IsHTMLElement o = HTMLElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLEmbedElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement Mozilla HTMLEmbedElement documentation>+newtype HTMLEmbedElement = HTMLEmbedElement { unHTMLEmbedElement :: JSVal }++instance PToJSVal HTMLEmbedElement where+  pToJSVal = unHTMLEmbedElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLEmbedElement where+  pFromJSVal = HTMLEmbedElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLEmbedElement where+  toJSVal = return . unHTMLEmbedElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLEmbedElement where+  fromJSVal v = fmap HTMLEmbedElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLEmbedElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLEmbedElement where+  makeObject = makeObject . unHTMLEmbedElement++instance IsHTMLElement HTMLEmbedElement+instance IsElement HTMLEmbedElement+instance IsNode HTMLEmbedElement+instance IsEventTarget HTMLEmbedElement+instance IsGObject HTMLEmbedElement where+  typeGType _ = gTypeHTMLEmbedElement+  {-# INLINE typeGType #-}++gTypeHTMLEmbedElement :: JSM GType+gTypeHTMLEmbedElement = GType . Object <$> jsg "HTMLEmbedElement"+#else+type IsHTMLEmbedElement o = HTMLEmbedElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLFieldSetElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement Mozilla HTMLFieldSetElement documentation>+newtype HTMLFieldSetElement = HTMLFieldSetElement { unHTMLFieldSetElement :: JSVal }++instance PToJSVal HTMLFieldSetElement where+  pToJSVal = unHTMLFieldSetElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLFieldSetElement where+  pFromJSVal = HTMLFieldSetElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLFieldSetElement where+  toJSVal = return . unHTMLFieldSetElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLFieldSetElement where+  fromJSVal v = fmap HTMLFieldSetElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLFieldSetElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLFieldSetElement where+  makeObject = makeObject . unHTMLFieldSetElement++instance IsHTMLElement HTMLFieldSetElement+instance IsElement HTMLFieldSetElement+instance IsNode HTMLFieldSetElement+instance IsEventTarget HTMLFieldSetElement+instance IsGObject HTMLFieldSetElement where+  typeGType _ = gTypeHTMLFieldSetElement+  {-# INLINE typeGType #-}++gTypeHTMLFieldSetElement :: JSM GType+gTypeHTMLFieldSetElement = GType . Object <$> jsg "HTMLFieldSetElement"+#else+type IsHTMLFieldSetElement o = HTMLFieldSetElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLFontElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement Mozilla HTMLFontElement documentation>+newtype HTMLFontElement = HTMLFontElement { unHTMLFontElement :: JSVal }++instance PToJSVal HTMLFontElement where+  pToJSVal = unHTMLFontElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLFontElement where+  pFromJSVal = HTMLFontElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLFontElement where+  toJSVal = return . unHTMLFontElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLFontElement where+  fromJSVal v = fmap HTMLFontElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLFontElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLFontElement where+  makeObject = makeObject . unHTMLFontElement++instance IsHTMLElement HTMLFontElement+instance IsElement HTMLFontElement+instance IsNode HTMLFontElement+instance IsEventTarget HTMLFontElement+instance IsGObject HTMLFontElement where+  typeGType _ = gTypeHTMLFontElement+  {-# INLINE typeGType #-}++gTypeHTMLFontElement :: JSM GType+gTypeHTMLFontElement = GType . Object <$> jsg "HTMLFontElement"+#else+type IsHTMLFontElement o = HTMLFontElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLFormControlsCollection".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLCollection"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection Mozilla HTMLFormControlsCollection documentation>+newtype HTMLFormControlsCollection = HTMLFormControlsCollection { unHTMLFormControlsCollection :: JSVal }++instance PToJSVal HTMLFormControlsCollection where+  pToJSVal = unHTMLFormControlsCollection+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLFormControlsCollection where+  pFromJSVal = HTMLFormControlsCollection+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLFormControlsCollection where+  toJSVal = return . unHTMLFormControlsCollection+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLFormControlsCollection where+  fromJSVal v = fmap HTMLFormControlsCollection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLFormControlsCollection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLFormControlsCollection where+  makeObject = makeObject . unHTMLFormControlsCollection++instance IsHTMLCollection HTMLFormControlsCollection+instance IsGObject HTMLFormControlsCollection where+  typeGType _ = gTypeHTMLFormControlsCollection+  {-# INLINE typeGType #-}++gTypeHTMLFormControlsCollection :: JSM GType+gTypeHTMLFormControlsCollection = GType . Object <$> jsg "HTMLFormControlsCollection"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLFormElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement Mozilla HTMLFormElement documentation>+newtype HTMLFormElement = HTMLFormElement { unHTMLFormElement :: JSVal }++instance PToJSVal HTMLFormElement where+  pToJSVal = unHTMLFormElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLFormElement where+  pFromJSVal = HTMLFormElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLFormElement where+  toJSVal = return . unHTMLFormElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLFormElement where+  fromJSVal v = fmap HTMLFormElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLFormElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLFormElement where+  makeObject = makeObject . unHTMLFormElement++instance IsHTMLElement HTMLFormElement+instance IsElement HTMLFormElement+instance IsNode HTMLFormElement+instance IsEventTarget HTMLFormElement+instance IsGObject HTMLFormElement where+  typeGType _ = gTypeHTMLFormElement+  {-# INLINE typeGType #-}++gTypeHTMLFormElement :: JSM GType+gTypeHTMLFormElement = GType . Object <$> jsg "HTMLFormElement"+#else+type IsHTMLFormElement o = HTMLFormElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLFrameElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement Mozilla HTMLFrameElement documentation>+newtype HTMLFrameElement = HTMLFrameElement { unHTMLFrameElement :: JSVal }++instance PToJSVal HTMLFrameElement where+  pToJSVal = unHTMLFrameElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLFrameElement where+  pFromJSVal = HTMLFrameElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLFrameElement where+  toJSVal = return . unHTMLFrameElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLFrameElement where+  fromJSVal v = fmap HTMLFrameElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLFrameElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLFrameElement where+  makeObject = makeObject . unHTMLFrameElement++instance IsHTMLElement HTMLFrameElement+instance IsElement HTMLFrameElement+instance IsNode HTMLFrameElement+instance IsEventTarget HTMLFrameElement+instance IsGObject HTMLFrameElement where+  typeGType _ = gTypeHTMLFrameElement+  {-# INLINE typeGType #-}++gTypeHTMLFrameElement :: JSM GType+gTypeHTMLFrameElement = GType . Object <$> jsg "HTMLFrameElement"+#else+type IsHTMLFrameElement o = HTMLFrameElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLFrameSetElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement Mozilla HTMLFrameSetElement documentation>+newtype HTMLFrameSetElement = HTMLFrameSetElement { unHTMLFrameSetElement :: JSVal }++instance PToJSVal HTMLFrameSetElement where+  pToJSVal = unHTMLFrameSetElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLFrameSetElement where+  pFromJSVal = HTMLFrameSetElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLFrameSetElement where+  toJSVal = return . unHTMLFrameSetElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLFrameSetElement where+  fromJSVal v = fmap HTMLFrameSetElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLFrameSetElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLFrameSetElement where+  makeObject = makeObject . unHTMLFrameSetElement++instance IsHTMLElement HTMLFrameSetElement+instance IsElement HTMLFrameSetElement+instance IsNode HTMLFrameSetElement+instance IsEventTarget HTMLFrameSetElement+instance IsGObject HTMLFrameSetElement where+  typeGType _ = gTypeHTMLFrameSetElement+  {-# INLINE typeGType #-}++gTypeHTMLFrameSetElement :: JSM GType+gTypeHTMLFrameSetElement = GType . Object <$> jsg "HTMLFrameSetElement"+#else+type IsHTMLFrameSetElement o = HTMLFrameSetElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLHRElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement Mozilla HTMLHRElement documentation>+newtype HTMLHRElement = HTMLHRElement { unHTMLHRElement :: JSVal }++instance PToJSVal HTMLHRElement where+  pToJSVal = unHTMLHRElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLHRElement where+  pFromJSVal = HTMLHRElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLHRElement where+  toJSVal = return . unHTMLHRElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLHRElement where+  fromJSVal v = fmap HTMLHRElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLHRElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLHRElement where+  makeObject = makeObject . unHTMLHRElement++instance IsHTMLElement HTMLHRElement+instance IsElement HTMLHRElement+instance IsNode HTMLHRElement+instance IsEventTarget HTMLHRElement+instance IsGObject HTMLHRElement where+  typeGType _ = gTypeHTMLHRElement+  {-# INLINE typeGType #-}++gTypeHTMLHRElement :: JSM GType+gTypeHTMLHRElement = GType . Object <$> jsg "HTMLHRElement"+#else+type IsHTMLHRElement o = HTMLHRElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLHeadElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement Mozilla HTMLHeadElement documentation>+newtype HTMLHeadElement = HTMLHeadElement { unHTMLHeadElement :: JSVal }++instance PToJSVal HTMLHeadElement where+  pToJSVal = unHTMLHeadElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLHeadElement where+  pFromJSVal = HTMLHeadElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLHeadElement where+  toJSVal = return . unHTMLHeadElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLHeadElement where+  fromJSVal v = fmap HTMLHeadElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLHeadElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLHeadElement where+  makeObject = makeObject . unHTMLHeadElement++instance IsHTMLElement HTMLHeadElement+instance IsElement HTMLHeadElement+instance IsNode HTMLHeadElement+instance IsEventTarget HTMLHeadElement+instance IsGObject HTMLHeadElement where+  typeGType _ = gTypeHTMLHeadElement+  {-# INLINE typeGType #-}++gTypeHTMLHeadElement :: JSM GType+gTypeHTMLHeadElement = GType . Object <$> jsg "HTMLHeadElement"+#else+type IsHTMLHeadElement o = HTMLHeadElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLHeadingElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement Mozilla HTMLHeadingElement documentation>+newtype HTMLHeadingElement = HTMLHeadingElement { unHTMLHeadingElement :: JSVal }++instance PToJSVal HTMLHeadingElement where+  pToJSVal = unHTMLHeadingElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLHeadingElement where+  pFromJSVal = HTMLHeadingElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLHeadingElement where+  toJSVal = return . unHTMLHeadingElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLHeadingElement where+  fromJSVal v = fmap HTMLHeadingElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLHeadingElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLHeadingElement where+  makeObject = makeObject . unHTMLHeadingElement++instance IsHTMLElement HTMLHeadingElement+instance IsElement HTMLHeadingElement+instance IsNode HTMLHeadingElement+instance IsEventTarget HTMLHeadingElement+instance IsGObject HTMLHeadingElement where+  typeGType _ = gTypeHTMLHeadingElement+  {-# INLINE typeGType #-}++gTypeHTMLHeadingElement :: JSM GType+gTypeHTMLHeadingElement = GType . Object <$> jsg "HTMLHeadingElement"+#else+type IsHTMLHeadingElement o = HTMLHeadingElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLHtmlElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement Mozilla HTMLHtmlElement documentation>+newtype HTMLHtmlElement = HTMLHtmlElement { unHTMLHtmlElement :: JSVal }++instance PToJSVal HTMLHtmlElement where+  pToJSVal = unHTMLHtmlElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLHtmlElement where+  pFromJSVal = HTMLHtmlElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLHtmlElement where+  toJSVal = return . unHTMLHtmlElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLHtmlElement where+  fromJSVal v = fmap HTMLHtmlElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLHtmlElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLHtmlElement where+  makeObject = makeObject . unHTMLHtmlElement++instance IsHTMLElement HTMLHtmlElement+instance IsElement HTMLHtmlElement+instance IsNode HTMLHtmlElement+instance IsEventTarget HTMLHtmlElement+instance IsGObject HTMLHtmlElement where+  typeGType _ = gTypeHTMLHtmlElement+  {-# INLINE typeGType #-}++gTypeHTMLHtmlElement :: JSM GType+gTypeHTMLHtmlElement = GType . Object <$> jsg "HTMLHtmlElement"+#else+type IsHTMLHtmlElement o = HTMLHtmlElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLIFrameElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement Mozilla HTMLIFrameElement documentation>+newtype HTMLIFrameElement = HTMLIFrameElement { unHTMLIFrameElement :: JSVal }++instance PToJSVal HTMLIFrameElement where+  pToJSVal = unHTMLIFrameElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLIFrameElement where+  pFromJSVal = HTMLIFrameElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLIFrameElement where+  toJSVal = return . unHTMLIFrameElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLIFrameElement where+  fromJSVal v = fmap HTMLIFrameElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLIFrameElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLIFrameElement where+  makeObject = makeObject . unHTMLIFrameElement++instance IsHTMLElement HTMLIFrameElement+instance IsElement HTMLIFrameElement+instance IsNode HTMLIFrameElement+instance IsEventTarget HTMLIFrameElement+instance IsGObject HTMLIFrameElement where+  typeGType _ = gTypeHTMLIFrameElement+  {-# INLINE typeGType #-}++gTypeHTMLIFrameElement :: JSM GType+gTypeHTMLIFrameElement = GType . Object <$> jsg "HTMLIFrameElement"+#else+type IsHTMLIFrameElement o = HTMLIFrameElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLImageElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement Mozilla HTMLImageElement documentation>+newtype HTMLImageElement = HTMLImageElement { unHTMLImageElement :: JSVal }++instance PToJSVal HTMLImageElement where+  pToJSVal = unHTMLImageElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLImageElement where+  pFromJSVal = HTMLImageElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLImageElement where+  toJSVal = return . unHTMLImageElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLImageElement where+  fromJSVal v = fmap HTMLImageElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLImageElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLImageElement where+  makeObject = makeObject . unHTMLImageElement++instance IsHTMLElement HTMLImageElement+instance IsElement HTMLImageElement+instance IsNode HTMLImageElement+instance IsEventTarget HTMLImageElement+instance IsGObject HTMLImageElement where+  typeGType _ = gTypeHTMLImageElement+  {-# INLINE typeGType #-}++gTypeHTMLImageElement :: JSM GType+gTypeHTMLImageElement = GType . Object <$> jsg "HTMLImageElement"+#else+type IsHTMLImageElement o = HTMLImageElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLInputElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement Mozilla HTMLInputElement documentation>+newtype HTMLInputElement = HTMLInputElement { unHTMLInputElement :: JSVal }++instance PToJSVal HTMLInputElement where+  pToJSVal = unHTMLInputElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLInputElement where+  pFromJSVal = HTMLInputElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLInputElement where+  toJSVal = return . unHTMLInputElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLInputElement where+  fromJSVal v = fmap HTMLInputElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLInputElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLInputElement where+  makeObject = makeObject . unHTMLInputElement++instance IsHTMLElement HTMLInputElement+instance IsElement HTMLInputElement+instance IsNode HTMLInputElement+instance IsEventTarget HTMLInputElement+instance IsGObject HTMLInputElement where+  typeGType _ = gTypeHTMLInputElement+  {-# INLINE typeGType #-}++gTypeHTMLInputElement :: JSM GType+gTypeHTMLInputElement = GType . Object <$> jsg "HTMLInputElement"+#else+type IsHTMLInputElement o = HTMLInputElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLKeygenElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement Mozilla HTMLKeygenElement documentation>+newtype HTMLKeygenElement = HTMLKeygenElement { unHTMLKeygenElement :: JSVal }++instance PToJSVal HTMLKeygenElement where+  pToJSVal = unHTMLKeygenElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLKeygenElement where+  pFromJSVal = HTMLKeygenElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLKeygenElement where+  toJSVal = return . unHTMLKeygenElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLKeygenElement where+  fromJSVal v = fmap HTMLKeygenElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLKeygenElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLKeygenElement where+  makeObject = makeObject . unHTMLKeygenElement++instance IsHTMLElement HTMLKeygenElement+instance IsElement HTMLKeygenElement+instance IsNode HTMLKeygenElement+instance IsEventTarget HTMLKeygenElement+instance IsGObject HTMLKeygenElement where+  typeGType _ = gTypeHTMLKeygenElement+  {-# INLINE typeGType #-}++gTypeHTMLKeygenElement :: JSM GType+gTypeHTMLKeygenElement = GType . Object <$> jsg "HTMLKeygenElement"+#else+type IsHTMLKeygenElement o = HTMLKeygenElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLLIElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement Mozilla HTMLLIElement documentation>+newtype HTMLLIElement = HTMLLIElement { unHTMLLIElement :: JSVal }++instance PToJSVal HTMLLIElement where+  pToJSVal = unHTMLLIElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLLIElement where+  pFromJSVal = HTMLLIElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLLIElement where+  toJSVal = return . unHTMLLIElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLLIElement where+  fromJSVal v = fmap HTMLLIElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLLIElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLLIElement where+  makeObject = makeObject . unHTMLLIElement++instance IsHTMLElement HTMLLIElement+instance IsElement HTMLLIElement+instance IsNode HTMLLIElement+instance IsEventTarget HTMLLIElement+instance IsGObject HTMLLIElement where+  typeGType _ = gTypeHTMLLIElement+  {-# INLINE typeGType #-}++gTypeHTMLLIElement :: JSM GType+gTypeHTMLLIElement = GType . Object <$> jsg "HTMLLIElement"+#else+type IsHTMLLIElement o = HTMLLIElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLLabelElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement Mozilla HTMLLabelElement documentation>+newtype HTMLLabelElement = HTMLLabelElement { unHTMLLabelElement :: JSVal }++instance PToJSVal HTMLLabelElement where+  pToJSVal = unHTMLLabelElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLLabelElement where+  pFromJSVal = HTMLLabelElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLLabelElement where+  toJSVal = return . unHTMLLabelElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLLabelElement where+  fromJSVal v = fmap HTMLLabelElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLLabelElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLLabelElement where+  makeObject = makeObject . unHTMLLabelElement++instance IsHTMLElement HTMLLabelElement+instance IsElement HTMLLabelElement+instance IsNode HTMLLabelElement+instance IsEventTarget HTMLLabelElement+instance IsGObject HTMLLabelElement where+  typeGType _ = gTypeHTMLLabelElement+  {-# INLINE typeGType #-}++gTypeHTMLLabelElement :: JSM GType+gTypeHTMLLabelElement = GType . Object <$> jsg "HTMLLabelElement"+#else+type IsHTMLLabelElement o = HTMLLabelElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLLegendElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement Mozilla HTMLLegendElement documentation>+newtype HTMLLegendElement = HTMLLegendElement { unHTMLLegendElement :: JSVal }++instance PToJSVal HTMLLegendElement where+  pToJSVal = unHTMLLegendElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLLegendElement where+  pFromJSVal = HTMLLegendElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLLegendElement where+  toJSVal = return . unHTMLLegendElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLLegendElement where+  fromJSVal v = fmap HTMLLegendElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLLegendElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLLegendElement where+  makeObject = makeObject . unHTMLLegendElement++instance IsHTMLElement HTMLLegendElement+instance IsElement HTMLLegendElement+instance IsNode HTMLLegendElement+instance IsEventTarget HTMLLegendElement+instance IsGObject HTMLLegendElement where+  typeGType _ = gTypeHTMLLegendElement+  {-# INLINE typeGType #-}++gTypeHTMLLegendElement :: JSM GType+gTypeHTMLLegendElement = GType . Object <$> jsg "HTMLLegendElement"+#else+type IsHTMLLegendElement o = HTMLLegendElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLLinkElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement Mozilla HTMLLinkElement documentation>+newtype HTMLLinkElement = HTMLLinkElement { unHTMLLinkElement :: JSVal }++instance PToJSVal HTMLLinkElement where+  pToJSVal = unHTMLLinkElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLLinkElement where+  pFromJSVal = HTMLLinkElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLLinkElement where+  toJSVal = return . unHTMLLinkElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLLinkElement where+  fromJSVal v = fmap HTMLLinkElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLLinkElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLLinkElement where+  makeObject = makeObject . unHTMLLinkElement++instance IsHTMLElement HTMLLinkElement+instance IsElement HTMLLinkElement+instance IsNode HTMLLinkElement+instance IsEventTarget HTMLLinkElement+instance IsGObject HTMLLinkElement where+  typeGType _ = gTypeHTMLLinkElement+  {-# INLINE typeGType #-}++gTypeHTMLLinkElement :: JSM GType+gTypeHTMLLinkElement = GType . Object <$> jsg "HTMLLinkElement"+#else+type IsHTMLLinkElement o = HTMLLinkElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLMapElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement Mozilla HTMLMapElement documentation>+newtype HTMLMapElement = HTMLMapElement { unHTMLMapElement :: JSVal }++instance PToJSVal HTMLMapElement where+  pToJSVal = unHTMLMapElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLMapElement where+  pFromJSVal = HTMLMapElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLMapElement where+  toJSVal = return . unHTMLMapElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLMapElement where+  fromJSVal v = fmap HTMLMapElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLMapElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLMapElement where+  makeObject = makeObject . unHTMLMapElement++instance IsHTMLElement HTMLMapElement+instance IsElement HTMLMapElement+instance IsNode HTMLMapElement+instance IsEventTarget HTMLMapElement+instance IsGObject HTMLMapElement where+  typeGType _ = gTypeHTMLMapElement+  {-# INLINE typeGType #-}++gTypeHTMLMapElement :: JSM GType+gTypeHTMLMapElement = GType . Object <$> jsg "HTMLMapElement"+#else+type IsHTMLMapElement o = HTMLMapElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLMarqueeElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement Mozilla HTMLMarqueeElement documentation>+newtype HTMLMarqueeElement = HTMLMarqueeElement { unHTMLMarqueeElement :: JSVal }++instance PToJSVal HTMLMarqueeElement where+  pToJSVal = unHTMLMarqueeElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLMarqueeElement where+  pFromJSVal = HTMLMarqueeElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLMarqueeElement where+  toJSVal = return . unHTMLMarqueeElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLMarqueeElement where+  fromJSVal v = fmap HTMLMarqueeElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLMarqueeElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLMarqueeElement where+  makeObject = makeObject . unHTMLMarqueeElement++instance IsHTMLElement HTMLMarqueeElement+instance IsElement HTMLMarqueeElement+instance IsNode HTMLMarqueeElement+instance IsEventTarget HTMLMarqueeElement+instance IsGObject HTMLMarqueeElement where+  typeGType _ = gTypeHTMLMarqueeElement+  {-# INLINE typeGType #-}++gTypeHTMLMarqueeElement :: JSM GType+gTypeHTMLMarqueeElement = GType . Object <$> jsg "HTMLMarqueeElement"+#else+type IsHTMLMarqueeElement o = HTMLMarqueeElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLMediaElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement Mozilla HTMLMediaElement documentation>+newtype HTMLMediaElement = HTMLMediaElement { unHTMLMediaElement :: JSVal }++instance PToJSVal HTMLMediaElement where+  pToJSVal = unHTMLMediaElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLMediaElement where+  pFromJSVal = HTMLMediaElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLMediaElement where+  toJSVal = return . unHTMLMediaElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLMediaElement where+  fromJSVal v = fmap HTMLMediaElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLMediaElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLMediaElement where+  makeObject = makeObject . unHTMLMediaElement++class IsHTMLElement o => IsHTMLMediaElement o+toHTMLMediaElement :: IsHTMLMediaElement o => o -> HTMLMediaElement+toHTMLMediaElement = HTMLMediaElement . coerce++instance IsHTMLMediaElement HTMLMediaElement+instance IsHTMLElement HTMLMediaElement+instance IsElement HTMLMediaElement+instance IsNode HTMLMediaElement+instance IsEventTarget HTMLMediaElement+instance IsGObject HTMLMediaElement where+  typeGType _ = gTypeHTMLMediaElement+  {-# INLINE typeGType #-}++gTypeHTMLMediaElement :: JSM GType+gTypeHTMLMediaElement = GType . Object <$> jsg "HTMLMediaElement"+#else+type IsHTMLMediaElement o = HTMLMediaElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLMenuElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement Mozilla HTMLMenuElement documentation>+newtype HTMLMenuElement = HTMLMenuElement { unHTMLMenuElement :: JSVal }++instance PToJSVal HTMLMenuElement where+  pToJSVal = unHTMLMenuElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLMenuElement where+  pFromJSVal = HTMLMenuElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLMenuElement where+  toJSVal = return . unHTMLMenuElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLMenuElement where+  fromJSVal v = fmap HTMLMenuElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLMenuElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLMenuElement where+  makeObject = makeObject . unHTMLMenuElement++instance IsHTMLElement HTMLMenuElement+instance IsElement HTMLMenuElement+instance IsNode HTMLMenuElement+instance IsEventTarget HTMLMenuElement+instance IsGObject HTMLMenuElement where+  typeGType _ = gTypeHTMLMenuElement+  {-# INLINE typeGType #-}++gTypeHTMLMenuElement :: JSM GType+gTypeHTMLMenuElement = GType . Object <$> jsg "HTMLMenuElement"+#else+type IsHTMLMenuElement o = HTMLMenuElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLMetaElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement Mozilla HTMLMetaElement documentation>+newtype HTMLMetaElement = HTMLMetaElement { unHTMLMetaElement :: JSVal }++instance PToJSVal HTMLMetaElement where+  pToJSVal = unHTMLMetaElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLMetaElement where+  pFromJSVal = HTMLMetaElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLMetaElement where+  toJSVal = return . unHTMLMetaElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLMetaElement where+  fromJSVal v = fmap HTMLMetaElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLMetaElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLMetaElement where+  makeObject = makeObject . unHTMLMetaElement++instance IsHTMLElement HTMLMetaElement+instance IsElement HTMLMetaElement+instance IsNode HTMLMetaElement+instance IsEventTarget HTMLMetaElement+instance IsGObject HTMLMetaElement where+  typeGType _ = gTypeHTMLMetaElement+  {-# INLINE typeGType #-}++gTypeHTMLMetaElement :: JSM GType+gTypeHTMLMetaElement = GType . Object <$> jsg "HTMLMetaElement"+#else+type IsHTMLMetaElement o = HTMLMetaElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLMeterElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement Mozilla HTMLMeterElement documentation>+newtype HTMLMeterElement = HTMLMeterElement { unHTMLMeterElement :: JSVal }++instance PToJSVal HTMLMeterElement where+  pToJSVal = unHTMLMeterElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLMeterElement where+  pFromJSVal = HTMLMeterElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLMeterElement where+  toJSVal = return . unHTMLMeterElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLMeterElement where+  fromJSVal v = fmap HTMLMeterElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLMeterElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLMeterElement where+  makeObject = makeObject . unHTMLMeterElement++instance IsHTMLElement HTMLMeterElement+instance IsElement HTMLMeterElement+instance IsNode HTMLMeterElement+instance IsEventTarget HTMLMeterElement+instance IsGObject HTMLMeterElement where+  typeGType _ = gTypeHTMLMeterElement+  {-# INLINE typeGType #-}++gTypeHTMLMeterElement :: JSM GType+gTypeHTMLMeterElement = GType . Object <$> jsg "HTMLMeterElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLModElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement Mozilla HTMLModElement documentation>+newtype HTMLModElement = HTMLModElement { unHTMLModElement :: JSVal }++instance PToJSVal HTMLModElement where+  pToJSVal = unHTMLModElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLModElement where+  pFromJSVal = HTMLModElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLModElement where+  toJSVal = return . unHTMLModElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLModElement where+  fromJSVal v = fmap HTMLModElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLModElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLModElement where+  makeObject = makeObject . unHTMLModElement++instance IsHTMLElement HTMLModElement+instance IsElement HTMLModElement+instance IsNode HTMLModElement+instance IsEventTarget HTMLModElement+instance IsGObject HTMLModElement where+  typeGType _ = gTypeHTMLModElement+  {-# INLINE typeGType #-}++gTypeHTMLModElement :: JSM GType+gTypeHTMLModElement = GType . Object <$> jsg "HTMLModElement"+#else+type IsHTMLModElement o = HTMLModElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLOListElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement Mozilla HTMLOListElement documentation>+newtype HTMLOListElement = HTMLOListElement { unHTMLOListElement :: JSVal }++instance PToJSVal HTMLOListElement where+  pToJSVal = unHTMLOListElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLOListElement where+  pFromJSVal = HTMLOListElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLOListElement where+  toJSVal = return . unHTMLOListElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLOListElement where+  fromJSVal v = fmap HTMLOListElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLOListElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLOListElement where+  makeObject = makeObject . unHTMLOListElement++instance IsHTMLElement HTMLOListElement+instance IsElement HTMLOListElement+instance IsNode HTMLOListElement+instance IsEventTarget HTMLOListElement+instance IsGObject HTMLOListElement where+  typeGType _ = gTypeHTMLOListElement+  {-# INLINE typeGType #-}++gTypeHTMLOListElement :: JSM GType+gTypeHTMLOListElement = GType . Object <$> jsg "HTMLOListElement"+#else+type IsHTMLOListElement o = HTMLOListElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLObjectElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement Mozilla HTMLObjectElement documentation>+newtype HTMLObjectElement = HTMLObjectElement { unHTMLObjectElement :: JSVal }++instance PToJSVal HTMLObjectElement where+  pToJSVal = unHTMLObjectElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLObjectElement where+  pFromJSVal = HTMLObjectElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLObjectElement where+  toJSVal = return . unHTMLObjectElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLObjectElement where+  fromJSVal v = fmap HTMLObjectElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLObjectElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLObjectElement where+  makeObject = makeObject . unHTMLObjectElement++instance IsHTMLElement HTMLObjectElement+instance IsElement HTMLObjectElement+instance IsNode HTMLObjectElement+instance IsEventTarget HTMLObjectElement+instance IsGObject HTMLObjectElement where+  typeGType _ = gTypeHTMLObjectElement+  {-# INLINE typeGType #-}++gTypeHTMLObjectElement :: JSM GType+gTypeHTMLObjectElement = GType . Object <$> jsg "HTMLObjectElement"+#else+type IsHTMLObjectElement o = HTMLObjectElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLOptGroupElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement Mozilla HTMLOptGroupElement documentation>+newtype HTMLOptGroupElement = HTMLOptGroupElement { unHTMLOptGroupElement :: JSVal }++instance PToJSVal HTMLOptGroupElement where+  pToJSVal = unHTMLOptGroupElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLOptGroupElement where+  pFromJSVal = HTMLOptGroupElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLOptGroupElement where+  toJSVal = return . unHTMLOptGroupElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLOptGroupElement where+  fromJSVal v = fmap HTMLOptGroupElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLOptGroupElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLOptGroupElement where+  makeObject = makeObject . unHTMLOptGroupElement++instance IsHTMLElement HTMLOptGroupElement+instance IsElement HTMLOptGroupElement+instance IsNode HTMLOptGroupElement+instance IsEventTarget HTMLOptGroupElement+instance IsGObject HTMLOptGroupElement where+  typeGType _ = gTypeHTMLOptGroupElement+  {-# INLINE typeGType #-}++gTypeHTMLOptGroupElement :: JSM GType+gTypeHTMLOptGroupElement = GType . Object <$> jsg "HTMLOptGroupElement"+#else+type IsHTMLOptGroupElement o = HTMLOptGroupElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLOptionElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement Mozilla HTMLOptionElement documentation>+newtype HTMLOptionElement = HTMLOptionElement { unHTMLOptionElement :: JSVal }++instance PToJSVal HTMLOptionElement where+  pToJSVal = unHTMLOptionElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLOptionElement where+  pFromJSVal = HTMLOptionElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLOptionElement where+  toJSVal = return . unHTMLOptionElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLOptionElement where+  fromJSVal v = fmap HTMLOptionElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLOptionElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLOptionElement where+  makeObject = makeObject . unHTMLOptionElement++instance IsHTMLElement HTMLOptionElement+instance IsElement HTMLOptionElement+instance IsNode HTMLOptionElement+instance IsEventTarget HTMLOptionElement+instance IsGObject HTMLOptionElement where+  typeGType _ = gTypeHTMLOptionElement+  {-# INLINE typeGType #-}++gTypeHTMLOptionElement :: JSM GType+gTypeHTMLOptionElement = GType . Object <$> jsg "HTMLOptionElement"+#else+type IsHTMLOptionElement o = HTMLOptionElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLOptionsCollection".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLCollection"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection Mozilla HTMLOptionsCollection documentation>+newtype HTMLOptionsCollection = HTMLOptionsCollection { unHTMLOptionsCollection :: JSVal }++instance PToJSVal HTMLOptionsCollection where+  pToJSVal = unHTMLOptionsCollection+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLOptionsCollection where+  pFromJSVal = HTMLOptionsCollection+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLOptionsCollection where+  toJSVal = return . unHTMLOptionsCollection+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLOptionsCollection where+  fromJSVal v = fmap HTMLOptionsCollection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLOptionsCollection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLOptionsCollection where+  makeObject = makeObject . unHTMLOptionsCollection++instance IsHTMLCollection HTMLOptionsCollection+instance IsGObject HTMLOptionsCollection where+  typeGType _ = gTypeHTMLOptionsCollection+  {-# INLINE typeGType #-}++gTypeHTMLOptionsCollection :: JSM GType+gTypeHTMLOptionsCollection = GType . Object <$> jsg "HTMLOptionsCollection"+#else+type IsHTMLOptionsCollection o = HTMLOptionsCollectionClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLOutputElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement Mozilla HTMLOutputElement documentation>+newtype HTMLOutputElement = HTMLOutputElement { unHTMLOutputElement :: JSVal }++instance PToJSVal HTMLOutputElement where+  pToJSVal = unHTMLOutputElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLOutputElement where+  pFromJSVal = HTMLOutputElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLOutputElement where+  toJSVal = return . unHTMLOutputElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLOutputElement where+  fromJSVal v = fmap HTMLOutputElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLOutputElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLOutputElement where+  makeObject = makeObject . unHTMLOutputElement++instance IsHTMLElement HTMLOutputElement+instance IsElement HTMLOutputElement+instance IsNode HTMLOutputElement+instance IsEventTarget HTMLOutputElement+instance IsGObject HTMLOutputElement where+  typeGType _ = gTypeHTMLOutputElement+  {-# INLINE typeGType #-}++gTypeHTMLOutputElement :: JSM GType+gTypeHTMLOutputElement = GType . Object <$> jsg "HTMLOutputElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLParagraphElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement Mozilla HTMLParagraphElement documentation>+newtype HTMLParagraphElement = HTMLParagraphElement { unHTMLParagraphElement :: JSVal }++instance PToJSVal HTMLParagraphElement where+  pToJSVal = unHTMLParagraphElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLParagraphElement where+  pFromJSVal = HTMLParagraphElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLParagraphElement where+  toJSVal = return . unHTMLParagraphElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLParagraphElement where+  fromJSVal v = fmap HTMLParagraphElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLParagraphElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLParagraphElement where+  makeObject = makeObject . unHTMLParagraphElement++instance IsHTMLElement HTMLParagraphElement+instance IsElement HTMLParagraphElement+instance IsNode HTMLParagraphElement+instance IsEventTarget HTMLParagraphElement+instance IsGObject HTMLParagraphElement where+  typeGType _ = gTypeHTMLParagraphElement+  {-# INLINE typeGType #-}++gTypeHTMLParagraphElement :: JSM GType+gTypeHTMLParagraphElement = GType . Object <$> jsg "HTMLParagraphElement"+#else+type IsHTMLParagraphElement o = HTMLParagraphElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLParamElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement Mozilla HTMLParamElement documentation>+newtype HTMLParamElement = HTMLParamElement { unHTMLParamElement :: JSVal }++instance PToJSVal HTMLParamElement where+  pToJSVal = unHTMLParamElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLParamElement where+  pFromJSVal = HTMLParamElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLParamElement where+  toJSVal = return . unHTMLParamElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLParamElement where+  fromJSVal v = fmap HTMLParamElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLParamElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLParamElement where+  makeObject = makeObject . unHTMLParamElement++instance IsHTMLElement HTMLParamElement+instance IsElement HTMLParamElement+instance IsNode HTMLParamElement+instance IsEventTarget HTMLParamElement+instance IsGObject HTMLParamElement where+  typeGType _ = gTypeHTMLParamElement+  {-# INLINE typeGType #-}++gTypeHTMLParamElement :: JSM GType+gTypeHTMLParamElement = GType . Object <$> jsg "HTMLParamElement"+#else+type IsHTMLParamElement o = HTMLParamElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLPreElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement Mozilla HTMLPreElement documentation>+newtype HTMLPreElement = HTMLPreElement { unHTMLPreElement :: JSVal }++instance PToJSVal HTMLPreElement where+  pToJSVal = unHTMLPreElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLPreElement where+  pFromJSVal = HTMLPreElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLPreElement where+  toJSVal = return . unHTMLPreElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLPreElement where+  fromJSVal v = fmap HTMLPreElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLPreElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLPreElement where+  makeObject = makeObject . unHTMLPreElement++instance IsHTMLElement HTMLPreElement+instance IsElement HTMLPreElement+instance IsNode HTMLPreElement+instance IsEventTarget HTMLPreElement+instance IsGObject HTMLPreElement where+  typeGType _ = gTypeHTMLPreElement+  {-# INLINE typeGType #-}++gTypeHTMLPreElement :: JSM GType+gTypeHTMLPreElement = GType . Object <$> jsg "HTMLPreElement"+#else+type IsHTMLPreElement o = HTMLPreElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLProgressElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement Mozilla HTMLProgressElement documentation>+newtype HTMLProgressElement = HTMLProgressElement { unHTMLProgressElement :: JSVal }++instance PToJSVal HTMLProgressElement where+  pToJSVal = unHTMLProgressElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLProgressElement where+  pFromJSVal = HTMLProgressElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLProgressElement where+  toJSVal = return . unHTMLProgressElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLProgressElement where+  fromJSVal v = fmap HTMLProgressElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLProgressElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLProgressElement where+  makeObject = makeObject . unHTMLProgressElement++instance IsHTMLElement HTMLProgressElement+instance IsElement HTMLProgressElement+instance IsNode HTMLProgressElement+instance IsEventTarget HTMLProgressElement+instance IsGObject HTMLProgressElement where+  typeGType _ = gTypeHTMLProgressElement+  {-# INLINE typeGType #-}++gTypeHTMLProgressElement :: JSM GType+gTypeHTMLProgressElement = GType . Object <$> jsg "HTMLProgressElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLQuoteElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement Mozilla HTMLQuoteElement documentation>+newtype HTMLQuoteElement = HTMLQuoteElement { unHTMLQuoteElement :: JSVal }++instance PToJSVal HTMLQuoteElement where+  pToJSVal = unHTMLQuoteElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLQuoteElement where+  pFromJSVal = HTMLQuoteElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLQuoteElement where+  toJSVal = return . unHTMLQuoteElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLQuoteElement where+  fromJSVal v = fmap HTMLQuoteElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLQuoteElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLQuoteElement where+  makeObject = makeObject . unHTMLQuoteElement++instance IsHTMLElement HTMLQuoteElement+instance IsElement HTMLQuoteElement+instance IsNode HTMLQuoteElement+instance IsEventTarget HTMLQuoteElement+instance IsGObject HTMLQuoteElement where+  typeGType _ = gTypeHTMLQuoteElement+  {-# INLINE typeGType #-}++gTypeHTMLQuoteElement :: JSM GType+gTypeHTMLQuoteElement = GType . Object <$> jsg "HTMLQuoteElement"+#else+type IsHTMLQuoteElement o = HTMLQuoteElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLScriptElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement Mozilla HTMLScriptElement documentation>+newtype HTMLScriptElement = HTMLScriptElement { unHTMLScriptElement :: JSVal }++instance PToJSVal HTMLScriptElement where+  pToJSVal = unHTMLScriptElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLScriptElement where+  pFromJSVal = HTMLScriptElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLScriptElement where+  toJSVal = return . unHTMLScriptElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLScriptElement where+  fromJSVal v = fmap HTMLScriptElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLScriptElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLScriptElement where+  makeObject = makeObject . unHTMLScriptElement++instance IsHTMLElement HTMLScriptElement+instance IsElement HTMLScriptElement+instance IsNode HTMLScriptElement+instance IsEventTarget HTMLScriptElement+instance IsGObject HTMLScriptElement where+  typeGType _ = gTypeHTMLScriptElement+  {-# INLINE typeGType #-}++gTypeHTMLScriptElement :: JSM GType+gTypeHTMLScriptElement = GType . Object <$> jsg "HTMLScriptElement"+#else+type IsHTMLScriptElement o = HTMLScriptElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLSelectElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement Mozilla HTMLSelectElement documentation>+newtype HTMLSelectElement = HTMLSelectElement { unHTMLSelectElement :: JSVal }++instance PToJSVal HTMLSelectElement where+  pToJSVal = unHTMLSelectElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLSelectElement where+  pFromJSVal = HTMLSelectElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLSelectElement where+  toJSVal = return . unHTMLSelectElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLSelectElement where+  fromJSVal v = fmap HTMLSelectElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLSelectElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLSelectElement where+  makeObject = makeObject . unHTMLSelectElement++instance IsHTMLElement HTMLSelectElement+instance IsElement HTMLSelectElement+instance IsNode HTMLSelectElement+instance IsEventTarget HTMLSelectElement+instance IsGObject HTMLSelectElement where+  typeGType _ = gTypeHTMLSelectElement+  {-# INLINE typeGType #-}++gTypeHTMLSelectElement :: JSM GType+gTypeHTMLSelectElement = GType . Object <$> jsg "HTMLSelectElement"+#else+type IsHTMLSelectElement o = HTMLSelectElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLSourceElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement Mozilla HTMLSourceElement documentation>+newtype HTMLSourceElement = HTMLSourceElement { unHTMLSourceElement :: JSVal }++instance PToJSVal HTMLSourceElement where+  pToJSVal = unHTMLSourceElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLSourceElement where+  pFromJSVal = HTMLSourceElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLSourceElement where+  toJSVal = return . unHTMLSourceElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLSourceElement where+  fromJSVal v = fmap HTMLSourceElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLSourceElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLSourceElement where+  makeObject = makeObject . unHTMLSourceElement++instance IsHTMLElement HTMLSourceElement+instance IsElement HTMLSourceElement+instance IsNode HTMLSourceElement+instance IsEventTarget HTMLSourceElement+instance IsGObject HTMLSourceElement where+  typeGType _ = gTypeHTMLSourceElement+  {-# INLINE typeGType #-}++gTypeHTMLSourceElement :: JSM GType+gTypeHTMLSourceElement = GType . Object <$> jsg "HTMLSourceElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLSpanElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement Mozilla HTMLSpanElement documentation>+newtype HTMLSpanElement = HTMLSpanElement { unHTMLSpanElement :: JSVal }++instance PToJSVal HTMLSpanElement where+  pToJSVal = unHTMLSpanElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLSpanElement where+  pFromJSVal = HTMLSpanElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLSpanElement where+  toJSVal = return . unHTMLSpanElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLSpanElement where+  fromJSVal v = fmap HTMLSpanElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLSpanElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLSpanElement where+  makeObject = makeObject . unHTMLSpanElement++instance IsHTMLElement HTMLSpanElement+instance IsElement HTMLSpanElement+instance IsNode HTMLSpanElement+instance IsEventTarget HTMLSpanElement+instance IsGObject HTMLSpanElement where+  typeGType _ = gTypeHTMLSpanElement+  {-# INLINE typeGType #-}++gTypeHTMLSpanElement :: JSM GType+gTypeHTMLSpanElement = GType . Object <$> jsg "HTMLSpanElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLStyleElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement Mozilla HTMLStyleElement documentation>+newtype HTMLStyleElement = HTMLStyleElement { unHTMLStyleElement :: JSVal }++instance PToJSVal HTMLStyleElement where+  pToJSVal = unHTMLStyleElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLStyleElement where+  pFromJSVal = HTMLStyleElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLStyleElement where+  toJSVal = return . unHTMLStyleElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLStyleElement where+  fromJSVal v = fmap HTMLStyleElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLStyleElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLStyleElement where+  makeObject = makeObject . unHTMLStyleElement++instance IsHTMLElement HTMLStyleElement+instance IsElement HTMLStyleElement+instance IsNode HTMLStyleElement+instance IsEventTarget HTMLStyleElement+instance IsGObject HTMLStyleElement where+  typeGType _ = gTypeHTMLStyleElement+  {-# INLINE typeGType #-}++gTypeHTMLStyleElement :: JSM GType+gTypeHTMLStyleElement = GType . Object <$> jsg "HTMLStyleElement"+#else+type IsHTMLStyleElement o = HTMLStyleElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTableCaptionElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement Mozilla HTMLTableCaptionElement documentation>+newtype HTMLTableCaptionElement = HTMLTableCaptionElement { unHTMLTableCaptionElement :: JSVal }++instance PToJSVal HTMLTableCaptionElement where+  pToJSVal = unHTMLTableCaptionElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTableCaptionElement where+  pFromJSVal = HTMLTableCaptionElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTableCaptionElement where+  toJSVal = return . unHTMLTableCaptionElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTableCaptionElement where+  fromJSVal v = fmap HTMLTableCaptionElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTableCaptionElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTableCaptionElement where+  makeObject = makeObject . unHTMLTableCaptionElement++instance IsHTMLElement HTMLTableCaptionElement+instance IsElement HTMLTableCaptionElement+instance IsNode HTMLTableCaptionElement+instance IsEventTarget HTMLTableCaptionElement+instance IsGObject HTMLTableCaptionElement where+  typeGType _ = gTypeHTMLTableCaptionElement+  {-# INLINE typeGType #-}++gTypeHTMLTableCaptionElement :: JSM GType+gTypeHTMLTableCaptionElement = GType . Object <$> jsg "HTMLTableCaptionElement"+#else+type IsHTMLTableCaptionElement o = HTMLTableCaptionElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTableCellElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement Mozilla HTMLTableCellElement documentation>+newtype HTMLTableCellElement = HTMLTableCellElement { unHTMLTableCellElement :: JSVal }++instance PToJSVal HTMLTableCellElement where+  pToJSVal = unHTMLTableCellElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTableCellElement where+  pFromJSVal = HTMLTableCellElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTableCellElement where+  toJSVal = return . unHTMLTableCellElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTableCellElement where+  fromJSVal v = fmap HTMLTableCellElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTableCellElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTableCellElement where+  makeObject = makeObject . unHTMLTableCellElement++instance IsHTMLElement HTMLTableCellElement+instance IsElement HTMLTableCellElement+instance IsNode HTMLTableCellElement+instance IsEventTarget HTMLTableCellElement+instance IsGObject HTMLTableCellElement where+  typeGType _ = gTypeHTMLTableCellElement+  {-# INLINE typeGType #-}++gTypeHTMLTableCellElement :: JSM GType+gTypeHTMLTableCellElement = GType . Object <$> jsg "HTMLTableCellElement"+#else+type IsHTMLTableCellElement o = HTMLTableCellElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTableColElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement Mozilla HTMLTableColElement documentation>+newtype HTMLTableColElement = HTMLTableColElement { unHTMLTableColElement :: JSVal }++instance PToJSVal HTMLTableColElement where+  pToJSVal = unHTMLTableColElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTableColElement where+  pFromJSVal = HTMLTableColElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTableColElement where+  toJSVal = return . unHTMLTableColElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTableColElement where+  fromJSVal v = fmap HTMLTableColElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTableColElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTableColElement where+  makeObject = makeObject . unHTMLTableColElement++instance IsHTMLElement HTMLTableColElement+instance IsElement HTMLTableColElement+instance IsNode HTMLTableColElement+instance IsEventTarget HTMLTableColElement+instance IsGObject HTMLTableColElement where+  typeGType _ = gTypeHTMLTableColElement+  {-# INLINE typeGType #-}++gTypeHTMLTableColElement :: JSM GType+gTypeHTMLTableColElement = GType . Object <$> jsg "HTMLTableColElement"+#else+type IsHTMLTableColElement o = HTMLTableColElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTableElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement Mozilla HTMLTableElement documentation>+newtype HTMLTableElement = HTMLTableElement { unHTMLTableElement :: JSVal }++instance PToJSVal HTMLTableElement where+  pToJSVal = unHTMLTableElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTableElement where+  pFromJSVal = HTMLTableElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTableElement where+  toJSVal = return . unHTMLTableElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTableElement where+  fromJSVal v = fmap HTMLTableElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTableElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTableElement where+  makeObject = makeObject . unHTMLTableElement++instance IsHTMLElement HTMLTableElement+instance IsElement HTMLTableElement+instance IsNode HTMLTableElement+instance IsEventTarget HTMLTableElement+instance IsGObject HTMLTableElement where+  typeGType _ = gTypeHTMLTableElement+  {-# INLINE typeGType #-}++gTypeHTMLTableElement :: JSM GType+gTypeHTMLTableElement = GType . Object <$> jsg "HTMLTableElement"+#else+type IsHTMLTableElement o = HTMLTableElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTableRowElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement Mozilla HTMLTableRowElement documentation>+newtype HTMLTableRowElement = HTMLTableRowElement { unHTMLTableRowElement :: JSVal }++instance PToJSVal HTMLTableRowElement where+  pToJSVal = unHTMLTableRowElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTableRowElement where+  pFromJSVal = HTMLTableRowElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTableRowElement where+  toJSVal = return . unHTMLTableRowElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTableRowElement where+  fromJSVal v = fmap HTMLTableRowElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTableRowElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTableRowElement where+  makeObject = makeObject . unHTMLTableRowElement++instance IsHTMLElement HTMLTableRowElement+instance IsElement HTMLTableRowElement+instance IsNode HTMLTableRowElement+instance IsEventTarget HTMLTableRowElement+instance IsGObject HTMLTableRowElement where+  typeGType _ = gTypeHTMLTableRowElement+  {-# INLINE typeGType #-}++gTypeHTMLTableRowElement :: JSM GType+gTypeHTMLTableRowElement = GType . Object <$> jsg "HTMLTableRowElement"+#else+type IsHTMLTableRowElement o = HTMLTableRowElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTableSectionElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement Mozilla HTMLTableSectionElement documentation>+newtype HTMLTableSectionElement = HTMLTableSectionElement { unHTMLTableSectionElement :: JSVal }++instance PToJSVal HTMLTableSectionElement where+  pToJSVal = unHTMLTableSectionElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTableSectionElement where+  pFromJSVal = HTMLTableSectionElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTableSectionElement where+  toJSVal = return . unHTMLTableSectionElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTableSectionElement where+  fromJSVal v = fmap HTMLTableSectionElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTableSectionElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTableSectionElement where+  makeObject = makeObject . unHTMLTableSectionElement++instance IsHTMLElement HTMLTableSectionElement+instance IsElement HTMLTableSectionElement+instance IsNode HTMLTableSectionElement+instance IsEventTarget HTMLTableSectionElement+instance IsGObject HTMLTableSectionElement where+  typeGType _ = gTypeHTMLTableSectionElement+  {-# INLINE typeGType #-}++gTypeHTMLTableSectionElement :: JSM GType+gTypeHTMLTableSectionElement = GType . Object <$> jsg "HTMLTableSectionElement"+#else+type IsHTMLTableSectionElement o = HTMLTableSectionElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTemplateElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement Mozilla HTMLTemplateElement documentation>+newtype HTMLTemplateElement = HTMLTemplateElement { unHTMLTemplateElement :: JSVal }++instance PToJSVal HTMLTemplateElement where+  pToJSVal = unHTMLTemplateElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTemplateElement where+  pFromJSVal = HTMLTemplateElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTemplateElement where+  toJSVal = return . unHTMLTemplateElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTemplateElement where+  fromJSVal v = fmap HTMLTemplateElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTemplateElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTemplateElement where+  makeObject = makeObject . unHTMLTemplateElement++instance IsHTMLElement HTMLTemplateElement+instance IsElement HTMLTemplateElement+instance IsNode HTMLTemplateElement+instance IsEventTarget HTMLTemplateElement+instance IsGObject HTMLTemplateElement where+  typeGType _ = gTypeHTMLTemplateElement+  {-# INLINE typeGType #-}++gTypeHTMLTemplateElement :: JSM GType+gTypeHTMLTemplateElement = GType . Object <$> jsg "HTMLTemplateElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTextAreaElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement Mozilla HTMLTextAreaElement documentation>+newtype HTMLTextAreaElement = HTMLTextAreaElement { unHTMLTextAreaElement :: JSVal }++instance PToJSVal HTMLTextAreaElement where+  pToJSVal = unHTMLTextAreaElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTextAreaElement where+  pFromJSVal = HTMLTextAreaElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTextAreaElement where+  toJSVal = return . unHTMLTextAreaElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTextAreaElement where+  fromJSVal v = fmap HTMLTextAreaElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTextAreaElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTextAreaElement where+  makeObject = makeObject . unHTMLTextAreaElement++instance IsHTMLElement HTMLTextAreaElement+instance IsElement HTMLTextAreaElement+instance IsNode HTMLTextAreaElement+instance IsEventTarget HTMLTextAreaElement+instance IsGObject HTMLTextAreaElement where+  typeGType _ = gTypeHTMLTextAreaElement+  {-# INLINE typeGType #-}++gTypeHTMLTextAreaElement :: JSM GType+gTypeHTMLTextAreaElement = GType . Object <$> jsg "HTMLTextAreaElement"+#else+type IsHTMLTextAreaElement o = HTMLTextAreaElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTitleElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement Mozilla HTMLTitleElement documentation>+newtype HTMLTitleElement = HTMLTitleElement { unHTMLTitleElement :: JSVal }++instance PToJSVal HTMLTitleElement where+  pToJSVal = unHTMLTitleElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTitleElement where+  pFromJSVal = HTMLTitleElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTitleElement where+  toJSVal = return . unHTMLTitleElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTitleElement where+  fromJSVal v = fmap HTMLTitleElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTitleElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTitleElement where+  makeObject = makeObject . unHTMLTitleElement++instance IsHTMLElement HTMLTitleElement+instance IsElement HTMLTitleElement+instance IsNode HTMLTitleElement+instance IsEventTarget HTMLTitleElement+instance IsGObject HTMLTitleElement where+  typeGType _ = gTypeHTMLTitleElement+  {-# INLINE typeGType #-}++gTypeHTMLTitleElement :: JSM GType+gTypeHTMLTitleElement = GType . Object <$> jsg "HTMLTitleElement"+#else+type IsHTMLTitleElement o = HTMLTitleElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLTrackElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement Mozilla HTMLTrackElement documentation>+newtype HTMLTrackElement = HTMLTrackElement { unHTMLTrackElement :: JSVal }++instance PToJSVal HTMLTrackElement where+  pToJSVal = unHTMLTrackElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLTrackElement where+  pFromJSVal = HTMLTrackElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLTrackElement where+  toJSVal = return . unHTMLTrackElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLTrackElement where+  fromJSVal v = fmap HTMLTrackElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLTrackElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLTrackElement where+  makeObject = makeObject . unHTMLTrackElement++instance IsHTMLElement HTMLTrackElement+instance IsElement HTMLTrackElement+instance IsNode HTMLTrackElement+instance IsEventTarget HTMLTrackElement+instance IsGObject HTMLTrackElement where+  typeGType _ = gTypeHTMLTrackElement+  {-# INLINE typeGType #-}++gTypeHTMLTrackElement :: JSM GType+gTypeHTMLTrackElement = GType . Object <$> jsg "HTMLTrackElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLUListElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement Mozilla HTMLUListElement documentation>+newtype HTMLUListElement = HTMLUListElement { unHTMLUListElement :: JSVal }++instance PToJSVal HTMLUListElement where+  pToJSVal = unHTMLUListElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLUListElement where+  pFromJSVal = HTMLUListElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLUListElement where+  toJSVal = return . unHTMLUListElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLUListElement where+  fromJSVal v = fmap HTMLUListElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLUListElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLUListElement where+  makeObject = makeObject . unHTMLUListElement++instance IsHTMLElement HTMLUListElement+instance IsElement HTMLUListElement+instance IsNode HTMLUListElement+instance IsEventTarget HTMLUListElement+instance IsGObject HTMLUListElement where+  typeGType _ = gTypeHTMLUListElement+  {-# INLINE typeGType #-}++gTypeHTMLUListElement :: JSM GType+gTypeHTMLUListElement = GType . Object <$> jsg "HTMLUListElement"+#else+type IsHTMLUListElement o = HTMLUListElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLUnknownElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement Mozilla HTMLUnknownElement documentation>+newtype HTMLUnknownElement = HTMLUnknownElement { unHTMLUnknownElement :: JSVal }++instance PToJSVal HTMLUnknownElement where+  pToJSVal = unHTMLUnknownElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLUnknownElement where+  pFromJSVal = HTMLUnknownElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLUnknownElement where+  toJSVal = return . unHTMLUnknownElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLUnknownElement where+  fromJSVal v = fmap HTMLUnknownElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLUnknownElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLUnknownElement where+  makeObject = makeObject . unHTMLUnknownElement++instance IsHTMLElement HTMLUnknownElement+instance IsElement HTMLUnknownElement+instance IsNode HTMLUnknownElement+instance IsEventTarget HTMLUnknownElement+instance IsGObject HTMLUnknownElement where+  typeGType _ = gTypeHTMLUnknownElement+  {-# INLINE typeGType #-}++gTypeHTMLUnknownElement :: JSM GType+gTypeHTMLUnknownElement = GType . Object <$> jsg "HTMLUnknownElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HTMLVideoElement".+-- Base interface functions are in:+--+--     * "JSDOM.HTMLMediaElement"+--     * "JSDOM.HTMLElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement Mozilla HTMLVideoElement documentation>+newtype HTMLVideoElement = HTMLVideoElement { unHTMLVideoElement :: JSVal }++instance PToJSVal HTMLVideoElement where+  pToJSVal = unHTMLVideoElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal HTMLVideoElement where+  pFromJSVal = HTMLVideoElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal HTMLVideoElement where+  toJSVal = return . unHTMLVideoElement+  {-# INLINE toJSVal #-}++instance FromJSVal HTMLVideoElement where+  fromJSVal v = fmap HTMLVideoElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HTMLVideoElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HTMLVideoElement where+  makeObject = makeObject . unHTMLVideoElement++instance IsHTMLMediaElement HTMLVideoElement+instance IsHTMLElement HTMLVideoElement+instance IsElement HTMLVideoElement+instance IsNode HTMLVideoElement+instance IsEventTarget HTMLVideoElement+instance IsGObject HTMLVideoElement where+  typeGType _ = gTypeHTMLVideoElement+  {-# INLINE typeGType #-}++gTypeHTMLVideoElement :: JSM GType+gTypeHTMLVideoElement = GType . Object <$> jsg "HTMLVideoElement"+#else+type IsHTMLVideoElement o = HTMLVideoElementClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.HashChangeEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent Mozilla HashChangeEvent documentation>+newtype HashChangeEvent = HashChangeEvent { unHashChangeEvent :: JSVal }++instance PToJSVal HashChangeEvent where+  pToJSVal = unHashChangeEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal HashChangeEvent where+  pFromJSVal = HashChangeEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal HashChangeEvent where+  toJSVal = return . unHashChangeEvent+  {-# INLINE toJSVal #-}++instance FromJSVal HashChangeEvent where+  fromJSVal v = fmap HashChangeEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . HashChangeEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject HashChangeEvent where+  makeObject = makeObject . unHashChangeEvent++instance IsEvent HashChangeEvent+instance IsGObject HashChangeEvent where+  typeGType _ = gTypeHashChangeEvent+  {-# INLINE typeGType #-}++gTypeHashChangeEvent :: JSM GType+gTypeHashChangeEvent = GType . Object <$> jsg "HashChangeEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.History".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/History Mozilla History documentation>+newtype History = History { unHistory :: JSVal }++instance PToJSVal History where+  pToJSVal = unHistory+  {-# INLINE pToJSVal #-}++instance PFromJSVal History where+  pFromJSVal = History+  {-# INLINE pFromJSVal #-}++instance ToJSVal History where+  toJSVal = return . unHistory+  {-# INLINE toJSVal #-}++instance FromJSVal History where+  fromJSVal v = fmap History <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . History+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject History where+  makeObject = makeObject . unHistory++instance IsGObject History where+  typeGType _ = gTypeHistory+  {-# INLINE typeGType #-}++gTypeHistory :: JSM GType+gTypeHistory = GType . Object <$> jsg "History"+#else+type IsHistory o = HistoryClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBAny".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBAny Mozilla IDBAny documentation>+newtype IDBAny = IDBAny { unIDBAny :: JSVal }++instance PToJSVal IDBAny where+  pToJSVal = unIDBAny+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBAny where+  pFromJSVal = IDBAny+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBAny where+  toJSVal = return . unIDBAny+  {-# INLINE toJSVal #-}++instance FromJSVal IDBAny where+  fromJSVal v = fmap IDBAny <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBAny+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBAny where+  makeObject = makeObject . unIDBAny++instance IsGObject IDBAny where+  typeGType _ = gTypeIDBAny+  {-# INLINE typeGType #-}++gTypeIDBAny :: JSM GType+gTypeIDBAny = GType . Object <$> jsg "IDBAny"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBCursor".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor Mozilla IDBCursor documentation>+newtype IDBCursor = IDBCursor { unIDBCursor :: JSVal }++instance PToJSVal IDBCursor where+  pToJSVal = unIDBCursor+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBCursor where+  pFromJSVal = IDBCursor+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBCursor where+  toJSVal = return . unIDBCursor+  {-# INLINE toJSVal #-}++instance FromJSVal IDBCursor where+  fromJSVal v = fmap IDBCursor <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBCursor+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBCursor where+  makeObject = makeObject . unIDBCursor++class IsGObject o => IsIDBCursor o+toIDBCursor :: IsIDBCursor o => o -> IDBCursor+toIDBCursor = IDBCursor . coerce++instance IsIDBCursor IDBCursor+instance IsGObject IDBCursor where+  typeGType _ = gTypeIDBCursor+  {-# INLINE typeGType #-}++gTypeIDBCursor :: JSM GType+gTypeIDBCursor = GType . Object <$> jsg "IDBCursor"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBCursorWithValue".+-- Base interface functions are in:+--+--     * "JSDOM.IDBCursor"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursorWithValue Mozilla IDBCursorWithValue documentation>+newtype IDBCursorWithValue = IDBCursorWithValue { unIDBCursorWithValue :: JSVal }++instance PToJSVal IDBCursorWithValue where+  pToJSVal = unIDBCursorWithValue+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBCursorWithValue where+  pFromJSVal = IDBCursorWithValue+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBCursorWithValue where+  toJSVal = return . unIDBCursorWithValue+  {-# INLINE toJSVal #-}++instance FromJSVal IDBCursorWithValue where+  fromJSVal v = fmap IDBCursorWithValue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBCursorWithValue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBCursorWithValue where+  makeObject = makeObject . unIDBCursorWithValue++instance IsIDBCursor IDBCursorWithValue+instance IsGObject IDBCursorWithValue where+  typeGType _ = gTypeIDBCursorWithValue+  {-# INLINE typeGType #-}++gTypeIDBCursorWithValue :: JSM GType+gTypeIDBCursorWithValue = GType . Object <$> jsg "IDBCursorWithValue"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBDatabase".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase Mozilla IDBDatabase documentation>+newtype IDBDatabase = IDBDatabase { unIDBDatabase :: JSVal }++instance PToJSVal IDBDatabase where+  pToJSVal = unIDBDatabase+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBDatabase where+  pFromJSVal = IDBDatabase+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBDatabase where+  toJSVal = return . unIDBDatabase+  {-# INLINE toJSVal #-}++instance FromJSVal IDBDatabase where+  fromJSVal v = fmap IDBDatabase <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBDatabase+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBDatabase where+  makeObject = makeObject . unIDBDatabase++instance IsEventTarget IDBDatabase+instance IsGObject IDBDatabase where+  typeGType _ = gTypeIDBDatabase+  {-# INLINE typeGType #-}++gTypeIDBDatabase :: JSM GType+gTypeIDBDatabase = GType . Object <$> jsg "IDBDatabase"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBFactory".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory Mozilla IDBFactory documentation>+newtype IDBFactory = IDBFactory { unIDBFactory :: JSVal }++instance PToJSVal IDBFactory where+  pToJSVal = unIDBFactory+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBFactory where+  pFromJSVal = IDBFactory+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBFactory where+  toJSVal = return . unIDBFactory+  {-# INLINE toJSVal #-}++instance FromJSVal IDBFactory where+  fromJSVal v = fmap IDBFactory <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBFactory+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBFactory where+  makeObject = makeObject . unIDBFactory++instance IsGObject IDBFactory where+  typeGType _ = gTypeIDBFactory+  {-# INLINE typeGType #-}++gTypeIDBFactory :: JSM GType+gTypeIDBFactory = GType . Object <$> jsg "IDBFactory"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBIndex".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex Mozilla IDBIndex documentation>+newtype IDBIndex = IDBIndex { unIDBIndex :: JSVal }++instance PToJSVal IDBIndex where+  pToJSVal = unIDBIndex+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBIndex where+  pFromJSVal = IDBIndex+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBIndex where+  toJSVal = return . unIDBIndex+  {-# INLINE toJSVal #-}++instance FromJSVal IDBIndex where+  fromJSVal v = fmap IDBIndex <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBIndex+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBIndex where+  makeObject = makeObject . unIDBIndex++instance IsGObject IDBIndex where+  typeGType _ = gTypeIDBIndex+  {-# INLINE typeGType #-}++gTypeIDBIndex :: JSM GType+gTypeIDBIndex = GType . Object <$> jsg "IDBIndex"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBKeyRange".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange Mozilla IDBKeyRange documentation>+newtype IDBKeyRange = IDBKeyRange { unIDBKeyRange :: JSVal }++instance PToJSVal IDBKeyRange where+  pToJSVal = unIDBKeyRange+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBKeyRange where+  pFromJSVal = IDBKeyRange+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBKeyRange where+  toJSVal = return . unIDBKeyRange+  {-# INLINE toJSVal #-}++instance FromJSVal IDBKeyRange where+  fromJSVal v = fmap IDBKeyRange <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBKeyRange+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBKeyRange where+  makeObject = makeObject . unIDBKeyRange++instance IsGObject IDBKeyRange where+  typeGType _ = gTypeIDBKeyRange+  {-# INLINE typeGType #-}++gTypeIDBKeyRange :: JSM GType+gTypeIDBKeyRange = GType . Object <$> jsg "IDBKeyRange"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBObjectStore".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore Mozilla IDBObjectStore documentation>+newtype IDBObjectStore = IDBObjectStore { unIDBObjectStore :: JSVal }++instance PToJSVal IDBObjectStore where+  pToJSVal = unIDBObjectStore+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBObjectStore where+  pFromJSVal = IDBObjectStore+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBObjectStore where+  toJSVal = return . unIDBObjectStore+  {-# INLINE toJSVal #-}++instance FromJSVal IDBObjectStore where+  fromJSVal v = fmap IDBObjectStore <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBObjectStore+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBObjectStore where+  makeObject = makeObject . unIDBObjectStore++instance IsGObject IDBObjectStore where+  typeGType _ = gTypeIDBObjectStore+  {-# INLINE typeGType #-}++gTypeIDBObjectStore :: JSM GType+gTypeIDBObjectStore = GType . Object <$> jsg "IDBObjectStore"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBOpenDBRequest".+-- Base interface functions are in:+--+--     * "JSDOM.IDBRequest"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBOpenDBRequest Mozilla IDBOpenDBRequest documentation>+newtype IDBOpenDBRequest = IDBOpenDBRequest { unIDBOpenDBRequest :: JSVal }++instance PToJSVal IDBOpenDBRequest where+  pToJSVal = unIDBOpenDBRequest+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBOpenDBRequest where+  pFromJSVal = IDBOpenDBRequest+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBOpenDBRequest where+  toJSVal = return . unIDBOpenDBRequest+  {-# INLINE toJSVal #-}++instance FromJSVal IDBOpenDBRequest where+  fromJSVal v = fmap IDBOpenDBRequest <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBOpenDBRequest+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBOpenDBRequest where+  makeObject = makeObject . unIDBOpenDBRequest++instance IsIDBRequest IDBOpenDBRequest+instance IsEventTarget IDBOpenDBRequest+instance IsGObject IDBOpenDBRequest where+  typeGType _ = gTypeIDBOpenDBRequest+  {-# INLINE typeGType #-}++gTypeIDBOpenDBRequest :: JSM GType+gTypeIDBOpenDBRequest = GType . Object <$> jsg "IDBOpenDBRequest"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBRequest".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest Mozilla IDBRequest documentation>+newtype IDBRequest = IDBRequest { unIDBRequest :: JSVal }++instance PToJSVal IDBRequest where+  pToJSVal = unIDBRequest+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBRequest where+  pFromJSVal = IDBRequest+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBRequest where+  toJSVal = return . unIDBRequest+  {-# INLINE toJSVal #-}++instance FromJSVal IDBRequest where+  fromJSVal v = fmap IDBRequest <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBRequest+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBRequest where+  makeObject = makeObject . unIDBRequest++class IsEventTarget o => IsIDBRequest o+toIDBRequest :: IsIDBRequest o => o -> IDBRequest+toIDBRequest = IDBRequest . coerce++instance IsIDBRequest IDBRequest+instance IsEventTarget IDBRequest+instance IsGObject IDBRequest where+  typeGType _ = gTypeIDBRequest+  {-# INLINE typeGType #-}++gTypeIDBRequest :: JSM GType+gTypeIDBRequest = GType . Object <$> jsg "IDBRequest"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBTransaction".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction Mozilla IDBTransaction documentation>+newtype IDBTransaction = IDBTransaction { unIDBTransaction :: JSVal }++instance PToJSVal IDBTransaction where+  pToJSVal = unIDBTransaction+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBTransaction where+  pFromJSVal = IDBTransaction+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBTransaction where+  toJSVal = return . unIDBTransaction+  {-# INLINE toJSVal #-}++instance FromJSVal IDBTransaction where+  fromJSVal v = fmap IDBTransaction <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBTransaction+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBTransaction where+  makeObject = makeObject . unIDBTransaction++instance IsEventTarget IDBTransaction+instance IsGObject IDBTransaction where+  typeGType _ = gTypeIDBTransaction+  {-# INLINE typeGType #-}++gTypeIDBTransaction :: JSM GType+gTypeIDBTransaction = GType . Object <$> jsg "IDBTransaction"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.IDBVersionChangeEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent Mozilla IDBVersionChangeEvent documentation>+newtype IDBVersionChangeEvent = IDBVersionChangeEvent { unIDBVersionChangeEvent :: JSVal }++instance PToJSVal IDBVersionChangeEvent where+  pToJSVal = unIDBVersionChangeEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal IDBVersionChangeEvent where+  pFromJSVal = IDBVersionChangeEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal IDBVersionChangeEvent where+  toJSVal = return . unIDBVersionChangeEvent+  {-# INLINE toJSVal #-}++instance FromJSVal IDBVersionChangeEvent where+  fromJSVal v = fmap IDBVersionChangeEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . IDBVersionChangeEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject IDBVersionChangeEvent where+  makeObject = makeObject . unIDBVersionChangeEvent++instance IsEvent IDBVersionChangeEvent+instance IsGObject IDBVersionChangeEvent where+  typeGType _ = gTypeIDBVersionChangeEvent+  {-# INLINE typeGType #-}++gTypeIDBVersionChangeEvent :: JSM GType+gTypeIDBVersionChangeEvent = GType . Object <$> jsg "IDBVersionChangeEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ImageData".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ImageData Mozilla ImageData documentation>+newtype ImageData = ImageData { unImageData :: JSVal }++instance PToJSVal ImageData where+  pToJSVal = unImageData+  {-# INLINE pToJSVal #-}++instance PFromJSVal ImageData where+  pFromJSVal = ImageData+  {-# INLINE pFromJSVal #-}++instance ToJSVal ImageData where+  toJSVal = return . unImageData+  {-# INLINE toJSVal #-}++instance FromJSVal ImageData where+  fromJSVal v = fmap ImageData <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ImageData+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ImageData where+  makeObject = makeObject . unImageData++instance IsGObject ImageData where+  typeGType _ = gTypeImageData+  {-# INLINE typeGType #-}++gTypeImageData :: JSM GType+gTypeImageData = GType . Object <$> jsg "ImageData"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.InspectorFrontendHost".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost Mozilla InspectorFrontendHost documentation>+newtype InspectorFrontendHost = InspectorFrontendHost { unInspectorFrontendHost :: JSVal }++instance PToJSVal InspectorFrontendHost where+  pToJSVal = unInspectorFrontendHost+  {-# INLINE pToJSVal #-}++instance PFromJSVal InspectorFrontendHost where+  pFromJSVal = InspectorFrontendHost+  {-# INLINE pFromJSVal #-}++instance ToJSVal InspectorFrontendHost where+  toJSVal = return . unInspectorFrontendHost+  {-# INLINE toJSVal #-}++instance FromJSVal InspectorFrontendHost where+  fromJSVal v = fmap InspectorFrontendHost <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . InspectorFrontendHost+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject InspectorFrontendHost where+  makeObject = makeObject . unInspectorFrontendHost++instance IsGObject InspectorFrontendHost where+  typeGType _ = gTypeInspectorFrontendHost+  {-# INLINE typeGType #-}++gTypeInspectorFrontendHost :: JSM GType+gTypeInspectorFrontendHost = GType . Object <$> jsg "InspectorFrontendHost"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.InternalSettings".+-- Base interface functions are in:+--+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings Mozilla InternalSettings documentation>+newtype InternalSettings = InternalSettings { unInternalSettings :: JSVal }++instance PToJSVal InternalSettings where+  pToJSVal = unInternalSettings+  {-# INLINE pToJSVal #-}++instance PFromJSVal InternalSettings where+  pFromJSVal = InternalSettings+  {-# INLINE pFromJSVal #-}++instance ToJSVal InternalSettings where+  toJSVal = return . unInternalSettings+  {-# INLINE toJSVal #-}++instance FromJSVal InternalSettings where+  fromJSVal v = fmap InternalSettings <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . InternalSettings+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject InternalSettings where+  makeObject = makeObject . unInternalSettings++instance IsGObject InternalSettings where+  typeGType _ = gTypeInternalSettings+  {-# INLINE typeGType #-}++gTypeInternalSettings :: JSM GType+gTypeInternalSettings = GType . Object <$> jsg "InternalSettings"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Internals".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Internals Mozilla Internals documentation>+newtype Internals = Internals { unInternals :: JSVal }++instance PToJSVal Internals where+  pToJSVal = unInternals+  {-# INLINE pToJSVal #-}++instance PFromJSVal Internals where+  pFromJSVal = Internals+  {-# INLINE pFromJSVal #-}++instance ToJSVal Internals where+  toJSVal = return . unInternals+  {-# INLINE toJSVal #-}++instance FromJSVal Internals where+  fromJSVal v = fmap Internals <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Internals+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Internals where+  makeObject = makeObject . unInternals++instance IsGObject Internals where+  typeGType _ = gTypeInternals+  {-# INLINE typeGType #-}++gTypeInternals :: JSM GType+gTypeInternals = GType . Object <$> jsg "Internals"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.KeyboardEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent Mozilla KeyboardEvent documentation>+newtype KeyboardEvent = KeyboardEvent { unKeyboardEvent :: JSVal }++instance PToJSVal KeyboardEvent where+  pToJSVal = unKeyboardEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal KeyboardEvent where+  pFromJSVal = KeyboardEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal KeyboardEvent where+  toJSVal = return . unKeyboardEvent+  {-# INLINE toJSVal #-}++instance FromJSVal KeyboardEvent where+  fromJSVal v = fmap KeyboardEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . KeyboardEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject KeyboardEvent where+  makeObject = makeObject . unKeyboardEvent++instance IsUIEvent KeyboardEvent+instance IsEvent KeyboardEvent+instance IsGObject KeyboardEvent where+  typeGType _ = gTypeKeyboardEvent+  {-# INLINE typeGType #-}++gTypeKeyboardEvent :: JSM GType+gTypeKeyboardEvent = GType . Object <$> jsg "KeyboardEvent"+#else+#ifndef USE_OLD_WEBKIT+type IsKeyboardEvent o = KeyboardEventClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Location".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Location Mozilla Location documentation>+newtype Location = Location { unLocation :: JSVal }++instance PToJSVal Location where+  pToJSVal = unLocation+  {-# INLINE pToJSVal #-}++instance PFromJSVal Location where+  pFromJSVal = Location+  {-# INLINE pFromJSVal #-}++instance ToJSVal Location where+  toJSVal = return . unLocation+  {-# INLINE toJSVal #-}++instance FromJSVal Location where+  fromJSVal v = fmap Location <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Location+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Location where+  makeObject = makeObject . unLocation++instance IsGObject Location where+  typeGType _ = gTypeLocation+  {-# INLINE typeGType #-}++gTypeLocation :: JSM GType+gTypeLocation = GType . Object <$> jsg "Location"+#else+type IsLocation o = LocationClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MallocStatistics".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MallocStatistics Mozilla MallocStatistics documentation>+newtype MallocStatistics = MallocStatistics { unMallocStatistics :: JSVal }++instance PToJSVal MallocStatistics where+  pToJSVal = unMallocStatistics+  {-# INLINE pToJSVal #-}++instance PFromJSVal MallocStatistics where+  pFromJSVal = MallocStatistics+  {-# INLINE pFromJSVal #-}++instance ToJSVal MallocStatistics where+  toJSVal = return . unMallocStatistics+  {-# INLINE toJSVal #-}++instance FromJSVal MallocStatistics where+  fromJSVal v = fmap MallocStatistics <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MallocStatistics+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MallocStatistics where+  makeObject = makeObject . unMallocStatistics++instance IsGObject MallocStatistics where+  typeGType _ = gTypeMallocStatistics+  {-# INLINE typeGType #-}++gTypeMallocStatistics :: JSM GType+gTypeMallocStatistics = GType . Object <$> jsg "MallocStatistics"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaController".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaController Mozilla MediaController documentation>+newtype MediaController = MediaController { unMediaController :: JSVal }++instance PToJSVal MediaController where+  pToJSVal = unMediaController+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaController where+  pFromJSVal = MediaController+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaController where+  toJSVal = return . unMediaController+  {-# INLINE toJSVal #-}++instance FromJSVal MediaController where+  fromJSVal v = fmap MediaController <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaController+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaController where+  makeObject = makeObject . unMediaController++instance IsEventTarget MediaController+instance IsGObject MediaController where+  typeGType _ = gTypeMediaController+  {-# INLINE typeGType #-}++gTypeMediaController :: JSM GType+gTypeMediaController = GType . Object <$> jsg "MediaController"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaControlsHost".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost Mozilla MediaControlsHost documentation>+newtype MediaControlsHost = MediaControlsHost { unMediaControlsHost :: JSVal }++instance PToJSVal MediaControlsHost where+  pToJSVal = unMediaControlsHost+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaControlsHost where+  pFromJSVal = MediaControlsHost+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaControlsHost where+  toJSVal = return . unMediaControlsHost+  {-# INLINE toJSVal #-}++instance FromJSVal MediaControlsHost where+  fromJSVal v = fmap MediaControlsHost <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaControlsHost+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaControlsHost where+  makeObject = makeObject . unMediaControlsHost++instance IsGObject MediaControlsHost where+  typeGType _ = gTypeMediaControlsHost+  {-# INLINE typeGType #-}++gTypeMediaControlsHost :: JSM GType+gTypeMediaControlsHost = GType . Object <$> jsg "MediaControlsHost"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaElementAudioSourceNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode Mozilla MediaElementAudioSourceNode documentation>+newtype MediaElementAudioSourceNode = MediaElementAudioSourceNode { unMediaElementAudioSourceNode :: JSVal }++instance PToJSVal MediaElementAudioSourceNode where+  pToJSVal = unMediaElementAudioSourceNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaElementAudioSourceNode where+  pFromJSVal = MediaElementAudioSourceNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaElementAudioSourceNode where+  toJSVal = return . unMediaElementAudioSourceNode+  {-# INLINE toJSVal #-}++instance FromJSVal MediaElementAudioSourceNode where+  fromJSVal v = fmap MediaElementAudioSourceNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaElementAudioSourceNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaElementAudioSourceNode where+  makeObject = makeObject . unMediaElementAudioSourceNode++instance IsAudioNode MediaElementAudioSourceNode+instance IsEventTarget MediaElementAudioSourceNode+instance IsGObject MediaElementAudioSourceNode where+  typeGType _ = gTypeMediaElementAudioSourceNode+  {-# INLINE typeGType #-}++gTypeMediaElementAudioSourceNode :: JSM GType+gTypeMediaElementAudioSourceNode = GType . Object <$> jsg "MediaElementAudioSourceNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaError".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaError Mozilla MediaError documentation>+newtype MediaError = MediaError { unMediaError :: JSVal }++instance PToJSVal MediaError where+  pToJSVal = unMediaError+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaError where+  pFromJSVal = MediaError+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaError where+  toJSVal = return . unMediaError+  {-# INLINE toJSVal #-}++instance FromJSVal MediaError where+  fromJSVal v = fmap MediaError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaError where+  makeObject = makeObject . unMediaError++instance IsGObject MediaError where+  typeGType _ = gTypeMediaError+  {-# INLINE typeGType #-}++gTypeMediaError :: JSM GType+gTypeMediaError = GType . Object <$> jsg "MediaError"+#else+type IsMediaError o = MediaErrorClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaKeyError".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError Mozilla WebKitMediaKeyError documentation>+newtype MediaKeyError = MediaKeyError { unMediaKeyError :: JSVal }++instance PToJSVal MediaKeyError where+  pToJSVal = unMediaKeyError+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaKeyError where+  pFromJSVal = MediaKeyError+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaKeyError where+  toJSVal = return . unMediaKeyError+  {-# INLINE toJSVal #-}++instance FromJSVal MediaKeyError where+  fromJSVal v = fmap MediaKeyError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaKeyError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaKeyError where+  makeObject = makeObject . unMediaKeyError++instance IsGObject MediaKeyError where+  typeGType _ = gTypeMediaKeyError+  {-# INLINE typeGType #-}++gTypeMediaKeyError :: JSM GType+gTypeMediaKeyError = GType . Object <$> jsg "WebKitMediaKeyError"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaKeyEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent Mozilla MediaKeyEvent documentation>+newtype MediaKeyEvent = MediaKeyEvent { unMediaKeyEvent :: JSVal }++instance PToJSVal MediaKeyEvent where+  pToJSVal = unMediaKeyEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaKeyEvent where+  pFromJSVal = MediaKeyEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaKeyEvent where+  toJSVal = return . unMediaKeyEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MediaKeyEvent where+  fromJSVal v = fmap MediaKeyEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaKeyEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaKeyEvent where+  makeObject = makeObject . unMediaKeyEvent++instance IsEvent MediaKeyEvent+instance IsGObject MediaKeyEvent where+  typeGType _ = gTypeMediaKeyEvent+  {-# INLINE typeGType #-}++gTypeMediaKeyEvent :: JSM GType+gTypeMediaKeyEvent = GType . Object <$> jsg "MediaKeyEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaKeyMessageEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation>+newtype MediaKeyMessageEvent = MediaKeyMessageEvent { unMediaKeyMessageEvent :: JSVal }++instance PToJSVal MediaKeyMessageEvent where+  pToJSVal = unMediaKeyMessageEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaKeyMessageEvent where+  pFromJSVal = MediaKeyMessageEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaKeyMessageEvent where+  toJSVal = return . unMediaKeyMessageEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MediaKeyMessageEvent where+  fromJSVal v = fmap MediaKeyMessageEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaKeyMessageEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaKeyMessageEvent where+  makeObject = makeObject . unMediaKeyMessageEvent++instance IsEvent MediaKeyMessageEvent+instance IsGObject MediaKeyMessageEvent where+  typeGType _ = gTypeMediaKeyMessageEvent+  {-# INLINE typeGType #-}++gTypeMediaKeyMessageEvent :: JSM GType+gTypeMediaKeyMessageEvent = GType . Object <$> jsg "WebKitMediaKeyMessageEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaKeyNeededEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyNeededEvent Mozilla MediaKeyNeededEvent documentation>+newtype MediaKeyNeededEvent = MediaKeyNeededEvent { unMediaKeyNeededEvent :: JSVal }++instance PToJSVal MediaKeyNeededEvent where+  pToJSVal = unMediaKeyNeededEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaKeyNeededEvent where+  pFromJSVal = MediaKeyNeededEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaKeyNeededEvent where+  toJSVal = return . unMediaKeyNeededEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MediaKeyNeededEvent where+  fromJSVal v = fmap MediaKeyNeededEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaKeyNeededEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaKeyNeededEvent where+  makeObject = makeObject . unMediaKeyNeededEvent++instance IsEvent MediaKeyNeededEvent+instance IsGObject MediaKeyNeededEvent where+  typeGType _ = gTypeMediaKeyNeededEvent+  {-# INLINE typeGType #-}++gTypeMediaKeyNeededEvent :: JSM GType+gTypeMediaKeyNeededEvent = GType . Object <$> jsg "MediaKeyNeededEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaKeySession".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession Mozilla WebKitMediaKeySession documentation>+newtype MediaKeySession = MediaKeySession { unMediaKeySession :: JSVal }++instance PToJSVal MediaKeySession where+  pToJSVal = unMediaKeySession+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaKeySession where+  pFromJSVal = MediaKeySession+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaKeySession where+  toJSVal = return . unMediaKeySession+  {-# INLINE toJSVal #-}++instance FromJSVal MediaKeySession where+  fromJSVal v = fmap MediaKeySession <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaKeySession+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaKeySession where+  makeObject = makeObject . unMediaKeySession++instance IsEventTarget MediaKeySession+instance IsGObject MediaKeySession where+  typeGType _ = gTypeMediaKeySession+  {-# INLINE typeGType #-}++gTypeMediaKeySession :: JSM GType+gTypeMediaKeySession = GType . Object <$> jsg "WebKitMediaKeySession"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaKeys".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation>+newtype MediaKeys = MediaKeys { unMediaKeys :: JSVal }++instance PToJSVal MediaKeys where+  pToJSVal = unMediaKeys+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaKeys where+  pFromJSVal = MediaKeys+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaKeys where+  toJSVal = return . unMediaKeys+  {-# INLINE toJSVal #-}++instance FromJSVal MediaKeys where+  fromJSVal v = fmap MediaKeys <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaKeys+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaKeys where+  makeObject = makeObject . unMediaKeys++instance IsGObject MediaKeys where+  typeGType _ = gTypeMediaKeys+  {-# INLINE typeGType #-}++gTypeMediaKeys :: JSM GType+gTypeMediaKeys = GType . Object <$> jsg "WebKitMediaKeys"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaList Mozilla MediaList documentation>+newtype MediaList = MediaList { unMediaList :: JSVal }++instance PToJSVal MediaList where+  pToJSVal = unMediaList+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaList where+  pFromJSVal = MediaList+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaList where+  toJSVal = return . unMediaList+  {-# INLINE toJSVal #-}++instance FromJSVal MediaList where+  fromJSVal v = fmap MediaList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaList where+  makeObject = makeObject . unMediaList++instance IsGObject MediaList where+  typeGType _ = gTypeMediaList+  {-# INLINE typeGType #-}++gTypeMediaList :: JSM GType+gTypeMediaList = GType . Object <$> jsg "MediaList"+#else+type IsMediaList o = MediaListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaQueryList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList Mozilla MediaQueryList documentation>+newtype MediaQueryList = MediaQueryList { unMediaQueryList :: JSVal }++instance PToJSVal MediaQueryList where+  pToJSVal = unMediaQueryList+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaQueryList where+  pFromJSVal = MediaQueryList+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaQueryList where+  toJSVal = return . unMediaQueryList+  {-# INLINE toJSVal #-}++instance FromJSVal MediaQueryList where+  fromJSVal v = fmap MediaQueryList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaQueryList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaQueryList where+  makeObject = makeObject . unMediaQueryList++instance IsGObject MediaQueryList where+  typeGType _ = gTypeMediaQueryList+  {-# INLINE typeGType #-}++gTypeMediaQueryList :: JSM GType+gTypeMediaQueryList = GType . Object <$> jsg "MediaQueryList"+#else+type IsMediaQueryList o = MediaQueryListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaSource".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource Mozilla MediaSource documentation>+newtype MediaSource = MediaSource { unMediaSource :: JSVal }++instance PToJSVal MediaSource where+  pToJSVal = unMediaSource+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaSource where+  pFromJSVal = MediaSource+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaSource where+  toJSVal = return . unMediaSource+  {-# INLINE toJSVal #-}++instance FromJSVal MediaSource where+  fromJSVal v = fmap MediaSource <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaSource+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaSource where+  makeObject = makeObject . unMediaSource++instance IsEventTarget MediaSource+instance IsGObject MediaSource where+  typeGType _ = gTypeMediaSource+  {-# INLINE typeGType #-}++gTypeMediaSource :: JSM GType+gTypeMediaSource = GType . Object <$> jsg "MediaSource"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaSourceStates".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates Mozilla MediaSourceStates documentation>+newtype MediaSourceStates = MediaSourceStates { unMediaSourceStates :: JSVal }++instance PToJSVal MediaSourceStates where+  pToJSVal = unMediaSourceStates+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaSourceStates where+  pFromJSVal = MediaSourceStates+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaSourceStates where+  toJSVal = return . unMediaSourceStates+  {-# INLINE toJSVal #-}++instance FromJSVal MediaSourceStates where+  fromJSVal v = fmap MediaSourceStates <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaSourceStates+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaSourceStates where+  makeObject = makeObject . unMediaSourceStates++instance IsGObject MediaSourceStates where+  typeGType _ = gTypeMediaSourceStates+  {-# INLINE typeGType #-}++gTypeMediaSourceStates :: JSM GType+gTypeMediaSourceStates = GType . Object <$> jsg "MediaSourceStates"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStream".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream Mozilla webkitMediaStream documentation>+newtype MediaStream = MediaStream { unMediaStream :: JSVal }++instance PToJSVal MediaStream where+  pToJSVal = unMediaStream+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStream where+  pFromJSVal = MediaStream+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStream where+  toJSVal = return . unMediaStream+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStream where+  fromJSVal v = fmap MediaStream <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStream+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStream where+  makeObject = makeObject . unMediaStream++instance IsEventTarget MediaStream+instance IsGObject MediaStream where+  typeGType _ = gTypeMediaStream+  {-# INLINE typeGType #-}++gTypeMediaStream :: JSM GType+gTypeMediaStream = GType . Object <$> jsg "webkitMediaStream"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStreamAudioDestinationNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode Mozilla MediaStreamAudioDestinationNode documentation>+newtype MediaStreamAudioDestinationNode = MediaStreamAudioDestinationNode { unMediaStreamAudioDestinationNode :: JSVal }++instance PToJSVal MediaStreamAudioDestinationNode where+  pToJSVal = unMediaStreamAudioDestinationNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStreamAudioDestinationNode where+  pFromJSVal = MediaStreamAudioDestinationNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStreamAudioDestinationNode where+  toJSVal = return . unMediaStreamAudioDestinationNode+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStreamAudioDestinationNode where+  fromJSVal v = fmap MediaStreamAudioDestinationNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStreamAudioDestinationNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStreamAudioDestinationNode where+  makeObject = makeObject . unMediaStreamAudioDestinationNode++instance IsAudioNode MediaStreamAudioDestinationNode+instance IsEventTarget MediaStreamAudioDestinationNode+instance IsGObject MediaStreamAudioDestinationNode where+  typeGType _ = gTypeMediaStreamAudioDestinationNode+  {-# INLINE typeGType #-}++gTypeMediaStreamAudioDestinationNode :: JSM GType+gTypeMediaStreamAudioDestinationNode = GType . Object <$> jsg "MediaStreamAudioDestinationNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStreamAudioSourceNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode Mozilla MediaStreamAudioSourceNode documentation>+newtype MediaStreamAudioSourceNode = MediaStreamAudioSourceNode { unMediaStreamAudioSourceNode :: JSVal }++instance PToJSVal MediaStreamAudioSourceNode where+  pToJSVal = unMediaStreamAudioSourceNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStreamAudioSourceNode where+  pFromJSVal = MediaStreamAudioSourceNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStreamAudioSourceNode where+  toJSVal = return . unMediaStreamAudioSourceNode+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStreamAudioSourceNode where+  fromJSVal v = fmap MediaStreamAudioSourceNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStreamAudioSourceNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStreamAudioSourceNode where+  makeObject = makeObject . unMediaStreamAudioSourceNode++instance IsAudioNode MediaStreamAudioSourceNode+instance IsEventTarget MediaStreamAudioSourceNode+instance IsGObject MediaStreamAudioSourceNode where+  typeGType _ = gTypeMediaStreamAudioSourceNode+  {-# INLINE typeGType #-}++gTypeMediaStreamAudioSourceNode :: JSM GType+gTypeMediaStreamAudioSourceNode = GType . Object <$> jsg "MediaStreamAudioSourceNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStreamCapabilities".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamCapabilities Mozilla MediaStreamCapabilities documentation>+newtype MediaStreamCapabilities = MediaStreamCapabilities { unMediaStreamCapabilities :: JSVal }++instance PToJSVal MediaStreamCapabilities where+  pToJSVal = unMediaStreamCapabilities+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStreamCapabilities where+  pFromJSVal = MediaStreamCapabilities+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStreamCapabilities where+  toJSVal = return . unMediaStreamCapabilities+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStreamCapabilities where+  fromJSVal v = fmap MediaStreamCapabilities <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStreamCapabilities+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStreamCapabilities where+  makeObject = makeObject . unMediaStreamCapabilities++class IsGObject o => IsMediaStreamCapabilities o+toMediaStreamCapabilities :: IsMediaStreamCapabilities o => o -> MediaStreamCapabilities+toMediaStreamCapabilities = MediaStreamCapabilities . coerce++instance IsMediaStreamCapabilities MediaStreamCapabilities+instance IsGObject MediaStreamCapabilities where+  typeGType _ = gTypeMediaStreamCapabilities+  {-# INLINE typeGType #-}++gTypeMediaStreamCapabilities :: JSM GType+gTypeMediaStreamCapabilities = GType . Object <$> jsg "MediaStreamCapabilities"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStreamEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent Mozilla MediaStreamEvent documentation>+newtype MediaStreamEvent = MediaStreamEvent { unMediaStreamEvent :: JSVal }++instance PToJSVal MediaStreamEvent where+  pToJSVal = unMediaStreamEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStreamEvent where+  pFromJSVal = MediaStreamEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStreamEvent where+  toJSVal = return . unMediaStreamEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStreamEvent where+  fromJSVal v = fmap MediaStreamEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStreamEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStreamEvent where+  makeObject = makeObject . unMediaStreamEvent++instance IsEvent MediaStreamEvent+instance IsGObject MediaStreamEvent where+  typeGType _ = gTypeMediaStreamEvent+  {-# INLINE typeGType #-}++gTypeMediaStreamEvent :: JSM GType+gTypeMediaStreamEvent = GType . Object <$> jsg "MediaStreamEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStreamTrack".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack Mozilla MediaStreamTrack documentation>+newtype MediaStreamTrack = MediaStreamTrack { unMediaStreamTrack :: JSVal }++instance PToJSVal MediaStreamTrack where+  pToJSVal = unMediaStreamTrack+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStreamTrack where+  pFromJSVal = MediaStreamTrack+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStreamTrack where+  toJSVal = return . unMediaStreamTrack+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStreamTrack where+  fromJSVal v = fmap MediaStreamTrack <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStreamTrack+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStreamTrack where+  makeObject = makeObject . unMediaStreamTrack++class IsEventTarget o => IsMediaStreamTrack o+toMediaStreamTrack :: IsMediaStreamTrack o => o -> MediaStreamTrack+toMediaStreamTrack = MediaStreamTrack . coerce++instance IsMediaStreamTrack MediaStreamTrack+instance IsEventTarget MediaStreamTrack+instance IsGObject MediaStreamTrack where+  typeGType _ = gTypeMediaStreamTrack+  {-# INLINE typeGType #-}++gTypeMediaStreamTrack :: JSM GType+gTypeMediaStreamTrack = GType . Object <$> jsg "MediaStreamTrack"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaStreamTrackEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent Mozilla MediaStreamTrackEvent documentation>+newtype MediaStreamTrackEvent = MediaStreamTrackEvent { unMediaStreamTrackEvent :: JSVal }++instance PToJSVal MediaStreamTrackEvent where+  pToJSVal = unMediaStreamTrackEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaStreamTrackEvent where+  pFromJSVal = MediaStreamTrackEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaStreamTrackEvent where+  toJSVal = return . unMediaStreamTrackEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MediaStreamTrackEvent where+  fromJSVal v = fmap MediaStreamTrackEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaStreamTrackEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaStreamTrackEvent where+  makeObject = makeObject . unMediaStreamTrackEvent++instance IsEvent MediaStreamTrackEvent+instance IsGObject MediaStreamTrackEvent where+  typeGType _ = gTypeMediaStreamTrackEvent+  {-# INLINE typeGType #-}++gTypeMediaStreamTrackEvent :: JSM GType+gTypeMediaStreamTrackEvent = GType . Object <$> jsg "MediaStreamTrackEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaTrackConstraint".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraint Mozilla MediaTrackConstraint documentation>+newtype MediaTrackConstraint = MediaTrackConstraint { unMediaTrackConstraint :: JSVal }++instance PToJSVal MediaTrackConstraint where+  pToJSVal = unMediaTrackConstraint+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaTrackConstraint where+  pFromJSVal = MediaTrackConstraint+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaTrackConstraint where+  toJSVal = return . unMediaTrackConstraint+  {-# INLINE toJSVal #-}++instance FromJSVal MediaTrackConstraint where+  fromJSVal v = fmap MediaTrackConstraint <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaTrackConstraint+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaTrackConstraint where+  makeObject = makeObject . unMediaTrackConstraint++instance IsGObject MediaTrackConstraint where+  typeGType _ = gTypeMediaTrackConstraint+  {-# INLINE typeGType #-}++gTypeMediaTrackConstraint :: JSM GType+gTypeMediaTrackConstraint = GType . Object <$> jsg "MediaTrackConstraint"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaTrackConstraintSet".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraintSet Mozilla MediaTrackConstraintSet documentation>+newtype MediaTrackConstraintSet = MediaTrackConstraintSet { unMediaTrackConstraintSet :: JSVal }++instance PToJSVal MediaTrackConstraintSet where+  pToJSVal = unMediaTrackConstraintSet+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaTrackConstraintSet where+  pFromJSVal = MediaTrackConstraintSet+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaTrackConstraintSet where+  toJSVal = return . unMediaTrackConstraintSet+  {-# INLINE toJSVal #-}++instance FromJSVal MediaTrackConstraintSet where+  fromJSVal v = fmap MediaTrackConstraintSet <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaTrackConstraintSet+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaTrackConstraintSet where+  makeObject = makeObject . unMediaTrackConstraintSet++instance IsGObject MediaTrackConstraintSet where+  typeGType _ = gTypeMediaTrackConstraintSet+  {-# INLINE typeGType #-}++gTypeMediaTrackConstraintSet :: JSM GType+gTypeMediaTrackConstraintSet = GType . Object <$> jsg "MediaTrackConstraintSet"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MediaTrackConstraints".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints Mozilla MediaTrackConstraints documentation>+newtype MediaTrackConstraints = MediaTrackConstraints { unMediaTrackConstraints :: JSVal }++instance PToJSVal MediaTrackConstraints where+  pToJSVal = unMediaTrackConstraints+  {-# INLINE pToJSVal #-}++instance PFromJSVal MediaTrackConstraints where+  pFromJSVal = MediaTrackConstraints+  {-# INLINE pFromJSVal #-}++instance ToJSVal MediaTrackConstraints where+  toJSVal = return . unMediaTrackConstraints+  {-# INLINE toJSVal #-}++instance FromJSVal MediaTrackConstraints where+  fromJSVal v = fmap MediaTrackConstraints <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MediaTrackConstraints+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MediaTrackConstraints where+  makeObject = makeObject . unMediaTrackConstraints++instance IsGObject MediaTrackConstraints where+  typeGType _ = gTypeMediaTrackConstraints+  {-# INLINE typeGType #-}++gTypeMediaTrackConstraints :: JSM GType+gTypeMediaTrackConstraints = GType . Object <$> jsg "MediaTrackConstraints"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MemoryInfo".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MemoryInfo Mozilla MemoryInfo documentation>+newtype MemoryInfo = MemoryInfo { unMemoryInfo :: JSVal }++instance PToJSVal MemoryInfo where+  pToJSVal = unMemoryInfo+  {-# INLINE pToJSVal #-}++instance PFromJSVal MemoryInfo where+  pFromJSVal = MemoryInfo+  {-# INLINE pFromJSVal #-}++instance ToJSVal MemoryInfo where+  toJSVal = return . unMemoryInfo+  {-# INLINE toJSVal #-}++instance FromJSVal MemoryInfo where+  fromJSVal v = fmap MemoryInfo <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MemoryInfo+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MemoryInfo where+  makeObject = makeObject . unMemoryInfo++instance IsGObject MemoryInfo where+  typeGType _ = gTypeMemoryInfo+  {-# INLINE typeGType #-}++gTypeMemoryInfo :: JSM GType+gTypeMemoryInfo = GType . Object <$> jsg "MemoryInfo"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MessageChannel".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel Mozilla MessageChannel documentation>+newtype MessageChannel = MessageChannel { unMessageChannel :: JSVal }++instance PToJSVal MessageChannel where+  pToJSVal = unMessageChannel+  {-# INLINE pToJSVal #-}++instance PFromJSVal MessageChannel where+  pFromJSVal = MessageChannel+  {-# INLINE pFromJSVal #-}++instance ToJSVal MessageChannel where+  toJSVal = return . unMessageChannel+  {-# INLINE toJSVal #-}++instance FromJSVal MessageChannel where+  fromJSVal v = fmap MessageChannel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MessageChannel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MessageChannel where+  makeObject = makeObject . unMessageChannel++instance IsGObject MessageChannel where+  typeGType _ = gTypeMessageChannel+  {-# INLINE typeGType #-}++gTypeMessageChannel :: JSM GType+gTypeMessageChannel = GType . Object <$> jsg "MessageChannel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MessageEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent Mozilla MessageEvent documentation>+newtype MessageEvent = MessageEvent { unMessageEvent :: JSVal }++instance PToJSVal MessageEvent where+  pToJSVal = unMessageEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MessageEvent where+  pFromJSVal = MessageEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MessageEvent where+  toJSVal = return . unMessageEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MessageEvent where+  fromJSVal v = fmap MessageEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MessageEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MessageEvent where+  makeObject = makeObject . unMessageEvent++instance IsEvent MessageEvent+instance IsGObject MessageEvent where+  typeGType _ = gTypeMessageEvent+  {-# INLINE typeGType #-}++gTypeMessageEvent :: JSM GType+gTypeMessageEvent = GType . Object <$> jsg "MessageEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MessagePort".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort Mozilla MessagePort documentation>+newtype MessagePort = MessagePort { unMessagePort :: JSVal }++instance PToJSVal MessagePort where+  pToJSVal = unMessagePort+  {-# INLINE pToJSVal #-}++instance PFromJSVal MessagePort where+  pFromJSVal = MessagePort+  {-# INLINE pFromJSVal #-}++instance ToJSVal MessagePort where+  toJSVal = return . unMessagePort+  {-# INLINE toJSVal #-}++instance FromJSVal MessagePort where+  fromJSVal v = fmap MessagePort <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MessagePort+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MessagePort where+  makeObject = makeObject . unMessagePort++instance IsEventTarget MessagePort+instance IsGObject MessagePort where+  typeGType _ = gTypeMessagePort+  {-# INLINE typeGType #-}++gTypeMessagePort :: JSM GType+gTypeMessagePort = GType . Object <$> jsg "MessagePort"+#else+type IsMessagePort o = MessagePortClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MimeType".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MimeType Mozilla MimeType documentation>+newtype MimeType = MimeType { unMimeType :: JSVal }++instance PToJSVal MimeType where+  pToJSVal = unMimeType+  {-# INLINE pToJSVal #-}++instance PFromJSVal MimeType where+  pFromJSVal = MimeType+  {-# INLINE pFromJSVal #-}++instance ToJSVal MimeType where+  toJSVal = return . unMimeType+  {-# INLINE toJSVal #-}++instance FromJSVal MimeType where+  fromJSVal v = fmap MimeType <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MimeType+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MimeType where+  makeObject = makeObject . unMimeType++instance IsGObject MimeType where+  typeGType _ = gTypeMimeType+  {-# INLINE typeGType #-}++gTypeMimeType :: JSM GType+gTypeMimeType = GType . Object <$> jsg "MimeType"+#else+type IsMimeType o = MimeTypeClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MimeTypeArray".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray Mozilla MimeTypeArray documentation>+newtype MimeTypeArray = MimeTypeArray { unMimeTypeArray :: JSVal }++instance PToJSVal MimeTypeArray where+  pToJSVal = unMimeTypeArray+  {-# INLINE pToJSVal #-}++instance PFromJSVal MimeTypeArray where+  pFromJSVal = MimeTypeArray+  {-# INLINE pFromJSVal #-}++instance ToJSVal MimeTypeArray where+  toJSVal = return . unMimeTypeArray+  {-# INLINE toJSVal #-}++instance FromJSVal MimeTypeArray where+  fromJSVal v = fmap MimeTypeArray <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MimeTypeArray+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MimeTypeArray where+  makeObject = makeObject . unMimeTypeArray++instance IsGObject MimeTypeArray where+  typeGType _ = gTypeMimeTypeArray+  {-# INLINE typeGType #-}++gTypeMimeTypeArray :: JSM GType+gTypeMimeTypeArray = GType . Object <$> jsg "MimeTypeArray"+#else+type IsMimeTypeArray o = MimeTypeArrayClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MouseEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent Mozilla MouseEvent documentation>+newtype MouseEvent = MouseEvent { unMouseEvent :: JSVal }++instance PToJSVal MouseEvent where+  pToJSVal = unMouseEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MouseEvent where+  pFromJSVal = MouseEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MouseEvent where+  toJSVal = return . unMouseEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MouseEvent where+  fromJSVal v = fmap MouseEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MouseEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MouseEvent where+  makeObject = makeObject . unMouseEvent++class IsUIEvent o => IsMouseEvent o+toMouseEvent :: IsMouseEvent o => o -> MouseEvent+toMouseEvent = MouseEvent . coerce++instance IsMouseEvent MouseEvent+instance IsUIEvent MouseEvent+instance IsEvent MouseEvent+instance IsGObject MouseEvent where+  typeGType _ = gTypeMouseEvent+  {-# INLINE typeGType #-}++gTypeMouseEvent :: JSM GType+gTypeMouseEvent = GType . Object <$> jsg "MouseEvent"+#else+type IsMouseEvent o = MouseEventClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MutationEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent Mozilla MutationEvent documentation>+newtype MutationEvent = MutationEvent { unMutationEvent :: JSVal }++instance PToJSVal MutationEvent where+  pToJSVal = unMutationEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal MutationEvent where+  pFromJSVal = MutationEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal MutationEvent where+  toJSVal = return . unMutationEvent+  {-# INLINE toJSVal #-}++instance FromJSVal MutationEvent where+  fromJSVal v = fmap MutationEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MutationEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MutationEvent where+  makeObject = makeObject . unMutationEvent++instance IsEvent MutationEvent+instance IsGObject MutationEvent where+  typeGType _ = gTypeMutationEvent+  {-# INLINE typeGType #-}++gTypeMutationEvent :: JSM GType+gTypeMutationEvent = GType . Object <$> jsg "MutationEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MutationObserver".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Mozilla MutationObserver documentation>+newtype MutationObserver = MutationObserver { unMutationObserver :: JSVal }++instance PToJSVal MutationObserver where+  pToJSVal = unMutationObserver+  {-# INLINE pToJSVal #-}++instance PFromJSVal MutationObserver where+  pFromJSVal = MutationObserver+  {-# INLINE pFromJSVal #-}++instance ToJSVal MutationObserver where+  toJSVal = return . unMutationObserver+  {-# INLINE toJSVal #-}++instance FromJSVal MutationObserver where+  fromJSVal v = fmap MutationObserver <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MutationObserver+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MutationObserver where+  makeObject = makeObject . unMutationObserver++instance IsGObject MutationObserver where+  typeGType _ = gTypeMutationObserver+  {-# INLINE typeGType #-}++gTypeMutationObserver :: JSM GType+gTypeMutationObserver = GType . Object <$> jsg "MutationObserver"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.MutationRecord".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord Mozilla MutationRecord documentation>+newtype MutationRecord = MutationRecord { unMutationRecord :: JSVal }++instance PToJSVal MutationRecord where+  pToJSVal = unMutationRecord+  {-# INLINE pToJSVal #-}++instance PFromJSVal MutationRecord where+  pFromJSVal = MutationRecord+  {-# INLINE pFromJSVal #-}++instance ToJSVal MutationRecord where+  toJSVal = return . unMutationRecord+  {-# INLINE toJSVal #-}++instance FromJSVal MutationRecord where+  fromJSVal v = fmap MutationRecord <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . MutationRecord+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject MutationRecord where+  makeObject = makeObject . unMutationRecord++instance IsGObject MutationRecord where+  typeGType _ = gTypeMutationRecord+  {-# INLINE typeGType #-}++gTypeMutationRecord :: JSM GType+gTypeMutationRecord = GType . Object <$> jsg "MutationRecord"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.NamedNodeMap".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap Mozilla NamedNodeMap documentation>+newtype NamedNodeMap = NamedNodeMap { unNamedNodeMap :: JSVal }++instance PToJSVal NamedNodeMap where+  pToJSVal = unNamedNodeMap+  {-# INLINE pToJSVal #-}++instance PFromJSVal NamedNodeMap where+  pFromJSVal = NamedNodeMap+  {-# INLINE pFromJSVal #-}++instance ToJSVal NamedNodeMap where+  toJSVal = return . unNamedNodeMap+  {-# INLINE toJSVal #-}++instance FromJSVal NamedNodeMap where+  fromJSVal v = fmap NamedNodeMap <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . NamedNodeMap+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject NamedNodeMap where+  makeObject = makeObject . unNamedNodeMap++instance IsGObject NamedNodeMap where+  typeGType _ = gTypeNamedNodeMap+  {-# INLINE typeGType #-}++gTypeNamedNodeMap :: JSM GType+gTypeNamedNodeMap = GType . Object <$> jsg "NamedNodeMap"+#else+type IsNamedNodeMap o = NamedNodeMapClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Navigator".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Navigator Mozilla Navigator documentation>+newtype Navigator = Navigator { unNavigator :: JSVal }++instance PToJSVal Navigator where+  pToJSVal = unNavigator+  {-# INLINE pToJSVal #-}++instance PFromJSVal Navigator where+  pFromJSVal = Navigator+  {-# INLINE pFromJSVal #-}++instance ToJSVal Navigator where+  toJSVal = return . unNavigator+  {-# INLINE toJSVal #-}++instance FromJSVal Navigator where+  fromJSVal v = fmap Navigator <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Navigator+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Navigator where+  makeObject = makeObject . unNavigator++instance IsGObject Navigator where+  typeGType _ = gTypeNavigator+  {-# INLINE typeGType #-}++gTypeNavigator :: JSM GType+gTypeNavigator = GType . Object <$> jsg "Navigator"+#else+type IsNavigator o = NavigatorClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.NavigatorUserMediaError".+-- Base interface functions are in:+--+--     * "JSDOM.DOMError"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaError Mozilla NavigatorUserMediaError documentation>+newtype NavigatorUserMediaError = NavigatorUserMediaError { unNavigatorUserMediaError :: JSVal }++instance PToJSVal NavigatorUserMediaError where+  pToJSVal = unNavigatorUserMediaError+  {-# INLINE pToJSVal #-}++instance PFromJSVal NavigatorUserMediaError where+  pFromJSVal = NavigatorUserMediaError+  {-# INLINE pFromJSVal #-}++instance ToJSVal NavigatorUserMediaError where+  toJSVal = return . unNavigatorUserMediaError+  {-# INLINE toJSVal #-}++instance FromJSVal NavigatorUserMediaError where+  fromJSVal v = fmap NavigatorUserMediaError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . NavigatorUserMediaError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject NavigatorUserMediaError where+  makeObject = makeObject . unNavigatorUserMediaError++instance IsDOMError NavigatorUserMediaError+instance IsGObject NavigatorUserMediaError where+  typeGType _ = gTypeNavigatorUserMediaError+  {-# INLINE typeGType #-}++gTypeNavigatorUserMediaError :: JSM GType+gTypeNavigatorUserMediaError = GType . Object <$> jsg "NavigatorUserMediaError"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Node".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Node Mozilla Node documentation>+newtype Node = Node { unNode :: JSVal }++instance PToJSVal Node where+  pToJSVal = unNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal Node where+  pFromJSVal = Node+  {-# INLINE pFromJSVal #-}++instance ToJSVal Node where+  toJSVal = return . unNode+  {-# INLINE toJSVal #-}++instance FromJSVal Node where+  fromJSVal v = fmap Node <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Node+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Node where+  makeObject = makeObject . unNode++class IsEventTarget o => IsNode o+toNode :: IsNode o => o -> Node+toNode = Node . coerce++instance IsNode Node+instance IsEventTarget Node+instance IsGObject Node where+  typeGType _ = gTypeNode+  {-# INLINE typeGType #-}++gTypeNode :: JSM GType+gTypeNode = GType . Object <$> jsg "Node"+#else+type IsNode o = NodeClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.NodeFilter".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter Mozilla NodeFilter documentation>+newtype NodeFilter = NodeFilter { unNodeFilter :: JSVal }++instance PToJSVal NodeFilter where+  pToJSVal = unNodeFilter+  {-# INLINE pToJSVal #-}++instance PFromJSVal NodeFilter where+  pFromJSVal = NodeFilter+  {-# INLINE pFromJSVal #-}++instance ToJSVal NodeFilter where+  toJSVal = return . unNodeFilter+  {-# INLINE toJSVal #-}++instance FromJSVal NodeFilter where+  fromJSVal v = fmap NodeFilter <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . NodeFilter+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject NodeFilter where+  makeObject = makeObject . unNodeFilter++instance IsGObject NodeFilter where+  typeGType _ = gTypeNodeFilter+  {-# INLINE typeGType #-}++gTypeNodeFilter :: JSM GType+gTypeNodeFilter = GType . Object <$> jsg "NodeFilter"+#else+type IsNodeFilter o = NodeFilterClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.NodeIterator".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator Mozilla NodeIterator documentation>+newtype NodeIterator = NodeIterator { unNodeIterator :: JSVal }++instance PToJSVal NodeIterator where+  pToJSVal = unNodeIterator+  {-# INLINE pToJSVal #-}++instance PFromJSVal NodeIterator where+  pFromJSVal = NodeIterator+  {-# INLINE pFromJSVal #-}++instance ToJSVal NodeIterator where+  toJSVal = return . unNodeIterator+  {-# INLINE toJSVal #-}++instance FromJSVal NodeIterator where+  fromJSVal v = fmap NodeIterator <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . NodeIterator+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject NodeIterator where+  makeObject = makeObject . unNodeIterator++instance IsGObject NodeIterator where+  typeGType _ = gTypeNodeIterator+  {-# INLINE typeGType #-}++gTypeNodeIterator :: JSM GType+gTypeNodeIterator = GType . Object <$> jsg "NodeIterator"+#else+type IsNodeIterator o = NodeIteratorClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.NodeList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/NodeList Mozilla NodeList documentation>+newtype NodeList = NodeList { unNodeList :: JSVal }++instance PToJSVal NodeList where+  pToJSVal = unNodeList+  {-# INLINE pToJSVal #-}++instance PFromJSVal NodeList where+  pFromJSVal = NodeList+  {-# INLINE pFromJSVal #-}++instance ToJSVal NodeList where+  toJSVal = return . unNodeList+  {-# INLINE toJSVal #-}++instance FromJSVal NodeList where+  fromJSVal v = fmap NodeList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . NodeList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject NodeList where+  makeObject = makeObject . unNodeList++class IsGObject o => IsNodeList o+toNodeList :: IsNodeList o => o -> NodeList+toNodeList = NodeList . coerce++instance IsNodeList NodeList+instance IsGObject NodeList where+  typeGType _ = gTypeNodeList+  {-# INLINE typeGType #-}++gTypeNodeList :: JSM GType+gTypeNodeList = GType . Object <$> jsg "NodeList"+#else+type IsNodeList o = NodeListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Notification".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Notification Mozilla Notification documentation>+newtype Notification = Notification { unNotification :: JSVal }++instance PToJSVal Notification where+  pToJSVal = unNotification+  {-# INLINE pToJSVal #-}++instance PFromJSVal Notification where+  pFromJSVal = Notification+  {-# INLINE pFromJSVal #-}++instance ToJSVal Notification where+  toJSVal = return . unNotification+  {-# INLINE toJSVal #-}++instance FromJSVal Notification where+  fromJSVal v = fmap Notification <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Notification+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Notification where+  makeObject = makeObject . unNotification++instance IsEventTarget Notification+instance IsGObject Notification where+  typeGType _ = gTypeNotification+  {-# INLINE typeGType #-}++gTypeNotification :: JSM GType+gTypeNotification = GType . Object <$> jsg "Notification"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.NotificationCenter".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter Mozilla NotificationCenter documentation>+newtype NotificationCenter = NotificationCenter { unNotificationCenter :: JSVal }++instance PToJSVal NotificationCenter where+  pToJSVal = unNotificationCenter+  {-# INLINE pToJSVal #-}++instance PFromJSVal NotificationCenter where+  pFromJSVal = NotificationCenter+  {-# INLINE pFromJSVal #-}++instance ToJSVal NotificationCenter where+  toJSVal = return . unNotificationCenter+  {-# INLINE toJSVal #-}++instance FromJSVal NotificationCenter where+  fromJSVal v = fmap NotificationCenter <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . NotificationCenter+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject NotificationCenter where+  makeObject = makeObject . unNotificationCenter++instance IsGObject NotificationCenter where+  typeGType _ = gTypeNotificationCenter+  {-# INLINE typeGType #-}++gTypeNotificationCenter :: JSM GType+gTypeNotificationCenter = GType . Object <$> jsg "NotificationCenter"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESElementIndexUint".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESElementIndexUint Mozilla OESElementIndexUint documentation>+newtype OESElementIndexUint = OESElementIndexUint { unOESElementIndexUint :: JSVal }++instance PToJSVal OESElementIndexUint where+  pToJSVal = unOESElementIndexUint+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESElementIndexUint where+  pFromJSVal = OESElementIndexUint+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESElementIndexUint where+  toJSVal = return . unOESElementIndexUint+  {-# INLINE toJSVal #-}++instance FromJSVal OESElementIndexUint where+  fromJSVal v = fmap OESElementIndexUint <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESElementIndexUint+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESElementIndexUint where+  makeObject = makeObject . unOESElementIndexUint++instance IsGObject OESElementIndexUint where+  typeGType _ = gTypeOESElementIndexUint+  {-# INLINE typeGType #-}++gTypeOESElementIndexUint :: JSM GType+gTypeOESElementIndexUint = GType . Object <$> jsg "OESElementIndexUint"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESStandardDerivatives".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESStandardDerivatives Mozilla OESStandardDerivatives documentation>+newtype OESStandardDerivatives = OESStandardDerivatives { unOESStandardDerivatives :: JSVal }++instance PToJSVal OESStandardDerivatives where+  pToJSVal = unOESStandardDerivatives+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESStandardDerivatives where+  pFromJSVal = OESStandardDerivatives+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESStandardDerivatives where+  toJSVal = return . unOESStandardDerivatives+  {-# INLINE toJSVal #-}++instance FromJSVal OESStandardDerivatives where+  fromJSVal v = fmap OESStandardDerivatives <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESStandardDerivatives+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESStandardDerivatives where+  makeObject = makeObject . unOESStandardDerivatives++instance IsGObject OESStandardDerivatives where+  typeGType _ = gTypeOESStandardDerivatives+  {-# INLINE typeGType #-}++gTypeOESStandardDerivatives :: JSM GType+gTypeOESStandardDerivatives = GType . Object <$> jsg "OESStandardDerivatives"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESTextureFloat".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloat Mozilla OESTextureFloat documentation>+newtype OESTextureFloat = OESTextureFloat { unOESTextureFloat :: JSVal }++instance PToJSVal OESTextureFloat where+  pToJSVal = unOESTextureFloat+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESTextureFloat where+  pFromJSVal = OESTextureFloat+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESTextureFloat where+  toJSVal = return . unOESTextureFloat+  {-# INLINE toJSVal #-}++instance FromJSVal OESTextureFloat where+  fromJSVal v = fmap OESTextureFloat <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESTextureFloat+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESTextureFloat where+  makeObject = makeObject . unOESTextureFloat++instance IsGObject OESTextureFloat where+  typeGType _ = gTypeOESTextureFloat+  {-# INLINE typeGType #-}++gTypeOESTextureFloat :: JSM GType+gTypeOESTextureFloat = GType . Object <$> jsg "OESTextureFloat"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESTextureFloatLinear".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloatLinear Mozilla OESTextureFloatLinear documentation>+newtype OESTextureFloatLinear = OESTextureFloatLinear { unOESTextureFloatLinear :: JSVal }++instance PToJSVal OESTextureFloatLinear where+  pToJSVal = unOESTextureFloatLinear+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESTextureFloatLinear where+  pFromJSVal = OESTextureFloatLinear+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESTextureFloatLinear where+  toJSVal = return . unOESTextureFloatLinear+  {-# INLINE toJSVal #-}++instance FromJSVal OESTextureFloatLinear where+  fromJSVal v = fmap OESTextureFloatLinear <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESTextureFloatLinear+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESTextureFloatLinear where+  makeObject = makeObject . unOESTextureFloatLinear++instance IsGObject OESTextureFloatLinear where+  typeGType _ = gTypeOESTextureFloatLinear+  {-# INLINE typeGType #-}++gTypeOESTextureFloatLinear :: JSM GType+gTypeOESTextureFloatLinear = GType . Object <$> jsg "OESTextureFloatLinear"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESTextureHalfFloat".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloat Mozilla OESTextureHalfFloat documentation>+newtype OESTextureHalfFloat = OESTextureHalfFloat { unOESTextureHalfFloat :: JSVal }++instance PToJSVal OESTextureHalfFloat where+  pToJSVal = unOESTextureHalfFloat+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESTextureHalfFloat where+  pFromJSVal = OESTextureHalfFloat+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESTextureHalfFloat where+  toJSVal = return . unOESTextureHalfFloat+  {-# INLINE toJSVal #-}++instance FromJSVal OESTextureHalfFloat where+  fromJSVal v = fmap OESTextureHalfFloat <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESTextureHalfFloat+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESTextureHalfFloat where+  makeObject = makeObject . unOESTextureHalfFloat++instance IsGObject OESTextureHalfFloat where+  typeGType _ = gTypeOESTextureHalfFloat+  {-# INLINE typeGType #-}++gTypeOESTextureHalfFloat :: JSM GType+gTypeOESTextureHalfFloat = GType . Object <$> jsg "OESTextureHalfFloat"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESTextureHalfFloatLinear".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloatLinear Mozilla OESTextureHalfFloatLinear documentation>+newtype OESTextureHalfFloatLinear = OESTextureHalfFloatLinear { unOESTextureHalfFloatLinear :: JSVal }++instance PToJSVal OESTextureHalfFloatLinear where+  pToJSVal = unOESTextureHalfFloatLinear+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESTextureHalfFloatLinear where+  pFromJSVal = OESTextureHalfFloatLinear+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESTextureHalfFloatLinear where+  toJSVal = return . unOESTextureHalfFloatLinear+  {-# INLINE toJSVal #-}++instance FromJSVal OESTextureHalfFloatLinear where+  fromJSVal v = fmap OESTextureHalfFloatLinear <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESTextureHalfFloatLinear+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESTextureHalfFloatLinear where+  makeObject = makeObject . unOESTextureHalfFloatLinear++instance IsGObject OESTextureHalfFloatLinear where+  typeGType _ = gTypeOESTextureHalfFloatLinear+  {-# INLINE typeGType #-}++gTypeOESTextureHalfFloatLinear :: JSM GType+gTypeOESTextureHalfFloatLinear = GType . Object <$> jsg "OESTextureHalfFloatLinear"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OESVertexArrayObject".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject Mozilla OESVertexArrayObject documentation>+newtype OESVertexArrayObject = OESVertexArrayObject { unOESVertexArrayObject :: JSVal }++instance PToJSVal OESVertexArrayObject where+  pToJSVal = unOESVertexArrayObject+  {-# INLINE pToJSVal #-}++instance PFromJSVal OESVertexArrayObject where+  pFromJSVal = OESVertexArrayObject+  {-# INLINE pFromJSVal #-}++instance ToJSVal OESVertexArrayObject where+  toJSVal = return . unOESVertexArrayObject+  {-# INLINE toJSVal #-}++instance FromJSVal OESVertexArrayObject where+  fromJSVal v = fmap OESVertexArrayObject <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OESVertexArrayObject+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OESVertexArrayObject where+  makeObject = makeObject . unOESVertexArrayObject++instance IsGObject OESVertexArrayObject where+  typeGType _ = gTypeOESVertexArrayObject+  {-# INLINE typeGType #-}++gTypeOESVertexArrayObject :: JSM GType+gTypeOESVertexArrayObject = GType . Object <$> jsg "OESVertexArrayObject"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OfflineAudioCompletionEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent Mozilla OfflineAudioCompletionEvent documentation>+newtype OfflineAudioCompletionEvent = OfflineAudioCompletionEvent { unOfflineAudioCompletionEvent :: JSVal }++instance PToJSVal OfflineAudioCompletionEvent where+  pToJSVal = unOfflineAudioCompletionEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal OfflineAudioCompletionEvent where+  pFromJSVal = OfflineAudioCompletionEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal OfflineAudioCompletionEvent where+  toJSVal = return . unOfflineAudioCompletionEvent+  {-# INLINE toJSVal #-}++instance FromJSVal OfflineAudioCompletionEvent where+  fromJSVal v = fmap OfflineAudioCompletionEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OfflineAudioCompletionEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OfflineAudioCompletionEvent where+  makeObject = makeObject . unOfflineAudioCompletionEvent++instance IsEvent OfflineAudioCompletionEvent+instance IsGObject OfflineAudioCompletionEvent where+  typeGType _ = gTypeOfflineAudioCompletionEvent+  {-# INLINE typeGType #-}++gTypeOfflineAudioCompletionEvent :: JSM GType+gTypeOfflineAudioCompletionEvent = GType . Object <$> jsg "OfflineAudioCompletionEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OfflineAudioContext".+-- Base interface functions are in:+--+--     * "JSDOM.AudioContext"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext Mozilla OfflineAudioContext documentation>+newtype OfflineAudioContext = OfflineAudioContext { unOfflineAudioContext :: JSVal }++instance PToJSVal OfflineAudioContext where+  pToJSVal = unOfflineAudioContext+  {-# INLINE pToJSVal #-}++instance PFromJSVal OfflineAudioContext where+  pFromJSVal = OfflineAudioContext+  {-# INLINE pFromJSVal #-}++instance ToJSVal OfflineAudioContext where+  toJSVal = return . unOfflineAudioContext+  {-# INLINE toJSVal #-}++instance FromJSVal OfflineAudioContext where+  fromJSVal v = fmap OfflineAudioContext <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OfflineAudioContext+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OfflineAudioContext where+  makeObject = makeObject . unOfflineAudioContext++instance IsAudioContext OfflineAudioContext+instance IsEventTarget OfflineAudioContext+instance IsGObject OfflineAudioContext where+  typeGType _ = gTypeOfflineAudioContext+  {-# INLINE typeGType #-}++gTypeOfflineAudioContext :: JSM GType+gTypeOfflineAudioContext = GType . Object <$> jsg "OfflineAudioContext"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OscillatorNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode Mozilla OscillatorNode documentation>+newtype OscillatorNode = OscillatorNode { unOscillatorNode :: JSVal }++instance PToJSVal OscillatorNode where+  pToJSVal = unOscillatorNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal OscillatorNode where+  pFromJSVal = OscillatorNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal OscillatorNode where+  toJSVal = return . unOscillatorNode+  {-# INLINE toJSVal #-}++instance FromJSVal OscillatorNode where+  fromJSVal v = fmap OscillatorNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OscillatorNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OscillatorNode where+  makeObject = makeObject . unOscillatorNode++instance IsAudioNode OscillatorNode+instance IsEventTarget OscillatorNode+instance IsGObject OscillatorNode where+  typeGType _ = gTypeOscillatorNode+  {-# INLINE typeGType #-}++gTypeOscillatorNode :: JSM GType+gTypeOscillatorNode = GType . Object <$> jsg "OscillatorNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.OverflowEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent Mozilla OverflowEvent documentation>+newtype OverflowEvent = OverflowEvent { unOverflowEvent :: JSVal }++instance PToJSVal OverflowEvent where+  pToJSVal = unOverflowEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal OverflowEvent where+  pFromJSVal = OverflowEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal OverflowEvent where+  toJSVal = return . unOverflowEvent+  {-# INLINE toJSVal #-}++instance FromJSVal OverflowEvent where+  fromJSVal v = fmap OverflowEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . OverflowEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject OverflowEvent where+  makeObject = makeObject . unOverflowEvent++instance IsEvent OverflowEvent+instance IsGObject OverflowEvent where+  typeGType _ = gTypeOverflowEvent+  {-# INLINE typeGType #-}++gTypeOverflowEvent :: JSM GType+gTypeOverflowEvent = GType . Object <$> jsg "OverflowEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PageTransitionEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent Mozilla PageTransitionEvent documentation>+newtype PageTransitionEvent = PageTransitionEvent { unPageTransitionEvent :: JSVal }++instance PToJSVal PageTransitionEvent where+  pToJSVal = unPageTransitionEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal PageTransitionEvent where+  pFromJSVal = PageTransitionEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal PageTransitionEvent where+  toJSVal = return . unPageTransitionEvent+  {-# INLINE toJSVal #-}++instance FromJSVal PageTransitionEvent where+  fromJSVal v = fmap PageTransitionEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PageTransitionEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PageTransitionEvent where+  makeObject = makeObject . unPageTransitionEvent++instance IsEvent PageTransitionEvent+instance IsGObject PageTransitionEvent where+  typeGType _ = gTypePageTransitionEvent+  {-# INLINE typeGType #-}++gTypePageTransitionEvent :: JSM GType+gTypePageTransitionEvent = GType . Object <$> jsg "PageTransitionEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PannerNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode Mozilla webkitAudioPannerNode documentation>+newtype PannerNode = PannerNode { unPannerNode :: JSVal }++instance PToJSVal PannerNode where+  pToJSVal = unPannerNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal PannerNode where+  pFromJSVal = PannerNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal PannerNode where+  toJSVal = return . unPannerNode+  {-# INLINE toJSVal #-}++instance FromJSVal PannerNode where+  fromJSVal v = fmap PannerNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PannerNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PannerNode where+  makeObject = makeObject . unPannerNode++instance IsAudioNode PannerNode+instance IsEventTarget PannerNode+instance IsGObject PannerNode where+  typeGType _ = gTypePannerNode+  {-# INLINE typeGType #-}++gTypePannerNode :: JSM GType+gTypePannerNode = GType . Object <$> jsg "webkitAudioPannerNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Path2D".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Path2D Mozilla Path2D documentation>+newtype Path2D = Path2D { unPath2D :: JSVal }++instance PToJSVal Path2D where+  pToJSVal = unPath2D+  {-# INLINE pToJSVal #-}++instance PFromJSVal Path2D where+  pFromJSVal = Path2D+  {-# INLINE pFromJSVal #-}++instance ToJSVal Path2D where+  toJSVal = return . unPath2D+  {-# INLINE toJSVal #-}++instance FromJSVal Path2D where+  fromJSVal v = fmap Path2D <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Path2D+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Path2D where+  makeObject = makeObject . unPath2D++instance IsGObject Path2D where+  typeGType _ = gTypePath2D+  {-# INLINE typeGType #-}++gTypePath2D :: JSM GType+gTypePath2D = GType . Object <$> jsg "Path2D"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Performance".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Performance Mozilla Performance documentation>+newtype Performance = Performance { unPerformance :: JSVal }++instance PToJSVal Performance where+  pToJSVal = unPerformance+  {-# INLINE pToJSVal #-}++instance PFromJSVal Performance where+  pFromJSVal = Performance+  {-# INLINE pFromJSVal #-}++instance ToJSVal Performance where+  toJSVal = return . unPerformance+  {-# INLINE toJSVal #-}++instance FromJSVal Performance where+  fromJSVal v = fmap Performance <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Performance+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Performance where+  makeObject = makeObject . unPerformance++instance IsEventTarget Performance+instance IsGObject Performance where+  typeGType _ = gTypePerformance+  {-# INLINE typeGType #-}++gTypePerformance :: JSM GType+gTypePerformance = GType . Object <$> jsg "Performance"+#else+#ifndef USE_OLD_WEBKIT+type IsPerformance o = PerformanceClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceEntry".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry Mozilla PerformanceEntry documentation>+newtype PerformanceEntry = PerformanceEntry { unPerformanceEntry :: JSVal }++instance PToJSVal PerformanceEntry where+  pToJSVal = unPerformanceEntry+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceEntry where+  pFromJSVal = PerformanceEntry+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceEntry where+  toJSVal = return . unPerformanceEntry+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceEntry where+  fromJSVal v = fmap PerformanceEntry <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceEntry+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceEntry where+  makeObject = makeObject . unPerformanceEntry++class IsGObject o => IsPerformanceEntry o+toPerformanceEntry :: IsPerformanceEntry o => o -> PerformanceEntry+toPerformanceEntry = PerformanceEntry . coerce++instance IsPerformanceEntry PerformanceEntry+instance IsGObject PerformanceEntry where+  typeGType _ = gTypePerformanceEntry+  {-# INLINE typeGType #-}++gTypePerformanceEntry :: JSM GType+gTypePerformanceEntry = GType . Object <$> jsg "PerformanceEntry"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceEntryList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList Mozilla PerformanceEntryList documentation>+newtype PerformanceEntryList = PerformanceEntryList { unPerformanceEntryList :: JSVal }++instance PToJSVal PerformanceEntryList where+  pToJSVal = unPerformanceEntryList+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceEntryList where+  pFromJSVal = PerformanceEntryList+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceEntryList where+  toJSVal = return . unPerformanceEntryList+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceEntryList where+  fromJSVal v = fmap PerformanceEntryList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceEntryList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceEntryList where+  makeObject = makeObject . unPerformanceEntryList++instance IsGObject PerformanceEntryList where+  typeGType _ = gTypePerformanceEntryList+  {-# INLINE typeGType #-}++gTypePerformanceEntryList :: JSM GType+gTypePerformanceEntryList = GType . Object <$> jsg "PerformanceEntryList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceMark".+-- Base interface functions are in:+--+--     * "JSDOM.PerformanceEntry"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMark Mozilla PerformanceMark documentation>+newtype PerformanceMark = PerformanceMark { unPerformanceMark :: JSVal }++instance PToJSVal PerformanceMark where+  pToJSVal = unPerformanceMark+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceMark where+  pFromJSVal = PerformanceMark+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceMark where+  toJSVal = return . unPerformanceMark+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceMark where+  fromJSVal v = fmap PerformanceMark <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceMark+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceMark where+  makeObject = makeObject . unPerformanceMark++instance IsPerformanceEntry PerformanceMark+instance IsGObject PerformanceMark where+  typeGType _ = gTypePerformanceMark+  {-# INLINE typeGType #-}++gTypePerformanceMark :: JSM GType+gTypePerformanceMark = GType . Object <$> jsg "PerformanceMark"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceMeasure".+-- Base interface functions are in:+--+--     * "JSDOM.PerformanceEntry"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMeasure Mozilla PerformanceMeasure documentation>+newtype PerformanceMeasure = PerformanceMeasure { unPerformanceMeasure :: JSVal }++instance PToJSVal PerformanceMeasure where+  pToJSVal = unPerformanceMeasure+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceMeasure where+  pFromJSVal = PerformanceMeasure+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceMeasure where+  toJSVal = return . unPerformanceMeasure+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceMeasure where+  fromJSVal v = fmap PerformanceMeasure <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceMeasure+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceMeasure where+  makeObject = makeObject . unPerformanceMeasure++instance IsPerformanceEntry PerformanceMeasure+instance IsGObject PerformanceMeasure where+  typeGType _ = gTypePerformanceMeasure+  {-# INLINE typeGType #-}++gTypePerformanceMeasure :: JSM GType+gTypePerformanceMeasure = GType . Object <$> jsg "PerformanceMeasure"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceNavigation".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation Mozilla PerformanceNavigation documentation>+newtype PerformanceNavigation = PerformanceNavigation { unPerformanceNavigation :: JSVal }++instance PToJSVal PerformanceNavigation where+  pToJSVal = unPerformanceNavigation+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceNavigation where+  pFromJSVal = PerformanceNavigation+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceNavigation where+  toJSVal = return . unPerformanceNavigation+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceNavigation where+  fromJSVal v = fmap PerformanceNavigation <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceNavigation+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceNavigation where+  makeObject = makeObject . unPerformanceNavigation++instance IsGObject PerformanceNavigation where+  typeGType _ = gTypePerformanceNavigation+  {-# INLINE typeGType #-}++gTypePerformanceNavigation :: JSM GType+gTypePerformanceNavigation = GType . Object <$> jsg "PerformanceNavigation"+#else+#ifndef USE_OLD_WEBKIT+type IsPerformanceNavigation o = PerformanceNavigationClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceResourceTiming".+-- Base interface functions are in:+--+--     * "JSDOM.PerformanceEntry"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming Mozilla PerformanceResourceTiming documentation>+newtype PerformanceResourceTiming = PerformanceResourceTiming { unPerformanceResourceTiming :: JSVal }++instance PToJSVal PerformanceResourceTiming where+  pToJSVal = unPerformanceResourceTiming+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceResourceTiming where+  pFromJSVal = PerformanceResourceTiming+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceResourceTiming where+  toJSVal = return . unPerformanceResourceTiming+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceResourceTiming where+  fromJSVal v = fmap PerformanceResourceTiming <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceResourceTiming+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceResourceTiming where+  makeObject = makeObject . unPerformanceResourceTiming++instance IsPerformanceEntry PerformanceResourceTiming+instance IsGObject PerformanceResourceTiming where+  typeGType _ = gTypePerformanceResourceTiming+  {-# INLINE typeGType #-}++gTypePerformanceResourceTiming :: JSM GType+gTypePerformanceResourceTiming = GType . Object <$> jsg "PerformanceResourceTiming"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PerformanceTiming".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming Mozilla PerformanceTiming documentation>+newtype PerformanceTiming = PerformanceTiming { unPerformanceTiming :: JSVal }++instance PToJSVal PerformanceTiming where+  pToJSVal = unPerformanceTiming+  {-# INLINE pToJSVal #-}++instance PFromJSVal PerformanceTiming where+  pFromJSVal = PerformanceTiming+  {-# INLINE pFromJSVal #-}++instance ToJSVal PerformanceTiming where+  toJSVal = return . unPerformanceTiming+  {-# INLINE toJSVal #-}++instance FromJSVal PerformanceTiming where+  fromJSVal v = fmap PerformanceTiming <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PerformanceTiming+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PerformanceTiming where+  makeObject = makeObject . unPerformanceTiming++instance IsGObject PerformanceTiming where+  typeGType _ = gTypePerformanceTiming+  {-# INLINE typeGType #-}++gTypePerformanceTiming :: JSM GType+gTypePerformanceTiming = GType . Object <$> jsg "PerformanceTiming"+#else+#ifndef USE_OLD_WEBKIT+type IsPerformanceTiming o = PerformanceTimingClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PeriodicWave".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PeriodicWave Mozilla PeriodicWave documentation>+newtype PeriodicWave = PeriodicWave { unPeriodicWave :: JSVal }++instance PToJSVal PeriodicWave where+  pToJSVal = unPeriodicWave+  {-# INLINE pToJSVal #-}++instance PFromJSVal PeriodicWave where+  pFromJSVal = PeriodicWave+  {-# INLINE pFromJSVal #-}++instance ToJSVal PeriodicWave where+  toJSVal = return . unPeriodicWave+  {-# INLINE toJSVal #-}++instance FromJSVal PeriodicWave where+  fromJSVal v = fmap PeriodicWave <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PeriodicWave+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PeriodicWave where+  makeObject = makeObject . unPeriodicWave++instance IsGObject PeriodicWave where+  typeGType _ = gTypePeriodicWave+  {-# INLINE typeGType #-}++gTypePeriodicWave :: JSM GType+gTypePeriodicWave = GType . Object <$> jsg "PeriodicWave"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Plugin".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Plugin Mozilla Plugin documentation>+newtype Plugin = Plugin { unPlugin :: JSVal }++instance PToJSVal Plugin where+  pToJSVal = unPlugin+  {-# INLINE pToJSVal #-}++instance PFromJSVal Plugin where+  pFromJSVal = Plugin+  {-# INLINE pFromJSVal #-}++instance ToJSVal Plugin where+  toJSVal = return . unPlugin+  {-# INLINE toJSVal #-}++instance FromJSVal Plugin where+  fromJSVal v = fmap Plugin <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Plugin+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Plugin where+  makeObject = makeObject . unPlugin++instance IsGObject Plugin where+  typeGType _ = gTypePlugin+  {-# INLINE typeGType #-}++gTypePlugin :: JSM GType+gTypePlugin = GType . Object <$> jsg "Plugin"+#else+type IsPlugin o = PluginClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PluginArray".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray Mozilla PluginArray documentation>+newtype PluginArray = PluginArray { unPluginArray :: JSVal }++instance PToJSVal PluginArray where+  pToJSVal = unPluginArray+  {-# INLINE pToJSVal #-}++instance PFromJSVal PluginArray where+  pFromJSVal = PluginArray+  {-# INLINE pFromJSVal #-}++instance ToJSVal PluginArray where+  toJSVal = return . unPluginArray+  {-# INLINE toJSVal #-}++instance FromJSVal PluginArray where+  fromJSVal v = fmap PluginArray <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PluginArray+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PluginArray where+  makeObject = makeObject . unPluginArray++instance IsGObject PluginArray where+  typeGType _ = gTypePluginArray+  {-# INLINE typeGType #-}++gTypePluginArray :: JSM GType+gTypePluginArray = GType . Object <$> jsg "PluginArray"+#else+type IsPluginArray o = PluginArrayClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PopStateEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent Mozilla PopStateEvent documentation>+newtype PopStateEvent = PopStateEvent { unPopStateEvent :: JSVal }++instance PToJSVal PopStateEvent where+  pToJSVal = unPopStateEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal PopStateEvent where+  pFromJSVal = PopStateEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal PopStateEvent where+  toJSVal = return . unPopStateEvent+  {-# INLINE toJSVal #-}++instance FromJSVal PopStateEvent where+  fromJSVal v = fmap PopStateEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PopStateEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PopStateEvent where+  makeObject = makeObject . unPopStateEvent++instance IsEvent PopStateEvent+instance IsGObject PopStateEvent where+  typeGType _ = gTypePopStateEvent+  {-# INLINE typeGType #-}++gTypePopStateEvent :: JSM GType+gTypePopStateEvent = GType . Object <$> jsg "PopStateEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.PositionError".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/PositionError Mozilla PositionError documentation>+newtype PositionError = PositionError { unPositionError :: JSVal }++instance PToJSVal PositionError where+  pToJSVal = unPositionError+  {-# INLINE pToJSVal #-}++instance PFromJSVal PositionError where+  pFromJSVal = PositionError+  {-# INLINE pFromJSVal #-}++instance ToJSVal PositionError where+  toJSVal = return . unPositionError+  {-# INLINE toJSVal #-}++instance FromJSVal PositionError where+  fromJSVal v = fmap PositionError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . PositionError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject PositionError where+  makeObject = makeObject . unPositionError++instance IsGObject PositionError where+  typeGType _ = gTypePositionError+  {-# INLINE typeGType #-}++gTypePositionError :: JSM GType+gTypePositionError = GType . Object <$> jsg "PositionError"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ProcessingInstruction".+-- Base interface functions are in:+--+--     * "JSDOM.CharacterData"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction Mozilla ProcessingInstruction documentation>+newtype ProcessingInstruction = ProcessingInstruction { unProcessingInstruction :: JSVal }++instance PToJSVal ProcessingInstruction where+  pToJSVal = unProcessingInstruction+  {-# INLINE pToJSVal #-}++instance PFromJSVal ProcessingInstruction where+  pFromJSVal = ProcessingInstruction+  {-# INLINE pFromJSVal #-}++instance ToJSVal ProcessingInstruction where+  toJSVal = return . unProcessingInstruction+  {-# INLINE toJSVal #-}++instance FromJSVal ProcessingInstruction where+  fromJSVal v = fmap ProcessingInstruction <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ProcessingInstruction+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ProcessingInstruction where+  makeObject = makeObject . unProcessingInstruction++instance IsCharacterData ProcessingInstruction+instance IsNode ProcessingInstruction+instance IsEventTarget ProcessingInstruction+instance IsGObject ProcessingInstruction where+  typeGType _ = gTypeProcessingInstruction+  {-# INLINE typeGType #-}++gTypeProcessingInstruction :: JSM GType+gTypeProcessingInstruction = GType . Object <$> jsg "ProcessingInstruction"+#else+type IsProcessingInstruction o = ProcessingInstructionClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ProgressEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent Mozilla ProgressEvent documentation>+newtype ProgressEvent = ProgressEvent { unProgressEvent :: JSVal }++instance PToJSVal ProgressEvent where+  pToJSVal = unProgressEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal ProgressEvent where+  pFromJSVal = ProgressEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal ProgressEvent where+  toJSVal = return . unProgressEvent+  {-# INLINE toJSVal #-}++instance FromJSVal ProgressEvent where+  fromJSVal v = fmap ProgressEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ProgressEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ProgressEvent where+  makeObject = makeObject . unProgressEvent++class IsEvent o => IsProgressEvent o+toProgressEvent :: IsProgressEvent o => o -> ProgressEvent+toProgressEvent = ProgressEvent . coerce++instance IsProgressEvent ProgressEvent+instance IsEvent ProgressEvent+instance IsGObject ProgressEvent where+  typeGType _ = gTypeProgressEvent+  {-# INLINE typeGType #-}++gTypeProgressEvent :: JSM GType+gTypeProgressEvent = GType . Object <$> jsg "ProgressEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.QuickTimePluginReplacement".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement Mozilla QuickTimePluginReplacement documentation>+newtype QuickTimePluginReplacement = QuickTimePluginReplacement { unQuickTimePluginReplacement :: JSVal }++instance PToJSVal QuickTimePluginReplacement where+  pToJSVal = unQuickTimePluginReplacement+  {-# INLINE pToJSVal #-}++instance PFromJSVal QuickTimePluginReplacement where+  pFromJSVal = QuickTimePluginReplacement+  {-# INLINE pFromJSVal #-}++instance ToJSVal QuickTimePluginReplacement where+  toJSVal = return . unQuickTimePluginReplacement+  {-# INLINE toJSVal #-}++instance FromJSVal QuickTimePluginReplacement where+  fromJSVal v = fmap QuickTimePluginReplacement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . QuickTimePluginReplacement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject QuickTimePluginReplacement where+  makeObject = makeObject . unQuickTimePluginReplacement++instance IsGObject QuickTimePluginReplacement where+  typeGType _ = gTypeQuickTimePluginReplacement+  {-# INLINE typeGType #-}++gTypeQuickTimePluginReplacement :: JSM GType+gTypeQuickTimePluginReplacement = GType . Object <$> jsg "QuickTimePluginReplacement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RGBColor".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor Mozilla RGBColor documentation>+newtype RGBColor = RGBColor { unRGBColor :: JSVal }++instance PToJSVal RGBColor where+  pToJSVal = unRGBColor+  {-# INLINE pToJSVal #-}++instance PFromJSVal RGBColor where+  pFromJSVal = RGBColor+  {-# INLINE pFromJSVal #-}++instance ToJSVal RGBColor where+  toJSVal = return . unRGBColor+  {-# INLINE toJSVal #-}++instance FromJSVal RGBColor where+  fromJSVal v = fmap RGBColor <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RGBColor+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RGBColor where+  makeObject = makeObject . unRGBColor++instance IsGObject RGBColor where+  typeGType _ = gTypeRGBColor+  {-# INLINE typeGType #-}++gTypeRGBColor :: JSM GType+gTypeRGBColor = GType . Object <$> jsg "RGBColor"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCConfiguration".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration Mozilla RTCConfiguration documentation>+newtype RTCConfiguration = RTCConfiguration { unRTCConfiguration :: JSVal }++instance PToJSVal RTCConfiguration where+  pToJSVal = unRTCConfiguration+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCConfiguration where+  pFromJSVal = RTCConfiguration+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCConfiguration where+  toJSVal = return . unRTCConfiguration+  {-# INLINE toJSVal #-}++instance FromJSVal RTCConfiguration where+  fromJSVal v = fmap RTCConfiguration <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCConfiguration+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCConfiguration where+  makeObject = makeObject . unRTCConfiguration++instance IsGObject RTCConfiguration where+  typeGType _ = gTypeRTCConfiguration+  {-# INLINE typeGType #-}++gTypeRTCConfiguration :: JSM GType+gTypeRTCConfiguration = GType . Object <$> jsg "RTCConfiguration"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCDTMFSender".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender Mozilla RTCDTMFSender documentation>+newtype RTCDTMFSender = RTCDTMFSender { unRTCDTMFSender :: JSVal }++instance PToJSVal RTCDTMFSender where+  pToJSVal = unRTCDTMFSender+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCDTMFSender where+  pFromJSVal = RTCDTMFSender+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCDTMFSender where+  toJSVal = return . unRTCDTMFSender+  {-# INLINE toJSVal #-}++instance FromJSVal RTCDTMFSender where+  fromJSVal v = fmap RTCDTMFSender <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCDTMFSender+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCDTMFSender where+  makeObject = makeObject . unRTCDTMFSender++instance IsEventTarget RTCDTMFSender+instance IsGObject RTCDTMFSender where+  typeGType _ = gTypeRTCDTMFSender+  {-# INLINE typeGType #-}++gTypeRTCDTMFSender :: JSM GType+gTypeRTCDTMFSender = GType . Object <$> jsg "RTCDTMFSender"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCDTMFToneChangeEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFToneChangeEvent Mozilla RTCDTMFToneChangeEvent documentation>+newtype RTCDTMFToneChangeEvent = RTCDTMFToneChangeEvent { unRTCDTMFToneChangeEvent :: JSVal }++instance PToJSVal RTCDTMFToneChangeEvent where+  pToJSVal = unRTCDTMFToneChangeEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCDTMFToneChangeEvent where+  pFromJSVal = RTCDTMFToneChangeEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCDTMFToneChangeEvent where+  toJSVal = return . unRTCDTMFToneChangeEvent+  {-# INLINE toJSVal #-}++instance FromJSVal RTCDTMFToneChangeEvent where+  fromJSVal v = fmap RTCDTMFToneChangeEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCDTMFToneChangeEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCDTMFToneChangeEvent where+  makeObject = makeObject . unRTCDTMFToneChangeEvent++instance IsEvent RTCDTMFToneChangeEvent+instance IsGObject RTCDTMFToneChangeEvent where+  typeGType _ = gTypeRTCDTMFToneChangeEvent+  {-# INLINE typeGType #-}++gTypeRTCDTMFToneChangeEvent :: JSM GType+gTypeRTCDTMFToneChangeEvent = GType . Object <$> jsg "RTCDTMFToneChangeEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCDataChannel".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel Mozilla RTCDataChannel documentation>+newtype RTCDataChannel = RTCDataChannel { unRTCDataChannel :: JSVal }++instance PToJSVal RTCDataChannel where+  pToJSVal = unRTCDataChannel+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCDataChannel where+  pFromJSVal = RTCDataChannel+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCDataChannel where+  toJSVal = return . unRTCDataChannel+  {-# INLINE toJSVal #-}++instance FromJSVal RTCDataChannel where+  fromJSVal v = fmap RTCDataChannel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCDataChannel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCDataChannel where+  makeObject = makeObject . unRTCDataChannel++instance IsEventTarget RTCDataChannel+instance IsGObject RTCDataChannel where+  typeGType _ = gTypeRTCDataChannel+  {-# INLINE typeGType #-}++gTypeRTCDataChannel :: JSM GType+gTypeRTCDataChannel = GType . Object <$> jsg "RTCDataChannel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCDataChannelEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent Mozilla RTCDataChannelEvent documentation>+newtype RTCDataChannelEvent = RTCDataChannelEvent { unRTCDataChannelEvent :: JSVal }++instance PToJSVal RTCDataChannelEvent where+  pToJSVal = unRTCDataChannelEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCDataChannelEvent where+  pFromJSVal = RTCDataChannelEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCDataChannelEvent where+  toJSVal = return . unRTCDataChannelEvent+  {-# INLINE toJSVal #-}++instance FromJSVal RTCDataChannelEvent where+  fromJSVal v = fmap RTCDataChannelEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCDataChannelEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCDataChannelEvent where+  makeObject = makeObject . unRTCDataChannelEvent++instance IsEvent RTCDataChannelEvent+instance IsGObject RTCDataChannelEvent where+  typeGType _ = gTypeRTCDataChannelEvent+  {-# INLINE typeGType #-}++gTypeRTCDataChannelEvent :: JSM GType+gTypeRTCDataChannelEvent = GType . Object <$> jsg "RTCDataChannelEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCIceCandidate".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate Mozilla RTCIceCandidate documentation>+newtype RTCIceCandidate = RTCIceCandidate { unRTCIceCandidate :: JSVal }++instance PToJSVal RTCIceCandidate where+  pToJSVal = unRTCIceCandidate+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCIceCandidate where+  pFromJSVal = RTCIceCandidate+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCIceCandidate where+  toJSVal = return . unRTCIceCandidate+  {-# INLINE toJSVal #-}++instance FromJSVal RTCIceCandidate where+  fromJSVal v = fmap RTCIceCandidate <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCIceCandidate+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCIceCandidate where+  makeObject = makeObject . unRTCIceCandidate++instance IsGObject RTCIceCandidate where+  typeGType _ = gTypeRTCIceCandidate+  {-# INLINE typeGType #-}++gTypeRTCIceCandidate :: JSM GType+gTypeRTCIceCandidate = GType . Object <$> jsg "RTCIceCandidate"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCIceCandidateEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent Mozilla RTCIceCandidateEvent documentation>+newtype RTCIceCandidateEvent = RTCIceCandidateEvent { unRTCIceCandidateEvent :: JSVal }++instance PToJSVal RTCIceCandidateEvent where+  pToJSVal = unRTCIceCandidateEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCIceCandidateEvent where+  pFromJSVal = RTCIceCandidateEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCIceCandidateEvent where+  toJSVal = return . unRTCIceCandidateEvent+  {-# INLINE toJSVal #-}++instance FromJSVal RTCIceCandidateEvent where+  fromJSVal v = fmap RTCIceCandidateEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCIceCandidateEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCIceCandidateEvent where+  makeObject = makeObject . unRTCIceCandidateEvent++instance IsEvent RTCIceCandidateEvent+instance IsGObject RTCIceCandidateEvent where+  typeGType _ = gTypeRTCIceCandidateEvent+  {-# INLINE typeGType #-}++gTypeRTCIceCandidateEvent :: JSM GType+gTypeRTCIceCandidateEvent = GType . Object <$> jsg "RTCIceCandidateEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCIceServer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer Mozilla RTCIceServer documentation>+newtype RTCIceServer = RTCIceServer { unRTCIceServer :: JSVal }++instance PToJSVal RTCIceServer where+  pToJSVal = unRTCIceServer+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCIceServer where+  pFromJSVal = RTCIceServer+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCIceServer where+  toJSVal = return . unRTCIceServer+  {-# INLINE toJSVal #-}++instance FromJSVal RTCIceServer where+  fromJSVal v = fmap RTCIceServer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCIceServer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCIceServer where+  makeObject = makeObject . unRTCIceServer++instance IsGObject RTCIceServer where+  typeGType _ = gTypeRTCIceServer+  {-# INLINE typeGType #-}++gTypeRTCIceServer :: JSM GType+gTypeRTCIceServer = GType . Object <$> jsg "RTCIceServer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCPeerConnection".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection Mozilla webkitRTCPeerConnection documentation>+newtype RTCPeerConnection = RTCPeerConnection { unRTCPeerConnection :: JSVal }++instance PToJSVal RTCPeerConnection where+  pToJSVal = unRTCPeerConnection+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCPeerConnection where+  pFromJSVal = RTCPeerConnection+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCPeerConnection where+  toJSVal = return . unRTCPeerConnection+  {-# INLINE toJSVal #-}++instance FromJSVal RTCPeerConnection where+  fromJSVal v = fmap RTCPeerConnection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCPeerConnection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCPeerConnection where+  makeObject = makeObject . unRTCPeerConnection++instance IsEventTarget RTCPeerConnection+instance IsGObject RTCPeerConnection where+  typeGType _ = gTypeRTCPeerConnection+  {-# INLINE typeGType #-}++gTypeRTCPeerConnection :: JSM GType+gTypeRTCPeerConnection = GType . Object <$> jsg "webkitRTCPeerConnection"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCSessionDescription".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription Mozilla RTCSessionDescription documentation>+newtype RTCSessionDescription = RTCSessionDescription { unRTCSessionDescription :: JSVal }++instance PToJSVal RTCSessionDescription where+  pToJSVal = unRTCSessionDescription+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCSessionDescription where+  pFromJSVal = RTCSessionDescription+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCSessionDescription where+  toJSVal = return . unRTCSessionDescription+  {-# INLINE toJSVal #-}++instance FromJSVal RTCSessionDescription where+  fromJSVal v = fmap RTCSessionDescription <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCSessionDescription+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCSessionDescription where+  makeObject = makeObject . unRTCSessionDescription++instance IsGObject RTCSessionDescription where+  typeGType _ = gTypeRTCSessionDescription+  {-# INLINE typeGType #-}++gTypeRTCSessionDescription :: JSM GType+gTypeRTCSessionDescription = GType . Object <$> jsg "RTCSessionDescription"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCStatsReport".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport Mozilla RTCStatsReport documentation>+newtype RTCStatsReport = RTCStatsReport { unRTCStatsReport :: JSVal }++instance PToJSVal RTCStatsReport where+  pToJSVal = unRTCStatsReport+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCStatsReport where+  pFromJSVal = RTCStatsReport+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCStatsReport where+  toJSVal = return . unRTCStatsReport+  {-# INLINE toJSVal #-}++instance FromJSVal RTCStatsReport where+  fromJSVal v = fmap RTCStatsReport <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCStatsReport+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCStatsReport where+  makeObject = makeObject . unRTCStatsReport++instance IsGObject RTCStatsReport where+  typeGType _ = gTypeRTCStatsReport+  {-# INLINE typeGType #-}++gTypeRTCStatsReport :: JSM GType+gTypeRTCStatsReport = GType . Object <$> jsg "RTCStatsReport"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RTCStatsResponse".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse Mozilla RTCStatsResponse documentation>+newtype RTCStatsResponse = RTCStatsResponse { unRTCStatsResponse :: JSVal }++instance PToJSVal RTCStatsResponse where+  pToJSVal = unRTCStatsResponse+  {-# INLINE pToJSVal #-}++instance PFromJSVal RTCStatsResponse where+  pFromJSVal = RTCStatsResponse+  {-# INLINE pFromJSVal #-}++instance ToJSVal RTCStatsResponse where+  toJSVal = return . unRTCStatsResponse+  {-# INLINE toJSVal #-}++instance FromJSVal RTCStatsResponse where+  fromJSVal v = fmap RTCStatsResponse <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RTCStatsResponse+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RTCStatsResponse where+  makeObject = makeObject . unRTCStatsResponse++instance IsGObject RTCStatsResponse where+  typeGType _ = gTypeRTCStatsResponse+  {-# INLINE typeGType #-}++gTypeRTCStatsResponse :: JSM GType+gTypeRTCStatsResponse = GType . Object <$> jsg "RTCStatsResponse"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.RadioNodeList".+-- Base interface functions are in:+--+--     * "JSDOM.NodeList"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList Mozilla RadioNodeList documentation>+newtype RadioNodeList = RadioNodeList { unRadioNodeList :: JSVal }++instance PToJSVal RadioNodeList where+  pToJSVal = unRadioNodeList+  {-# INLINE pToJSVal #-}++instance PFromJSVal RadioNodeList where+  pFromJSVal = RadioNodeList+  {-# INLINE pFromJSVal #-}++instance ToJSVal RadioNodeList where+  toJSVal = return . unRadioNodeList+  {-# INLINE toJSVal #-}++instance FromJSVal RadioNodeList where+  fromJSVal v = fmap RadioNodeList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . RadioNodeList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject RadioNodeList where+  makeObject = makeObject . unRadioNodeList++instance IsNodeList RadioNodeList+instance IsGObject RadioNodeList where+  typeGType _ = gTypeRadioNodeList+  {-# INLINE typeGType #-}++gTypeRadioNodeList :: JSM GType+gTypeRadioNodeList = GType . Object <$> jsg "RadioNodeList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Range".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Range Mozilla Range documentation>+newtype Range = Range { unRange :: JSVal }++instance PToJSVal Range where+  pToJSVal = unRange+  {-# INLINE pToJSVal #-}++instance PFromJSVal Range where+  pFromJSVal = Range+  {-# INLINE pFromJSVal #-}++instance ToJSVal Range where+  toJSVal = return . unRange+  {-# INLINE toJSVal #-}++instance FromJSVal Range where+  fromJSVal v = fmap Range <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Range+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Range where+  makeObject = makeObject . unRange++instance IsGObject Range where+  typeGType _ = gTypeRange+  {-# INLINE typeGType #-}++gTypeRange :: JSM GType+gTypeRange = GType . Object <$> jsg "Range"+#else+type IsRange o = RangeClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ReadableStream".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream Mozilla ReadableStream documentation>+newtype ReadableStream = ReadableStream { unReadableStream :: JSVal }++instance PToJSVal ReadableStream where+  pToJSVal = unReadableStream+  {-# INLINE pToJSVal #-}++instance PFromJSVal ReadableStream where+  pFromJSVal = ReadableStream+  {-# INLINE pFromJSVal #-}++instance ToJSVal ReadableStream where+  toJSVal = return . unReadableStream+  {-# INLINE toJSVal #-}++instance FromJSVal ReadableStream where+  fromJSVal v = fmap ReadableStream <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ReadableStream+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ReadableStream where+  makeObject = makeObject . unReadableStream++instance IsGObject ReadableStream where+  typeGType _ = gTypeReadableStream+  {-# INLINE typeGType #-}++gTypeReadableStream :: JSM GType+gTypeReadableStream = GType . Object <$> jsg "ReadableStream"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Rect".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Rect Mozilla Rect documentation>+newtype Rect = Rect { unRect :: JSVal }++instance PToJSVal Rect where+  pToJSVal = unRect+  {-# INLINE pToJSVal #-}++instance PFromJSVal Rect where+  pFromJSVal = Rect+  {-# INLINE pFromJSVal #-}++instance ToJSVal Rect where+  toJSVal = return . unRect+  {-# INLINE toJSVal #-}++instance FromJSVal Rect where+  fromJSVal v = fmap Rect <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Rect+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Rect where+  makeObject = makeObject . unRect++instance IsGObject Rect where+  typeGType _ = gTypeRect+  {-# INLINE typeGType #-}++gTypeRect :: JSM GType+gTypeRect = GType . Object <$> jsg "Rect"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SQLError".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLError Mozilla SQLError documentation>+newtype SQLError = SQLError { unSQLError :: JSVal }++instance PToJSVal SQLError where+  pToJSVal = unSQLError+  {-# INLINE pToJSVal #-}++instance PFromJSVal SQLError where+  pFromJSVal = SQLError+  {-# INLINE pFromJSVal #-}++instance ToJSVal SQLError where+  toJSVal = return . unSQLError+  {-# INLINE toJSVal #-}++instance FromJSVal SQLError where+  fromJSVal v = fmap SQLError <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SQLError+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SQLError where+  makeObject = makeObject . unSQLError++instance IsGObject SQLError where+  typeGType _ = gTypeSQLError+  {-# INLINE typeGType #-}++gTypeSQLError :: JSM GType+gTypeSQLError = GType . Object <$> jsg "SQLError"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SQLResultSet".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet Mozilla SQLResultSet documentation>+newtype SQLResultSet = SQLResultSet { unSQLResultSet :: JSVal }++instance PToJSVal SQLResultSet where+  pToJSVal = unSQLResultSet+  {-# INLINE pToJSVal #-}++instance PFromJSVal SQLResultSet where+  pFromJSVal = SQLResultSet+  {-# INLINE pFromJSVal #-}++instance ToJSVal SQLResultSet where+  toJSVal = return . unSQLResultSet+  {-# INLINE toJSVal #-}++instance FromJSVal SQLResultSet where+  fromJSVal v = fmap SQLResultSet <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SQLResultSet+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SQLResultSet where+  makeObject = makeObject . unSQLResultSet++instance IsGObject SQLResultSet where+  typeGType _ = gTypeSQLResultSet+  {-# INLINE typeGType #-}++gTypeSQLResultSet :: JSM GType+gTypeSQLResultSet = GType . Object <$> jsg "SQLResultSet"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SQLResultSetRowList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList Mozilla SQLResultSetRowList documentation>+newtype SQLResultSetRowList = SQLResultSetRowList { unSQLResultSetRowList :: JSVal }++instance PToJSVal SQLResultSetRowList where+  pToJSVal = unSQLResultSetRowList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SQLResultSetRowList where+  pFromJSVal = SQLResultSetRowList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SQLResultSetRowList where+  toJSVal = return . unSQLResultSetRowList+  {-# INLINE toJSVal #-}++instance FromJSVal SQLResultSetRowList where+  fromJSVal v = fmap SQLResultSetRowList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SQLResultSetRowList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SQLResultSetRowList where+  makeObject = makeObject . unSQLResultSetRowList++instance IsGObject SQLResultSetRowList where+  typeGType _ = gTypeSQLResultSetRowList+  {-# INLINE typeGType #-}++gTypeSQLResultSetRowList :: JSM GType+gTypeSQLResultSetRowList = GType . Object <$> jsg "SQLResultSetRowList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SQLTransaction".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransaction Mozilla SQLTransaction documentation>+newtype SQLTransaction = SQLTransaction { unSQLTransaction :: JSVal }++instance PToJSVal SQLTransaction where+  pToJSVal = unSQLTransaction+  {-# INLINE pToJSVal #-}++instance PFromJSVal SQLTransaction where+  pFromJSVal = SQLTransaction+  {-# INLINE pFromJSVal #-}++instance ToJSVal SQLTransaction where+  toJSVal = return . unSQLTransaction+  {-# INLINE toJSVal #-}++instance FromJSVal SQLTransaction where+  fromJSVal v = fmap SQLTransaction <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SQLTransaction+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SQLTransaction where+  makeObject = makeObject . unSQLTransaction++instance IsGObject SQLTransaction where+  typeGType _ = gTypeSQLTransaction+  {-# INLINE typeGType #-}++gTypeSQLTransaction :: JSM GType+gTypeSQLTransaction = GType . Object <$> jsg "SQLTransaction"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement Mozilla SVGAElement documentation>+newtype SVGAElement = SVGAElement { unSVGAElement :: JSVal }++instance PToJSVal SVGAElement where+  pToJSVal = unSVGAElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAElement where+  pFromJSVal = SVGAElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAElement where+  toJSVal = return . unSVGAElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAElement where+  fromJSVal v = fmap SVGAElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAElement where+  makeObject = makeObject . unSVGAElement++instance IsSVGGraphicsElement SVGAElement+instance IsSVGElement SVGAElement+instance IsElement SVGAElement+instance IsNode SVGAElement+instance IsEventTarget SVGAElement+instance IsGObject SVGAElement where+  typeGType _ = gTypeSVGAElement+  {-# INLINE typeGType #-}++gTypeSVGAElement :: JSM GType+gTypeSVGAElement = GType . Object <$> jsg "SVGAElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAltGlyphDefElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphDefElement Mozilla SVGAltGlyphDefElement documentation>+newtype SVGAltGlyphDefElement = SVGAltGlyphDefElement { unSVGAltGlyphDefElement :: JSVal }++instance PToJSVal SVGAltGlyphDefElement where+  pToJSVal = unSVGAltGlyphDefElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAltGlyphDefElement where+  pFromJSVal = SVGAltGlyphDefElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAltGlyphDefElement where+  toJSVal = return . unSVGAltGlyphDefElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAltGlyphDefElement where+  fromJSVal v = fmap SVGAltGlyphDefElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAltGlyphDefElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAltGlyphDefElement where+  makeObject = makeObject . unSVGAltGlyphDefElement++instance IsSVGElement SVGAltGlyphDefElement+instance IsElement SVGAltGlyphDefElement+instance IsNode SVGAltGlyphDefElement+instance IsEventTarget SVGAltGlyphDefElement+instance IsGObject SVGAltGlyphDefElement where+  typeGType _ = gTypeSVGAltGlyphDefElement+  {-# INLINE typeGType #-}++gTypeSVGAltGlyphDefElement :: JSM GType+gTypeSVGAltGlyphDefElement = GType . Object <$> jsg "SVGAltGlyphDefElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAltGlyphElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGTextPositioningElement"+--     * "JSDOM.SVGTextContentElement"+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement Mozilla SVGAltGlyphElement documentation>+newtype SVGAltGlyphElement = SVGAltGlyphElement { unSVGAltGlyphElement :: JSVal }++instance PToJSVal SVGAltGlyphElement where+  pToJSVal = unSVGAltGlyphElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAltGlyphElement where+  pFromJSVal = SVGAltGlyphElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAltGlyphElement where+  toJSVal = return . unSVGAltGlyphElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAltGlyphElement where+  fromJSVal v = fmap SVGAltGlyphElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAltGlyphElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAltGlyphElement where+  makeObject = makeObject . unSVGAltGlyphElement++instance IsSVGTextPositioningElement SVGAltGlyphElement+instance IsSVGTextContentElement SVGAltGlyphElement+instance IsSVGGraphicsElement SVGAltGlyphElement+instance IsSVGElement SVGAltGlyphElement+instance IsElement SVGAltGlyphElement+instance IsNode SVGAltGlyphElement+instance IsEventTarget SVGAltGlyphElement+instance IsGObject SVGAltGlyphElement where+  typeGType _ = gTypeSVGAltGlyphElement+  {-# INLINE typeGType #-}++gTypeSVGAltGlyphElement :: JSM GType+gTypeSVGAltGlyphElement = GType . Object <$> jsg "SVGAltGlyphElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAltGlyphItemElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphItemElement Mozilla SVGAltGlyphItemElement documentation>+newtype SVGAltGlyphItemElement = SVGAltGlyphItemElement { unSVGAltGlyphItemElement :: JSVal }++instance PToJSVal SVGAltGlyphItemElement where+  pToJSVal = unSVGAltGlyphItemElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAltGlyphItemElement where+  pFromJSVal = SVGAltGlyphItemElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAltGlyphItemElement where+  toJSVal = return . unSVGAltGlyphItemElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAltGlyphItemElement where+  fromJSVal v = fmap SVGAltGlyphItemElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAltGlyphItemElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAltGlyphItemElement where+  makeObject = makeObject . unSVGAltGlyphItemElement++instance IsSVGElement SVGAltGlyphItemElement+instance IsElement SVGAltGlyphItemElement+instance IsNode SVGAltGlyphItemElement+instance IsEventTarget SVGAltGlyphItemElement+instance IsGObject SVGAltGlyphItemElement where+  typeGType _ = gTypeSVGAltGlyphItemElement+  {-# INLINE typeGType #-}++gTypeSVGAltGlyphItemElement :: JSM GType+gTypeSVGAltGlyphItemElement = GType . Object <$> jsg "SVGAltGlyphItemElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAngle".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle Mozilla SVGAngle documentation>+newtype SVGAngle = SVGAngle { unSVGAngle :: JSVal }++instance PToJSVal SVGAngle where+  pToJSVal = unSVGAngle+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAngle where+  pFromJSVal = SVGAngle+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAngle where+  toJSVal = return . unSVGAngle+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAngle where+  fromJSVal v = fmap SVGAngle <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAngle+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAngle where+  makeObject = makeObject . unSVGAngle++instance IsGObject SVGAngle where+  typeGType _ = gTypeSVGAngle+  {-# INLINE typeGType #-}++gTypeSVGAngle :: JSM GType+gTypeSVGAngle = GType . Object <$> jsg "SVGAngle"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimateColorElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGAnimationElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateColorElement Mozilla SVGAnimateColorElement documentation>+newtype SVGAnimateColorElement = SVGAnimateColorElement { unSVGAnimateColorElement :: JSVal }++instance PToJSVal SVGAnimateColorElement where+  pToJSVal = unSVGAnimateColorElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimateColorElement where+  pFromJSVal = SVGAnimateColorElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimateColorElement where+  toJSVal = return . unSVGAnimateColorElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimateColorElement where+  fromJSVal v = fmap SVGAnimateColorElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimateColorElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimateColorElement where+  makeObject = makeObject . unSVGAnimateColorElement++instance IsSVGAnimationElement SVGAnimateColorElement+instance IsSVGElement SVGAnimateColorElement+instance IsElement SVGAnimateColorElement+instance IsNode SVGAnimateColorElement+instance IsEventTarget SVGAnimateColorElement+instance IsGObject SVGAnimateColorElement where+  typeGType _ = gTypeSVGAnimateColorElement+  {-# INLINE typeGType #-}++gTypeSVGAnimateColorElement :: JSM GType+gTypeSVGAnimateColorElement = GType . Object <$> jsg "SVGAnimateColorElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimateElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGAnimationElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateElement Mozilla SVGAnimateElement documentation>+newtype SVGAnimateElement = SVGAnimateElement { unSVGAnimateElement :: JSVal }++instance PToJSVal SVGAnimateElement where+  pToJSVal = unSVGAnimateElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimateElement where+  pFromJSVal = SVGAnimateElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimateElement where+  toJSVal = return . unSVGAnimateElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimateElement where+  fromJSVal v = fmap SVGAnimateElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimateElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimateElement where+  makeObject = makeObject . unSVGAnimateElement++instance IsSVGAnimationElement SVGAnimateElement+instance IsSVGElement SVGAnimateElement+instance IsElement SVGAnimateElement+instance IsNode SVGAnimateElement+instance IsEventTarget SVGAnimateElement+instance IsGObject SVGAnimateElement where+  typeGType _ = gTypeSVGAnimateElement+  {-# INLINE typeGType #-}++gTypeSVGAnimateElement :: JSM GType+gTypeSVGAnimateElement = GType . Object <$> jsg "SVGAnimateElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimateMotionElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGAnimationElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateMotionElement Mozilla SVGAnimateMotionElement documentation>+newtype SVGAnimateMotionElement = SVGAnimateMotionElement { unSVGAnimateMotionElement :: JSVal }++instance PToJSVal SVGAnimateMotionElement where+  pToJSVal = unSVGAnimateMotionElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimateMotionElement where+  pFromJSVal = SVGAnimateMotionElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimateMotionElement where+  toJSVal = return . unSVGAnimateMotionElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimateMotionElement where+  fromJSVal v = fmap SVGAnimateMotionElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimateMotionElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimateMotionElement where+  makeObject = makeObject . unSVGAnimateMotionElement++instance IsSVGAnimationElement SVGAnimateMotionElement+instance IsSVGElement SVGAnimateMotionElement+instance IsElement SVGAnimateMotionElement+instance IsNode SVGAnimateMotionElement+instance IsEventTarget SVGAnimateMotionElement+instance IsGObject SVGAnimateMotionElement where+  typeGType _ = gTypeSVGAnimateMotionElement+  {-# INLINE typeGType #-}++gTypeSVGAnimateMotionElement :: JSM GType+gTypeSVGAnimateMotionElement = GType . Object <$> jsg "SVGAnimateMotionElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimateTransformElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGAnimationElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateTransformElement Mozilla SVGAnimateTransformElement documentation>+newtype SVGAnimateTransformElement = SVGAnimateTransformElement { unSVGAnimateTransformElement :: JSVal }++instance PToJSVal SVGAnimateTransformElement where+  pToJSVal = unSVGAnimateTransformElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimateTransformElement where+  pFromJSVal = SVGAnimateTransformElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimateTransformElement where+  toJSVal = return . unSVGAnimateTransformElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimateTransformElement where+  fromJSVal v = fmap SVGAnimateTransformElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimateTransformElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimateTransformElement where+  makeObject = makeObject . unSVGAnimateTransformElement++instance IsSVGAnimationElement SVGAnimateTransformElement+instance IsSVGElement SVGAnimateTransformElement+instance IsElement SVGAnimateTransformElement+instance IsNode SVGAnimateTransformElement+instance IsEventTarget SVGAnimateTransformElement+instance IsGObject SVGAnimateTransformElement where+  typeGType _ = gTypeSVGAnimateTransformElement+  {-# INLINE typeGType #-}++gTypeSVGAnimateTransformElement :: JSM GType+gTypeSVGAnimateTransformElement = GType . Object <$> jsg "SVGAnimateTransformElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedAngle".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle Mozilla SVGAnimatedAngle documentation>+newtype SVGAnimatedAngle = SVGAnimatedAngle { unSVGAnimatedAngle :: JSVal }++instance PToJSVal SVGAnimatedAngle where+  pToJSVal = unSVGAnimatedAngle+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedAngle where+  pFromJSVal = SVGAnimatedAngle+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedAngle where+  toJSVal = return . unSVGAnimatedAngle+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedAngle where+  fromJSVal v = fmap SVGAnimatedAngle <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedAngle+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedAngle where+  makeObject = makeObject . unSVGAnimatedAngle++instance IsGObject SVGAnimatedAngle where+  typeGType _ = gTypeSVGAnimatedAngle+  {-# INLINE typeGType #-}++gTypeSVGAnimatedAngle :: JSM GType+gTypeSVGAnimatedAngle = GType . Object <$> jsg "SVGAnimatedAngle"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedBoolean".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean Mozilla SVGAnimatedBoolean documentation>+newtype SVGAnimatedBoolean = SVGAnimatedBoolean { unSVGAnimatedBoolean :: JSVal }++instance PToJSVal SVGAnimatedBoolean where+  pToJSVal = unSVGAnimatedBoolean+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedBoolean where+  pFromJSVal = SVGAnimatedBoolean+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedBoolean where+  toJSVal = return . unSVGAnimatedBoolean+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedBoolean where+  fromJSVal v = fmap SVGAnimatedBoolean <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedBoolean+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedBoolean where+  makeObject = makeObject . unSVGAnimatedBoolean++instance IsGObject SVGAnimatedBoolean where+  typeGType _ = gTypeSVGAnimatedBoolean+  {-# INLINE typeGType #-}++gTypeSVGAnimatedBoolean :: JSM GType+gTypeSVGAnimatedBoolean = GType . Object <$> jsg "SVGAnimatedBoolean"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedEnumeration".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration Mozilla SVGAnimatedEnumeration documentation>+newtype SVGAnimatedEnumeration = SVGAnimatedEnumeration { unSVGAnimatedEnumeration :: JSVal }++instance PToJSVal SVGAnimatedEnumeration where+  pToJSVal = unSVGAnimatedEnumeration+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedEnumeration where+  pFromJSVal = SVGAnimatedEnumeration+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedEnumeration where+  toJSVal = return . unSVGAnimatedEnumeration+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedEnumeration where+  fromJSVal v = fmap SVGAnimatedEnumeration <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedEnumeration+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedEnumeration where+  makeObject = makeObject . unSVGAnimatedEnumeration++instance IsGObject SVGAnimatedEnumeration where+  typeGType _ = gTypeSVGAnimatedEnumeration+  {-# INLINE typeGType #-}++gTypeSVGAnimatedEnumeration :: JSM GType+gTypeSVGAnimatedEnumeration = GType . Object <$> jsg "SVGAnimatedEnumeration"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedInteger".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger Mozilla SVGAnimatedInteger documentation>+newtype SVGAnimatedInteger = SVGAnimatedInteger { unSVGAnimatedInteger :: JSVal }++instance PToJSVal SVGAnimatedInteger where+  pToJSVal = unSVGAnimatedInteger+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedInteger where+  pFromJSVal = SVGAnimatedInteger+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedInteger where+  toJSVal = return . unSVGAnimatedInteger+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedInteger where+  fromJSVal v = fmap SVGAnimatedInteger <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedInteger+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedInteger where+  makeObject = makeObject . unSVGAnimatedInteger++instance IsGObject SVGAnimatedInteger where+  typeGType _ = gTypeSVGAnimatedInteger+  {-# INLINE typeGType #-}++gTypeSVGAnimatedInteger :: JSM GType+gTypeSVGAnimatedInteger = GType . Object <$> jsg "SVGAnimatedInteger"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedLength".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength Mozilla SVGAnimatedLength documentation>+newtype SVGAnimatedLength = SVGAnimatedLength { unSVGAnimatedLength :: JSVal }++instance PToJSVal SVGAnimatedLength where+  pToJSVal = unSVGAnimatedLength+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedLength where+  pFromJSVal = SVGAnimatedLength+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedLength where+  toJSVal = return . unSVGAnimatedLength+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedLength where+  fromJSVal v = fmap SVGAnimatedLength <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedLength+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedLength where+  makeObject = makeObject . unSVGAnimatedLength++instance IsGObject SVGAnimatedLength where+  typeGType _ = gTypeSVGAnimatedLength+  {-# INLINE typeGType #-}++gTypeSVGAnimatedLength :: JSM GType+gTypeSVGAnimatedLength = GType . Object <$> jsg "SVGAnimatedLength"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedLengthList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList Mozilla SVGAnimatedLengthList documentation>+newtype SVGAnimatedLengthList = SVGAnimatedLengthList { unSVGAnimatedLengthList :: JSVal }++instance PToJSVal SVGAnimatedLengthList where+  pToJSVal = unSVGAnimatedLengthList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedLengthList where+  pFromJSVal = SVGAnimatedLengthList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedLengthList where+  toJSVal = return . unSVGAnimatedLengthList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedLengthList where+  fromJSVal v = fmap SVGAnimatedLengthList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedLengthList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedLengthList where+  makeObject = makeObject . unSVGAnimatedLengthList++instance IsGObject SVGAnimatedLengthList where+  typeGType _ = gTypeSVGAnimatedLengthList+  {-# INLINE typeGType #-}++gTypeSVGAnimatedLengthList :: JSM GType+gTypeSVGAnimatedLengthList = GType . Object <$> jsg "SVGAnimatedLengthList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedNumber".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber Mozilla SVGAnimatedNumber documentation>+newtype SVGAnimatedNumber = SVGAnimatedNumber { unSVGAnimatedNumber :: JSVal }++instance PToJSVal SVGAnimatedNumber where+  pToJSVal = unSVGAnimatedNumber+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedNumber where+  pFromJSVal = SVGAnimatedNumber+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedNumber where+  toJSVal = return . unSVGAnimatedNumber+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedNumber where+  fromJSVal v = fmap SVGAnimatedNumber <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedNumber+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedNumber where+  makeObject = makeObject . unSVGAnimatedNumber++instance IsGObject SVGAnimatedNumber where+  typeGType _ = gTypeSVGAnimatedNumber+  {-# INLINE typeGType #-}++gTypeSVGAnimatedNumber :: JSM GType+gTypeSVGAnimatedNumber = GType . Object <$> jsg "SVGAnimatedNumber"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedNumberList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList Mozilla SVGAnimatedNumberList documentation>+newtype SVGAnimatedNumberList = SVGAnimatedNumberList { unSVGAnimatedNumberList :: JSVal }++instance PToJSVal SVGAnimatedNumberList where+  pToJSVal = unSVGAnimatedNumberList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedNumberList where+  pFromJSVal = SVGAnimatedNumberList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedNumberList where+  toJSVal = return . unSVGAnimatedNumberList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedNumberList where+  fromJSVal v = fmap SVGAnimatedNumberList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedNumberList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedNumberList where+  makeObject = makeObject . unSVGAnimatedNumberList++instance IsGObject SVGAnimatedNumberList where+  typeGType _ = gTypeSVGAnimatedNumberList+  {-# INLINE typeGType #-}++gTypeSVGAnimatedNumberList :: JSM GType+gTypeSVGAnimatedNumberList = GType . Object <$> jsg "SVGAnimatedNumberList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedPreserveAspectRatio".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio Mozilla SVGAnimatedPreserveAspectRatio documentation>+newtype SVGAnimatedPreserveAspectRatio = SVGAnimatedPreserveAspectRatio { unSVGAnimatedPreserveAspectRatio :: JSVal }++instance PToJSVal SVGAnimatedPreserveAspectRatio where+  pToJSVal = unSVGAnimatedPreserveAspectRatio+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedPreserveAspectRatio where+  pFromJSVal = SVGAnimatedPreserveAspectRatio+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedPreserveAspectRatio where+  toJSVal = return . unSVGAnimatedPreserveAspectRatio+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedPreserveAspectRatio where+  fromJSVal v = fmap SVGAnimatedPreserveAspectRatio <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedPreserveAspectRatio+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedPreserveAspectRatio where+  makeObject = makeObject . unSVGAnimatedPreserveAspectRatio++instance IsGObject SVGAnimatedPreserveAspectRatio where+  typeGType _ = gTypeSVGAnimatedPreserveAspectRatio+  {-# INLINE typeGType #-}++gTypeSVGAnimatedPreserveAspectRatio :: JSM GType+gTypeSVGAnimatedPreserveAspectRatio = GType . Object <$> jsg "SVGAnimatedPreserveAspectRatio"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedRect".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect Mozilla SVGAnimatedRect documentation>+newtype SVGAnimatedRect = SVGAnimatedRect { unSVGAnimatedRect :: JSVal }++instance PToJSVal SVGAnimatedRect where+  pToJSVal = unSVGAnimatedRect+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedRect where+  pFromJSVal = SVGAnimatedRect+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedRect where+  toJSVal = return . unSVGAnimatedRect+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedRect where+  fromJSVal v = fmap SVGAnimatedRect <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedRect+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedRect where+  makeObject = makeObject . unSVGAnimatedRect++instance IsGObject SVGAnimatedRect where+  typeGType _ = gTypeSVGAnimatedRect+  {-# INLINE typeGType #-}++gTypeSVGAnimatedRect :: JSM GType+gTypeSVGAnimatedRect = GType . Object <$> jsg "SVGAnimatedRect"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedString".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString Mozilla SVGAnimatedString documentation>+newtype SVGAnimatedString = SVGAnimatedString { unSVGAnimatedString :: JSVal }++instance PToJSVal SVGAnimatedString where+  pToJSVal = unSVGAnimatedString+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedString where+  pFromJSVal = SVGAnimatedString+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedString where+  toJSVal = return . unSVGAnimatedString+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedString where+  fromJSVal v = fmap SVGAnimatedString <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedString+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedString where+  makeObject = makeObject . unSVGAnimatedString++instance IsGObject SVGAnimatedString where+  typeGType _ = gTypeSVGAnimatedString+  {-# INLINE typeGType #-}++gTypeSVGAnimatedString :: JSM GType+gTypeSVGAnimatedString = GType . Object <$> jsg "SVGAnimatedString"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimatedTransformList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList Mozilla SVGAnimatedTransformList documentation>+newtype SVGAnimatedTransformList = SVGAnimatedTransformList { unSVGAnimatedTransformList :: JSVal }++instance PToJSVal SVGAnimatedTransformList where+  pToJSVal = unSVGAnimatedTransformList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimatedTransformList where+  pFromJSVal = SVGAnimatedTransformList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimatedTransformList where+  toJSVal = return . unSVGAnimatedTransformList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimatedTransformList where+  fromJSVal v = fmap SVGAnimatedTransformList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimatedTransformList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimatedTransformList where+  makeObject = makeObject . unSVGAnimatedTransformList++instance IsGObject SVGAnimatedTransformList where+  typeGType _ = gTypeSVGAnimatedTransformList+  {-# INLINE typeGType #-}++gTypeSVGAnimatedTransformList :: JSM GType+gTypeSVGAnimatedTransformList = GType . Object <$> jsg "SVGAnimatedTransformList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGAnimationElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement Mozilla SVGAnimationElement documentation>+newtype SVGAnimationElement = SVGAnimationElement { unSVGAnimationElement :: JSVal }++instance PToJSVal SVGAnimationElement where+  pToJSVal = unSVGAnimationElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGAnimationElement where+  pFromJSVal = SVGAnimationElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGAnimationElement where+  toJSVal = return . unSVGAnimationElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGAnimationElement where+  fromJSVal v = fmap SVGAnimationElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGAnimationElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGAnimationElement where+  makeObject = makeObject . unSVGAnimationElement++class IsSVGElement o => IsSVGAnimationElement o+toSVGAnimationElement :: IsSVGAnimationElement o => o -> SVGAnimationElement+toSVGAnimationElement = SVGAnimationElement . coerce++instance IsSVGAnimationElement SVGAnimationElement+instance IsSVGElement SVGAnimationElement+instance IsElement SVGAnimationElement+instance IsNode SVGAnimationElement+instance IsEventTarget SVGAnimationElement+instance IsGObject SVGAnimationElement where+  typeGType _ = gTypeSVGAnimationElement+  {-# INLINE typeGType #-}++gTypeSVGAnimationElement :: JSM GType+gTypeSVGAnimationElement = GType . Object <$> jsg "SVGAnimationElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGCircleElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement Mozilla SVGCircleElement documentation>+newtype SVGCircleElement = SVGCircleElement { unSVGCircleElement :: JSVal }++instance PToJSVal SVGCircleElement where+  pToJSVal = unSVGCircleElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGCircleElement where+  pFromJSVal = SVGCircleElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGCircleElement where+  toJSVal = return . unSVGCircleElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGCircleElement where+  fromJSVal v = fmap SVGCircleElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGCircleElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGCircleElement where+  makeObject = makeObject . unSVGCircleElement++instance IsSVGGraphicsElement SVGCircleElement+instance IsSVGElement SVGCircleElement+instance IsElement SVGCircleElement+instance IsNode SVGCircleElement+instance IsEventTarget SVGCircleElement+instance IsGObject SVGCircleElement where+  typeGType _ = gTypeSVGCircleElement+  {-# INLINE typeGType #-}++gTypeSVGCircleElement :: JSM GType+gTypeSVGCircleElement = GType . Object <$> jsg "SVGCircleElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGClipPathElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement Mozilla SVGClipPathElement documentation>+newtype SVGClipPathElement = SVGClipPathElement { unSVGClipPathElement :: JSVal }++instance PToJSVal SVGClipPathElement where+  pToJSVal = unSVGClipPathElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGClipPathElement where+  pFromJSVal = SVGClipPathElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGClipPathElement where+  toJSVal = return . unSVGClipPathElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGClipPathElement where+  fromJSVal v = fmap SVGClipPathElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGClipPathElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGClipPathElement where+  makeObject = makeObject . unSVGClipPathElement++instance IsSVGGraphicsElement SVGClipPathElement+instance IsSVGElement SVGClipPathElement+instance IsElement SVGClipPathElement+instance IsNode SVGClipPathElement+instance IsEventTarget SVGClipPathElement+instance IsGObject SVGClipPathElement where+  typeGType _ = gTypeSVGClipPathElement+  {-# INLINE typeGType #-}++gTypeSVGClipPathElement :: JSM GType+gTypeSVGClipPathElement = GType . Object <$> jsg "SVGClipPathElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGColor".+-- Base interface functions are in:+--+--     * "JSDOM.CSSValue"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor Mozilla SVGColor documentation>+newtype SVGColor = SVGColor { unSVGColor :: JSVal }++instance PToJSVal SVGColor where+  pToJSVal = unSVGColor+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGColor where+  pFromJSVal = SVGColor+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGColor where+  toJSVal = return . unSVGColor+  {-# INLINE toJSVal #-}++instance FromJSVal SVGColor where+  fromJSVal v = fmap SVGColor <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGColor+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGColor where+  makeObject = makeObject . unSVGColor++class IsCSSValue o => IsSVGColor o+toSVGColor :: IsSVGColor o => o -> SVGColor+toSVGColor = SVGColor . coerce++instance IsSVGColor SVGColor+instance IsCSSValue SVGColor+instance IsGObject SVGColor where+  typeGType _ = gTypeSVGColor+  {-# INLINE typeGType #-}++gTypeSVGColor :: JSM GType+gTypeSVGColor = GType . Object <$> jsg "SVGColor"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGComponentTransferFunctionElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement Mozilla SVGComponentTransferFunctionElement documentation>+newtype SVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement { unSVGComponentTransferFunctionElement :: JSVal }++instance PToJSVal SVGComponentTransferFunctionElement where+  pToJSVal = unSVGComponentTransferFunctionElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGComponentTransferFunctionElement where+  pFromJSVal = SVGComponentTransferFunctionElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGComponentTransferFunctionElement where+  toJSVal = return . unSVGComponentTransferFunctionElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGComponentTransferFunctionElement where+  fromJSVal v = fmap SVGComponentTransferFunctionElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGComponentTransferFunctionElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGComponentTransferFunctionElement where+  makeObject = makeObject . unSVGComponentTransferFunctionElement++class IsSVGElement o => IsSVGComponentTransferFunctionElement o+toSVGComponentTransferFunctionElement :: IsSVGComponentTransferFunctionElement o => o -> SVGComponentTransferFunctionElement+toSVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement . coerce++instance IsSVGComponentTransferFunctionElement SVGComponentTransferFunctionElement+instance IsSVGElement SVGComponentTransferFunctionElement+instance IsElement SVGComponentTransferFunctionElement+instance IsNode SVGComponentTransferFunctionElement+instance IsEventTarget SVGComponentTransferFunctionElement+instance IsGObject SVGComponentTransferFunctionElement where+  typeGType _ = gTypeSVGComponentTransferFunctionElement+  {-# INLINE typeGType #-}++gTypeSVGComponentTransferFunctionElement :: JSM GType+gTypeSVGComponentTransferFunctionElement = GType . Object <$> jsg "SVGComponentTransferFunctionElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGCursorElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement Mozilla SVGCursorElement documentation>+newtype SVGCursorElement = SVGCursorElement { unSVGCursorElement :: JSVal }++instance PToJSVal SVGCursorElement where+  pToJSVal = unSVGCursorElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGCursorElement where+  pFromJSVal = SVGCursorElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGCursorElement where+  toJSVal = return . unSVGCursorElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGCursorElement where+  fromJSVal v = fmap SVGCursorElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGCursorElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGCursorElement where+  makeObject = makeObject . unSVGCursorElement++instance IsSVGElement SVGCursorElement+instance IsElement SVGCursorElement+instance IsNode SVGCursorElement+instance IsEventTarget SVGCursorElement+instance IsGObject SVGCursorElement where+  typeGType _ = gTypeSVGCursorElement+  {-# INLINE typeGType #-}++gTypeSVGCursorElement :: JSM GType+gTypeSVGCursorElement = GType . Object <$> jsg "SVGCursorElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGDefsElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDefsElement Mozilla SVGDefsElement documentation>+newtype SVGDefsElement = SVGDefsElement { unSVGDefsElement :: JSVal }++instance PToJSVal SVGDefsElement where+  pToJSVal = unSVGDefsElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGDefsElement where+  pFromJSVal = SVGDefsElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGDefsElement where+  toJSVal = return . unSVGDefsElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGDefsElement where+  fromJSVal v = fmap SVGDefsElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGDefsElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGDefsElement where+  makeObject = makeObject . unSVGDefsElement++instance IsSVGGraphicsElement SVGDefsElement+instance IsSVGElement SVGDefsElement+instance IsElement SVGDefsElement+instance IsNode SVGDefsElement+instance IsEventTarget SVGDefsElement+instance IsGObject SVGDefsElement where+  typeGType _ = gTypeSVGDefsElement+  {-# INLINE typeGType #-}++gTypeSVGDefsElement :: JSM GType+gTypeSVGDefsElement = GType . Object <$> jsg "SVGDefsElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGDescElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDescElement Mozilla SVGDescElement documentation>+newtype SVGDescElement = SVGDescElement { unSVGDescElement :: JSVal }++instance PToJSVal SVGDescElement where+  pToJSVal = unSVGDescElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGDescElement where+  pFromJSVal = SVGDescElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGDescElement where+  toJSVal = return . unSVGDescElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGDescElement where+  fromJSVal v = fmap SVGDescElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGDescElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGDescElement where+  makeObject = makeObject . unSVGDescElement++instance IsSVGElement SVGDescElement+instance IsElement SVGDescElement+instance IsNode SVGDescElement+instance IsEventTarget SVGDescElement+instance IsGObject SVGDescElement where+  typeGType _ = gTypeSVGDescElement+  {-# INLINE typeGType #-}++gTypeSVGDescElement :: JSM GType+gTypeSVGDescElement = GType . Object <$> jsg "SVGDescElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGDocument".+-- Base interface functions are in:+--+--     * "JSDOM.Document"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument Mozilla SVGDocument documentation>+newtype SVGDocument = SVGDocument { unSVGDocument :: JSVal }++instance PToJSVal SVGDocument where+  pToJSVal = unSVGDocument+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGDocument where+  pFromJSVal = SVGDocument+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGDocument where+  toJSVal = return . unSVGDocument+  {-# INLINE toJSVal #-}++instance FromJSVal SVGDocument where+  fromJSVal v = fmap SVGDocument <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGDocument+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGDocument where+  makeObject = makeObject . unSVGDocument++instance IsDocument SVGDocument+instance IsNode SVGDocument+instance IsEventTarget SVGDocument+instance IsGObject SVGDocument where+  typeGType _ = gTypeSVGDocument+  {-# INLINE typeGType #-}++gTypeSVGDocument :: JSM GType+gTypeSVGDocument = GType . Object <$> jsg "SVGDocument"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGElement".+-- Base interface functions are in:+--+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement Mozilla SVGElement documentation>+newtype SVGElement = SVGElement { unSVGElement :: JSVal }++instance PToJSVal SVGElement where+  pToJSVal = unSVGElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGElement where+  pFromJSVal = SVGElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGElement where+  toJSVal = return . unSVGElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGElement where+  fromJSVal v = fmap SVGElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGElement where+  makeObject = makeObject . unSVGElement++class IsElement o => IsSVGElement o+toSVGElement :: IsSVGElement o => o -> SVGElement+toSVGElement = SVGElement . coerce++instance IsSVGElement SVGElement+instance IsElement SVGElement+instance IsNode SVGElement+instance IsEventTarget SVGElement+instance IsGObject SVGElement where+  typeGType _ = gTypeSVGElement+  {-# INLINE typeGType #-}++gTypeSVGElement :: JSM GType+gTypeSVGElement = GType . Object <$> jsg "SVGElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGEllipseElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement Mozilla SVGEllipseElement documentation>+newtype SVGEllipseElement = SVGEllipseElement { unSVGEllipseElement :: JSVal }++instance PToJSVal SVGEllipseElement where+  pToJSVal = unSVGEllipseElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGEllipseElement where+  pFromJSVal = SVGEllipseElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGEllipseElement where+  toJSVal = return . unSVGEllipseElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGEllipseElement where+  fromJSVal v = fmap SVGEllipseElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGEllipseElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGEllipseElement where+  makeObject = makeObject . unSVGEllipseElement++instance IsSVGGraphicsElement SVGEllipseElement+instance IsSVGElement SVGEllipseElement+instance IsElement SVGEllipseElement+instance IsNode SVGEllipseElement+instance IsEventTarget SVGEllipseElement+instance IsGObject SVGEllipseElement where+  typeGType _ = gTypeSVGEllipseElement+  {-# INLINE typeGType #-}++gTypeSVGEllipseElement :: JSM GType+gTypeSVGEllipseElement = GType . Object <$> jsg "SVGEllipseElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGExternalResourcesRequired".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired Mozilla SVGExternalResourcesRequired documentation>+newtype SVGExternalResourcesRequired = SVGExternalResourcesRequired { unSVGExternalResourcesRequired :: JSVal }++instance PToJSVal SVGExternalResourcesRequired where+  pToJSVal = unSVGExternalResourcesRequired+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGExternalResourcesRequired where+  pFromJSVal = SVGExternalResourcesRequired+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGExternalResourcesRequired where+  toJSVal = return . unSVGExternalResourcesRequired+  {-# INLINE toJSVal #-}++instance FromJSVal SVGExternalResourcesRequired where+  fromJSVal v = fmap SVGExternalResourcesRequired <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGExternalResourcesRequired+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGExternalResourcesRequired where+  makeObject = makeObject . unSVGExternalResourcesRequired++instance IsGObject SVGExternalResourcesRequired where+  typeGType _ = gTypeSVGExternalResourcesRequired+  {-# INLINE typeGType #-}++gTypeSVGExternalResourcesRequired :: JSM GType+gTypeSVGExternalResourcesRequired = GType . Object <$> jsg "SVGExternalResourcesRequired"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEBlendElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement Mozilla SVGFEBlendElement documentation>+newtype SVGFEBlendElement = SVGFEBlendElement { unSVGFEBlendElement :: JSVal }++instance PToJSVal SVGFEBlendElement where+  pToJSVal = unSVGFEBlendElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEBlendElement where+  pFromJSVal = SVGFEBlendElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEBlendElement where+  toJSVal = return . unSVGFEBlendElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEBlendElement where+  fromJSVal v = fmap SVGFEBlendElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEBlendElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEBlendElement where+  makeObject = makeObject . unSVGFEBlendElement++instance IsSVGElement SVGFEBlendElement+instance IsElement SVGFEBlendElement+instance IsNode SVGFEBlendElement+instance IsEventTarget SVGFEBlendElement+instance IsGObject SVGFEBlendElement where+  typeGType _ = gTypeSVGFEBlendElement+  {-# INLINE typeGType #-}++gTypeSVGFEBlendElement :: JSM GType+gTypeSVGFEBlendElement = GType . Object <$> jsg "SVGFEBlendElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEColorMatrixElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement Mozilla SVGFEColorMatrixElement documentation>+newtype SVGFEColorMatrixElement = SVGFEColorMatrixElement { unSVGFEColorMatrixElement :: JSVal }++instance PToJSVal SVGFEColorMatrixElement where+  pToJSVal = unSVGFEColorMatrixElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEColorMatrixElement where+  pFromJSVal = SVGFEColorMatrixElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEColorMatrixElement where+  toJSVal = return . unSVGFEColorMatrixElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEColorMatrixElement where+  fromJSVal v = fmap SVGFEColorMatrixElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEColorMatrixElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEColorMatrixElement where+  makeObject = makeObject . unSVGFEColorMatrixElement++instance IsSVGElement SVGFEColorMatrixElement+instance IsElement SVGFEColorMatrixElement+instance IsNode SVGFEColorMatrixElement+instance IsEventTarget SVGFEColorMatrixElement+instance IsGObject SVGFEColorMatrixElement where+  typeGType _ = gTypeSVGFEColorMatrixElement+  {-# INLINE typeGType #-}++gTypeSVGFEColorMatrixElement :: JSM GType+gTypeSVGFEColorMatrixElement = GType . Object <$> jsg "SVGFEColorMatrixElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEComponentTransferElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement Mozilla SVGFEComponentTransferElement documentation>+newtype SVGFEComponentTransferElement = SVGFEComponentTransferElement { unSVGFEComponentTransferElement :: JSVal }++instance PToJSVal SVGFEComponentTransferElement where+  pToJSVal = unSVGFEComponentTransferElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEComponentTransferElement where+  pFromJSVal = SVGFEComponentTransferElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEComponentTransferElement where+  toJSVal = return . unSVGFEComponentTransferElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEComponentTransferElement where+  fromJSVal v = fmap SVGFEComponentTransferElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEComponentTransferElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEComponentTransferElement where+  makeObject = makeObject . unSVGFEComponentTransferElement++instance IsSVGElement SVGFEComponentTransferElement+instance IsElement SVGFEComponentTransferElement+instance IsNode SVGFEComponentTransferElement+instance IsEventTarget SVGFEComponentTransferElement+instance IsGObject SVGFEComponentTransferElement where+  typeGType _ = gTypeSVGFEComponentTransferElement+  {-# INLINE typeGType #-}++gTypeSVGFEComponentTransferElement :: JSM GType+gTypeSVGFEComponentTransferElement = GType . Object <$> jsg "SVGFEComponentTransferElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFECompositeElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement Mozilla SVGFECompositeElement documentation>+newtype SVGFECompositeElement = SVGFECompositeElement { unSVGFECompositeElement :: JSVal }++instance PToJSVal SVGFECompositeElement where+  pToJSVal = unSVGFECompositeElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFECompositeElement where+  pFromJSVal = SVGFECompositeElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFECompositeElement where+  toJSVal = return . unSVGFECompositeElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFECompositeElement where+  fromJSVal v = fmap SVGFECompositeElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFECompositeElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFECompositeElement where+  makeObject = makeObject . unSVGFECompositeElement++instance IsSVGElement SVGFECompositeElement+instance IsElement SVGFECompositeElement+instance IsNode SVGFECompositeElement+instance IsEventTarget SVGFECompositeElement+instance IsGObject SVGFECompositeElement where+  typeGType _ = gTypeSVGFECompositeElement+  {-# INLINE typeGType #-}++gTypeSVGFECompositeElement :: JSM GType+gTypeSVGFECompositeElement = GType . Object <$> jsg "SVGFECompositeElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEConvolveMatrixElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement Mozilla SVGFEConvolveMatrixElement documentation>+newtype SVGFEConvolveMatrixElement = SVGFEConvolveMatrixElement { unSVGFEConvolveMatrixElement :: JSVal }++instance PToJSVal SVGFEConvolveMatrixElement where+  pToJSVal = unSVGFEConvolveMatrixElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEConvolveMatrixElement where+  pFromJSVal = SVGFEConvolveMatrixElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEConvolveMatrixElement where+  toJSVal = return . unSVGFEConvolveMatrixElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEConvolveMatrixElement where+  fromJSVal v = fmap SVGFEConvolveMatrixElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEConvolveMatrixElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEConvolveMatrixElement where+  makeObject = makeObject . unSVGFEConvolveMatrixElement++instance IsSVGElement SVGFEConvolveMatrixElement+instance IsElement SVGFEConvolveMatrixElement+instance IsNode SVGFEConvolveMatrixElement+instance IsEventTarget SVGFEConvolveMatrixElement+instance IsGObject SVGFEConvolveMatrixElement where+  typeGType _ = gTypeSVGFEConvolveMatrixElement+  {-# INLINE typeGType #-}++gTypeSVGFEConvolveMatrixElement :: JSM GType+gTypeSVGFEConvolveMatrixElement = GType . Object <$> jsg "SVGFEConvolveMatrixElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEDiffuseLightingElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement Mozilla SVGFEDiffuseLightingElement documentation>+newtype SVGFEDiffuseLightingElement = SVGFEDiffuseLightingElement { unSVGFEDiffuseLightingElement :: JSVal }++instance PToJSVal SVGFEDiffuseLightingElement where+  pToJSVal = unSVGFEDiffuseLightingElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEDiffuseLightingElement where+  pFromJSVal = SVGFEDiffuseLightingElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEDiffuseLightingElement where+  toJSVal = return . unSVGFEDiffuseLightingElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEDiffuseLightingElement where+  fromJSVal v = fmap SVGFEDiffuseLightingElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEDiffuseLightingElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEDiffuseLightingElement where+  makeObject = makeObject . unSVGFEDiffuseLightingElement++instance IsSVGElement SVGFEDiffuseLightingElement+instance IsElement SVGFEDiffuseLightingElement+instance IsNode SVGFEDiffuseLightingElement+instance IsEventTarget SVGFEDiffuseLightingElement+instance IsGObject SVGFEDiffuseLightingElement where+  typeGType _ = gTypeSVGFEDiffuseLightingElement+  {-# INLINE typeGType #-}++gTypeSVGFEDiffuseLightingElement :: JSM GType+gTypeSVGFEDiffuseLightingElement = GType . Object <$> jsg "SVGFEDiffuseLightingElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEDisplacementMapElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement Mozilla SVGFEDisplacementMapElement documentation>+newtype SVGFEDisplacementMapElement = SVGFEDisplacementMapElement { unSVGFEDisplacementMapElement :: JSVal }++instance PToJSVal SVGFEDisplacementMapElement where+  pToJSVal = unSVGFEDisplacementMapElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEDisplacementMapElement where+  pFromJSVal = SVGFEDisplacementMapElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEDisplacementMapElement where+  toJSVal = return . unSVGFEDisplacementMapElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEDisplacementMapElement where+  fromJSVal v = fmap SVGFEDisplacementMapElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEDisplacementMapElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEDisplacementMapElement where+  makeObject = makeObject . unSVGFEDisplacementMapElement++instance IsSVGElement SVGFEDisplacementMapElement+instance IsElement SVGFEDisplacementMapElement+instance IsNode SVGFEDisplacementMapElement+instance IsEventTarget SVGFEDisplacementMapElement+instance IsGObject SVGFEDisplacementMapElement where+  typeGType _ = gTypeSVGFEDisplacementMapElement+  {-# INLINE typeGType #-}++gTypeSVGFEDisplacementMapElement :: JSM GType+gTypeSVGFEDisplacementMapElement = GType . Object <$> jsg "SVGFEDisplacementMapElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEDistantLightElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement Mozilla SVGFEDistantLightElement documentation>+newtype SVGFEDistantLightElement = SVGFEDistantLightElement { unSVGFEDistantLightElement :: JSVal }++instance PToJSVal SVGFEDistantLightElement where+  pToJSVal = unSVGFEDistantLightElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEDistantLightElement where+  pFromJSVal = SVGFEDistantLightElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEDistantLightElement where+  toJSVal = return . unSVGFEDistantLightElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEDistantLightElement where+  fromJSVal v = fmap SVGFEDistantLightElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEDistantLightElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEDistantLightElement where+  makeObject = makeObject . unSVGFEDistantLightElement++instance IsSVGElement SVGFEDistantLightElement+instance IsElement SVGFEDistantLightElement+instance IsNode SVGFEDistantLightElement+instance IsEventTarget SVGFEDistantLightElement+instance IsGObject SVGFEDistantLightElement where+  typeGType _ = gTypeSVGFEDistantLightElement+  {-# INLINE typeGType #-}++gTypeSVGFEDistantLightElement :: JSM GType+gTypeSVGFEDistantLightElement = GType . Object <$> jsg "SVGFEDistantLightElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEDropShadowElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement Mozilla SVGFEDropShadowElement documentation>+newtype SVGFEDropShadowElement = SVGFEDropShadowElement { unSVGFEDropShadowElement :: JSVal }++instance PToJSVal SVGFEDropShadowElement where+  pToJSVal = unSVGFEDropShadowElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEDropShadowElement where+  pFromJSVal = SVGFEDropShadowElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEDropShadowElement where+  toJSVal = return . unSVGFEDropShadowElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEDropShadowElement where+  fromJSVal v = fmap SVGFEDropShadowElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEDropShadowElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEDropShadowElement where+  makeObject = makeObject . unSVGFEDropShadowElement++instance IsSVGElement SVGFEDropShadowElement+instance IsElement SVGFEDropShadowElement+instance IsNode SVGFEDropShadowElement+instance IsEventTarget SVGFEDropShadowElement+instance IsGObject SVGFEDropShadowElement where+  typeGType _ = gTypeSVGFEDropShadowElement+  {-# INLINE typeGType #-}++gTypeSVGFEDropShadowElement :: JSM GType+gTypeSVGFEDropShadowElement = GType . Object <$> jsg "SVGFEDropShadowElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEFloodElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFloodElement Mozilla SVGFEFloodElement documentation>+newtype SVGFEFloodElement = SVGFEFloodElement { unSVGFEFloodElement :: JSVal }++instance PToJSVal SVGFEFloodElement where+  pToJSVal = unSVGFEFloodElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEFloodElement where+  pFromJSVal = SVGFEFloodElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEFloodElement where+  toJSVal = return . unSVGFEFloodElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEFloodElement where+  fromJSVal v = fmap SVGFEFloodElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEFloodElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEFloodElement where+  makeObject = makeObject . unSVGFEFloodElement++instance IsSVGElement SVGFEFloodElement+instance IsElement SVGFEFloodElement+instance IsNode SVGFEFloodElement+instance IsEventTarget SVGFEFloodElement+instance IsGObject SVGFEFloodElement where+  typeGType _ = gTypeSVGFEFloodElement+  {-# INLINE typeGType #-}++gTypeSVGFEFloodElement :: JSM GType+gTypeSVGFEFloodElement = GType . Object <$> jsg "SVGFEFloodElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEFuncAElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGComponentTransferFunctionElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncAElement Mozilla SVGFEFuncAElement documentation>+newtype SVGFEFuncAElement = SVGFEFuncAElement { unSVGFEFuncAElement :: JSVal }++instance PToJSVal SVGFEFuncAElement where+  pToJSVal = unSVGFEFuncAElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEFuncAElement where+  pFromJSVal = SVGFEFuncAElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEFuncAElement where+  toJSVal = return . unSVGFEFuncAElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEFuncAElement where+  fromJSVal v = fmap SVGFEFuncAElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEFuncAElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEFuncAElement where+  makeObject = makeObject . unSVGFEFuncAElement++instance IsSVGComponentTransferFunctionElement SVGFEFuncAElement+instance IsSVGElement SVGFEFuncAElement+instance IsElement SVGFEFuncAElement+instance IsNode SVGFEFuncAElement+instance IsEventTarget SVGFEFuncAElement+instance IsGObject SVGFEFuncAElement where+  typeGType _ = gTypeSVGFEFuncAElement+  {-# INLINE typeGType #-}++gTypeSVGFEFuncAElement :: JSM GType+gTypeSVGFEFuncAElement = GType . Object <$> jsg "SVGFEFuncAElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEFuncBElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGComponentTransferFunctionElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncBElement Mozilla SVGFEFuncBElement documentation>+newtype SVGFEFuncBElement = SVGFEFuncBElement { unSVGFEFuncBElement :: JSVal }++instance PToJSVal SVGFEFuncBElement where+  pToJSVal = unSVGFEFuncBElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEFuncBElement where+  pFromJSVal = SVGFEFuncBElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEFuncBElement where+  toJSVal = return . unSVGFEFuncBElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEFuncBElement where+  fromJSVal v = fmap SVGFEFuncBElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEFuncBElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEFuncBElement where+  makeObject = makeObject . unSVGFEFuncBElement++instance IsSVGComponentTransferFunctionElement SVGFEFuncBElement+instance IsSVGElement SVGFEFuncBElement+instance IsElement SVGFEFuncBElement+instance IsNode SVGFEFuncBElement+instance IsEventTarget SVGFEFuncBElement+instance IsGObject SVGFEFuncBElement where+  typeGType _ = gTypeSVGFEFuncBElement+  {-# INLINE typeGType #-}++gTypeSVGFEFuncBElement :: JSM GType+gTypeSVGFEFuncBElement = GType . Object <$> jsg "SVGFEFuncBElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEFuncGElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGComponentTransferFunctionElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncGElement Mozilla SVGFEFuncGElement documentation>+newtype SVGFEFuncGElement = SVGFEFuncGElement { unSVGFEFuncGElement :: JSVal }++instance PToJSVal SVGFEFuncGElement where+  pToJSVal = unSVGFEFuncGElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEFuncGElement where+  pFromJSVal = SVGFEFuncGElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEFuncGElement where+  toJSVal = return . unSVGFEFuncGElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEFuncGElement where+  fromJSVal v = fmap SVGFEFuncGElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEFuncGElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEFuncGElement where+  makeObject = makeObject . unSVGFEFuncGElement++instance IsSVGComponentTransferFunctionElement SVGFEFuncGElement+instance IsSVGElement SVGFEFuncGElement+instance IsElement SVGFEFuncGElement+instance IsNode SVGFEFuncGElement+instance IsEventTarget SVGFEFuncGElement+instance IsGObject SVGFEFuncGElement where+  typeGType _ = gTypeSVGFEFuncGElement+  {-# INLINE typeGType #-}++gTypeSVGFEFuncGElement :: JSM GType+gTypeSVGFEFuncGElement = GType . Object <$> jsg "SVGFEFuncGElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEFuncRElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGComponentTransferFunctionElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncRElement Mozilla SVGFEFuncRElement documentation>+newtype SVGFEFuncRElement = SVGFEFuncRElement { unSVGFEFuncRElement :: JSVal }++instance PToJSVal SVGFEFuncRElement where+  pToJSVal = unSVGFEFuncRElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEFuncRElement where+  pFromJSVal = SVGFEFuncRElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEFuncRElement where+  toJSVal = return . unSVGFEFuncRElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEFuncRElement where+  fromJSVal v = fmap SVGFEFuncRElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEFuncRElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEFuncRElement where+  makeObject = makeObject . unSVGFEFuncRElement++instance IsSVGComponentTransferFunctionElement SVGFEFuncRElement+instance IsSVGElement SVGFEFuncRElement+instance IsElement SVGFEFuncRElement+instance IsNode SVGFEFuncRElement+instance IsEventTarget SVGFEFuncRElement+instance IsGObject SVGFEFuncRElement where+  typeGType _ = gTypeSVGFEFuncRElement+  {-# INLINE typeGType #-}++gTypeSVGFEFuncRElement :: JSM GType+gTypeSVGFEFuncRElement = GType . Object <$> jsg "SVGFEFuncRElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEGaussianBlurElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement Mozilla SVGFEGaussianBlurElement documentation>+newtype SVGFEGaussianBlurElement = SVGFEGaussianBlurElement { unSVGFEGaussianBlurElement :: JSVal }++instance PToJSVal SVGFEGaussianBlurElement where+  pToJSVal = unSVGFEGaussianBlurElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEGaussianBlurElement where+  pFromJSVal = SVGFEGaussianBlurElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEGaussianBlurElement where+  toJSVal = return . unSVGFEGaussianBlurElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEGaussianBlurElement where+  fromJSVal v = fmap SVGFEGaussianBlurElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEGaussianBlurElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEGaussianBlurElement where+  makeObject = makeObject . unSVGFEGaussianBlurElement++instance IsSVGElement SVGFEGaussianBlurElement+instance IsElement SVGFEGaussianBlurElement+instance IsNode SVGFEGaussianBlurElement+instance IsEventTarget SVGFEGaussianBlurElement+instance IsGObject SVGFEGaussianBlurElement where+  typeGType _ = gTypeSVGFEGaussianBlurElement+  {-# INLINE typeGType #-}++gTypeSVGFEGaussianBlurElement :: JSM GType+gTypeSVGFEGaussianBlurElement = GType . Object <$> jsg "SVGFEGaussianBlurElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEImageElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement Mozilla SVGFEImageElement documentation>+newtype SVGFEImageElement = SVGFEImageElement { unSVGFEImageElement :: JSVal }++instance PToJSVal SVGFEImageElement where+  pToJSVal = unSVGFEImageElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEImageElement where+  pFromJSVal = SVGFEImageElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEImageElement where+  toJSVal = return . unSVGFEImageElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEImageElement where+  fromJSVal v = fmap SVGFEImageElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEImageElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEImageElement where+  makeObject = makeObject . unSVGFEImageElement++instance IsSVGElement SVGFEImageElement+instance IsElement SVGFEImageElement+instance IsNode SVGFEImageElement+instance IsEventTarget SVGFEImageElement+instance IsGObject SVGFEImageElement where+  typeGType _ = gTypeSVGFEImageElement+  {-# INLINE typeGType #-}++gTypeSVGFEImageElement :: JSM GType+gTypeSVGFEImageElement = GType . Object <$> jsg "SVGFEImageElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEMergeElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeElement Mozilla SVGFEMergeElement documentation>+newtype SVGFEMergeElement = SVGFEMergeElement { unSVGFEMergeElement :: JSVal }++instance PToJSVal SVGFEMergeElement where+  pToJSVal = unSVGFEMergeElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEMergeElement where+  pFromJSVal = SVGFEMergeElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEMergeElement where+  toJSVal = return . unSVGFEMergeElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEMergeElement where+  fromJSVal v = fmap SVGFEMergeElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEMergeElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEMergeElement where+  makeObject = makeObject . unSVGFEMergeElement++instance IsSVGElement SVGFEMergeElement+instance IsElement SVGFEMergeElement+instance IsNode SVGFEMergeElement+instance IsEventTarget SVGFEMergeElement+instance IsGObject SVGFEMergeElement where+  typeGType _ = gTypeSVGFEMergeElement+  {-# INLINE typeGType #-}++gTypeSVGFEMergeElement :: JSM GType+gTypeSVGFEMergeElement = GType . Object <$> jsg "SVGFEMergeElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEMergeNodeElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement Mozilla SVGFEMergeNodeElement documentation>+newtype SVGFEMergeNodeElement = SVGFEMergeNodeElement { unSVGFEMergeNodeElement :: JSVal }++instance PToJSVal SVGFEMergeNodeElement where+  pToJSVal = unSVGFEMergeNodeElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEMergeNodeElement where+  pFromJSVal = SVGFEMergeNodeElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEMergeNodeElement where+  toJSVal = return . unSVGFEMergeNodeElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEMergeNodeElement where+  fromJSVal v = fmap SVGFEMergeNodeElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEMergeNodeElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEMergeNodeElement where+  makeObject = makeObject . unSVGFEMergeNodeElement++instance IsSVGElement SVGFEMergeNodeElement+instance IsElement SVGFEMergeNodeElement+instance IsNode SVGFEMergeNodeElement+instance IsEventTarget SVGFEMergeNodeElement+instance IsGObject SVGFEMergeNodeElement where+  typeGType _ = gTypeSVGFEMergeNodeElement+  {-# INLINE typeGType #-}++gTypeSVGFEMergeNodeElement :: JSM GType+gTypeSVGFEMergeNodeElement = GType . Object <$> jsg "SVGFEMergeNodeElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEMorphologyElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement Mozilla SVGFEMorphologyElement documentation>+newtype SVGFEMorphologyElement = SVGFEMorphologyElement { unSVGFEMorphologyElement :: JSVal }++instance PToJSVal SVGFEMorphologyElement where+  pToJSVal = unSVGFEMorphologyElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEMorphologyElement where+  pFromJSVal = SVGFEMorphologyElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEMorphologyElement where+  toJSVal = return . unSVGFEMorphologyElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEMorphologyElement where+  fromJSVal v = fmap SVGFEMorphologyElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEMorphologyElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEMorphologyElement where+  makeObject = makeObject . unSVGFEMorphologyElement++instance IsSVGElement SVGFEMorphologyElement+instance IsElement SVGFEMorphologyElement+instance IsNode SVGFEMorphologyElement+instance IsEventTarget SVGFEMorphologyElement+instance IsGObject SVGFEMorphologyElement where+  typeGType _ = gTypeSVGFEMorphologyElement+  {-# INLINE typeGType #-}++gTypeSVGFEMorphologyElement :: JSM GType+gTypeSVGFEMorphologyElement = GType . Object <$> jsg "SVGFEMorphologyElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEOffsetElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement Mozilla SVGFEOffsetElement documentation>+newtype SVGFEOffsetElement = SVGFEOffsetElement { unSVGFEOffsetElement :: JSVal }++instance PToJSVal SVGFEOffsetElement where+  pToJSVal = unSVGFEOffsetElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEOffsetElement where+  pFromJSVal = SVGFEOffsetElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEOffsetElement where+  toJSVal = return . unSVGFEOffsetElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEOffsetElement where+  fromJSVal v = fmap SVGFEOffsetElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEOffsetElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEOffsetElement where+  makeObject = makeObject . unSVGFEOffsetElement++instance IsSVGElement SVGFEOffsetElement+instance IsElement SVGFEOffsetElement+instance IsNode SVGFEOffsetElement+instance IsEventTarget SVGFEOffsetElement+instance IsGObject SVGFEOffsetElement where+  typeGType _ = gTypeSVGFEOffsetElement+  {-# INLINE typeGType #-}++gTypeSVGFEOffsetElement :: JSM GType+gTypeSVGFEOffsetElement = GType . Object <$> jsg "SVGFEOffsetElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFEPointLightElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement Mozilla SVGFEPointLightElement documentation>+newtype SVGFEPointLightElement = SVGFEPointLightElement { unSVGFEPointLightElement :: JSVal }++instance PToJSVal SVGFEPointLightElement where+  pToJSVal = unSVGFEPointLightElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFEPointLightElement where+  pFromJSVal = SVGFEPointLightElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFEPointLightElement where+  toJSVal = return . unSVGFEPointLightElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFEPointLightElement where+  fromJSVal v = fmap SVGFEPointLightElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFEPointLightElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFEPointLightElement where+  makeObject = makeObject . unSVGFEPointLightElement++instance IsSVGElement SVGFEPointLightElement+instance IsElement SVGFEPointLightElement+instance IsNode SVGFEPointLightElement+instance IsEventTarget SVGFEPointLightElement+instance IsGObject SVGFEPointLightElement where+  typeGType _ = gTypeSVGFEPointLightElement+  {-# INLINE typeGType #-}++gTypeSVGFEPointLightElement :: JSM GType+gTypeSVGFEPointLightElement = GType . Object <$> jsg "SVGFEPointLightElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFESpecularLightingElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement Mozilla SVGFESpecularLightingElement documentation>+newtype SVGFESpecularLightingElement = SVGFESpecularLightingElement { unSVGFESpecularLightingElement :: JSVal }++instance PToJSVal SVGFESpecularLightingElement where+  pToJSVal = unSVGFESpecularLightingElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFESpecularLightingElement where+  pFromJSVal = SVGFESpecularLightingElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFESpecularLightingElement where+  toJSVal = return . unSVGFESpecularLightingElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFESpecularLightingElement where+  fromJSVal v = fmap SVGFESpecularLightingElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFESpecularLightingElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFESpecularLightingElement where+  makeObject = makeObject . unSVGFESpecularLightingElement++instance IsSVGElement SVGFESpecularLightingElement+instance IsElement SVGFESpecularLightingElement+instance IsNode SVGFESpecularLightingElement+instance IsEventTarget SVGFESpecularLightingElement+instance IsGObject SVGFESpecularLightingElement where+  typeGType _ = gTypeSVGFESpecularLightingElement+  {-# INLINE typeGType #-}++gTypeSVGFESpecularLightingElement :: JSM GType+gTypeSVGFESpecularLightingElement = GType . Object <$> jsg "SVGFESpecularLightingElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFESpotLightElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement Mozilla SVGFESpotLightElement documentation>+newtype SVGFESpotLightElement = SVGFESpotLightElement { unSVGFESpotLightElement :: JSVal }++instance PToJSVal SVGFESpotLightElement where+  pToJSVal = unSVGFESpotLightElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFESpotLightElement where+  pFromJSVal = SVGFESpotLightElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFESpotLightElement where+  toJSVal = return . unSVGFESpotLightElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFESpotLightElement where+  fromJSVal v = fmap SVGFESpotLightElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFESpotLightElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFESpotLightElement where+  makeObject = makeObject . unSVGFESpotLightElement++instance IsSVGElement SVGFESpotLightElement+instance IsElement SVGFESpotLightElement+instance IsNode SVGFESpotLightElement+instance IsEventTarget SVGFESpotLightElement+instance IsGObject SVGFESpotLightElement where+  typeGType _ = gTypeSVGFESpotLightElement+  {-# INLINE typeGType #-}++gTypeSVGFESpotLightElement :: JSM GType+gTypeSVGFESpotLightElement = GType . Object <$> jsg "SVGFESpotLightElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFETileElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement Mozilla SVGFETileElement documentation>+newtype SVGFETileElement = SVGFETileElement { unSVGFETileElement :: JSVal }++instance PToJSVal SVGFETileElement where+  pToJSVal = unSVGFETileElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFETileElement where+  pFromJSVal = SVGFETileElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFETileElement where+  toJSVal = return . unSVGFETileElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFETileElement where+  fromJSVal v = fmap SVGFETileElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFETileElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFETileElement where+  makeObject = makeObject . unSVGFETileElement++instance IsSVGElement SVGFETileElement+instance IsElement SVGFETileElement+instance IsNode SVGFETileElement+instance IsEventTarget SVGFETileElement+instance IsGObject SVGFETileElement where+  typeGType _ = gTypeSVGFETileElement+  {-# INLINE typeGType #-}++gTypeSVGFETileElement :: JSM GType+gTypeSVGFETileElement = GType . Object <$> jsg "SVGFETileElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFETurbulenceElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement Mozilla SVGFETurbulenceElement documentation>+newtype SVGFETurbulenceElement = SVGFETurbulenceElement { unSVGFETurbulenceElement :: JSVal }++instance PToJSVal SVGFETurbulenceElement where+  pToJSVal = unSVGFETurbulenceElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFETurbulenceElement where+  pFromJSVal = SVGFETurbulenceElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFETurbulenceElement where+  toJSVal = return . unSVGFETurbulenceElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFETurbulenceElement where+  fromJSVal v = fmap SVGFETurbulenceElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFETurbulenceElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFETurbulenceElement where+  makeObject = makeObject . unSVGFETurbulenceElement++instance IsSVGElement SVGFETurbulenceElement+instance IsElement SVGFETurbulenceElement+instance IsNode SVGFETurbulenceElement+instance IsEventTarget SVGFETurbulenceElement+instance IsGObject SVGFETurbulenceElement where+  typeGType _ = gTypeSVGFETurbulenceElement+  {-# INLINE typeGType #-}++gTypeSVGFETurbulenceElement :: JSM GType+gTypeSVGFETurbulenceElement = GType . Object <$> jsg "SVGFETurbulenceElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFilterElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement Mozilla SVGFilterElement documentation>+newtype SVGFilterElement = SVGFilterElement { unSVGFilterElement :: JSVal }++instance PToJSVal SVGFilterElement where+  pToJSVal = unSVGFilterElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFilterElement where+  pFromJSVal = SVGFilterElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFilterElement where+  toJSVal = return . unSVGFilterElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFilterElement where+  fromJSVal v = fmap SVGFilterElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFilterElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFilterElement where+  makeObject = makeObject . unSVGFilterElement++instance IsSVGElement SVGFilterElement+instance IsElement SVGFilterElement+instance IsNode SVGFilterElement+instance IsEventTarget SVGFilterElement+instance IsGObject SVGFilterElement where+  typeGType _ = gTypeSVGFilterElement+  {-# INLINE typeGType #-}++gTypeSVGFilterElement :: JSM GType+gTypeSVGFilterElement = GType . Object <$> jsg "SVGFilterElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFilterPrimitiveStandardAttributes".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes Mozilla SVGFilterPrimitiveStandardAttributes documentation>+newtype SVGFilterPrimitiveStandardAttributes = SVGFilterPrimitiveStandardAttributes { unSVGFilterPrimitiveStandardAttributes :: JSVal }++instance PToJSVal SVGFilterPrimitiveStandardAttributes where+  pToJSVal = unSVGFilterPrimitiveStandardAttributes+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFilterPrimitiveStandardAttributes where+  pFromJSVal = SVGFilterPrimitiveStandardAttributes+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFilterPrimitiveStandardAttributes where+  toJSVal = return . unSVGFilterPrimitiveStandardAttributes+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFilterPrimitiveStandardAttributes where+  fromJSVal v = fmap SVGFilterPrimitiveStandardAttributes <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFilterPrimitiveStandardAttributes+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFilterPrimitiveStandardAttributes where+  makeObject = makeObject . unSVGFilterPrimitiveStandardAttributes++instance IsGObject SVGFilterPrimitiveStandardAttributes where+  typeGType _ = gTypeSVGFilterPrimitiveStandardAttributes+  {-# INLINE typeGType #-}++gTypeSVGFilterPrimitiveStandardAttributes :: JSM GType+gTypeSVGFilterPrimitiveStandardAttributes = GType . Object <$> jsg "SVGFilterPrimitiveStandardAttributes"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFitToViewBox".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox Mozilla SVGFitToViewBox documentation>+newtype SVGFitToViewBox = SVGFitToViewBox { unSVGFitToViewBox :: JSVal }++instance PToJSVal SVGFitToViewBox where+  pToJSVal = unSVGFitToViewBox+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFitToViewBox where+  pFromJSVal = SVGFitToViewBox+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFitToViewBox where+  toJSVal = return . unSVGFitToViewBox+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFitToViewBox where+  fromJSVal v = fmap SVGFitToViewBox <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFitToViewBox+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFitToViewBox where+  makeObject = makeObject . unSVGFitToViewBox++instance IsGObject SVGFitToViewBox where+  typeGType _ = gTypeSVGFitToViewBox+  {-# INLINE typeGType #-}++gTypeSVGFitToViewBox :: JSM GType+gTypeSVGFitToViewBox = GType . Object <$> jsg "SVGFitToViewBox"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFontElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontElement Mozilla SVGFontElement documentation>+newtype SVGFontElement = SVGFontElement { unSVGFontElement :: JSVal }++instance PToJSVal SVGFontElement where+  pToJSVal = unSVGFontElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFontElement where+  pFromJSVal = SVGFontElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFontElement where+  toJSVal = return . unSVGFontElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFontElement where+  fromJSVal v = fmap SVGFontElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFontElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFontElement where+  makeObject = makeObject . unSVGFontElement++instance IsSVGElement SVGFontElement+instance IsElement SVGFontElement+instance IsNode SVGFontElement+instance IsEventTarget SVGFontElement+instance IsGObject SVGFontElement where+  typeGType _ = gTypeSVGFontElement+  {-# INLINE typeGType #-}++gTypeSVGFontElement :: JSM GType+gTypeSVGFontElement = GType . Object <$> jsg "SVGFontElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFontFaceElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceElement Mozilla SVGFontFaceElement documentation>+newtype SVGFontFaceElement = SVGFontFaceElement { unSVGFontFaceElement :: JSVal }++instance PToJSVal SVGFontFaceElement where+  pToJSVal = unSVGFontFaceElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFontFaceElement where+  pFromJSVal = SVGFontFaceElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFontFaceElement where+  toJSVal = return . unSVGFontFaceElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFontFaceElement where+  fromJSVal v = fmap SVGFontFaceElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFontFaceElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFontFaceElement where+  makeObject = makeObject . unSVGFontFaceElement++instance IsSVGElement SVGFontFaceElement+instance IsElement SVGFontFaceElement+instance IsNode SVGFontFaceElement+instance IsEventTarget SVGFontFaceElement+instance IsGObject SVGFontFaceElement where+  typeGType _ = gTypeSVGFontFaceElement+  {-# INLINE typeGType #-}++gTypeSVGFontFaceElement :: JSM GType+gTypeSVGFontFaceElement = GType . Object <$> jsg "SVGFontFaceElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFontFaceFormatElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceFormatElement Mozilla SVGFontFaceFormatElement documentation>+newtype SVGFontFaceFormatElement = SVGFontFaceFormatElement { unSVGFontFaceFormatElement :: JSVal }++instance PToJSVal SVGFontFaceFormatElement where+  pToJSVal = unSVGFontFaceFormatElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFontFaceFormatElement where+  pFromJSVal = SVGFontFaceFormatElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFontFaceFormatElement where+  toJSVal = return . unSVGFontFaceFormatElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFontFaceFormatElement where+  fromJSVal v = fmap SVGFontFaceFormatElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFontFaceFormatElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFontFaceFormatElement where+  makeObject = makeObject . unSVGFontFaceFormatElement++instance IsSVGElement SVGFontFaceFormatElement+instance IsElement SVGFontFaceFormatElement+instance IsNode SVGFontFaceFormatElement+instance IsEventTarget SVGFontFaceFormatElement+instance IsGObject SVGFontFaceFormatElement where+  typeGType _ = gTypeSVGFontFaceFormatElement+  {-# INLINE typeGType #-}++gTypeSVGFontFaceFormatElement :: JSM GType+gTypeSVGFontFaceFormatElement = GType . Object <$> jsg "SVGFontFaceFormatElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFontFaceNameElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceNameElement Mozilla SVGFontFaceNameElement documentation>+newtype SVGFontFaceNameElement = SVGFontFaceNameElement { unSVGFontFaceNameElement :: JSVal }++instance PToJSVal SVGFontFaceNameElement where+  pToJSVal = unSVGFontFaceNameElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFontFaceNameElement where+  pFromJSVal = SVGFontFaceNameElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFontFaceNameElement where+  toJSVal = return . unSVGFontFaceNameElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFontFaceNameElement where+  fromJSVal v = fmap SVGFontFaceNameElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFontFaceNameElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFontFaceNameElement where+  makeObject = makeObject . unSVGFontFaceNameElement++instance IsSVGElement SVGFontFaceNameElement+instance IsElement SVGFontFaceNameElement+instance IsNode SVGFontFaceNameElement+instance IsEventTarget SVGFontFaceNameElement+instance IsGObject SVGFontFaceNameElement where+  typeGType _ = gTypeSVGFontFaceNameElement+  {-# INLINE typeGType #-}++gTypeSVGFontFaceNameElement :: JSM GType+gTypeSVGFontFaceNameElement = GType . Object <$> jsg "SVGFontFaceNameElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFontFaceSrcElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceSrcElement Mozilla SVGFontFaceSrcElement documentation>+newtype SVGFontFaceSrcElement = SVGFontFaceSrcElement { unSVGFontFaceSrcElement :: JSVal }++instance PToJSVal SVGFontFaceSrcElement where+  pToJSVal = unSVGFontFaceSrcElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFontFaceSrcElement where+  pFromJSVal = SVGFontFaceSrcElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFontFaceSrcElement where+  toJSVal = return . unSVGFontFaceSrcElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFontFaceSrcElement where+  fromJSVal v = fmap SVGFontFaceSrcElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFontFaceSrcElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFontFaceSrcElement where+  makeObject = makeObject . unSVGFontFaceSrcElement++instance IsSVGElement SVGFontFaceSrcElement+instance IsElement SVGFontFaceSrcElement+instance IsNode SVGFontFaceSrcElement+instance IsEventTarget SVGFontFaceSrcElement+instance IsGObject SVGFontFaceSrcElement where+  typeGType _ = gTypeSVGFontFaceSrcElement+  {-# INLINE typeGType #-}++gTypeSVGFontFaceSrcElement :: JSM GType+gTypeSVGFontFaceSrcElement = GType . Object <$> jsg "SVGFontFaceSrcElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGFontFaceUriElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceUriElement Mozilla SVGFontFaceUriElement documentation>+newtype SVGFontFaceUriElement = SVGFontFaceUriElement { unSVGFontFaceUriElement :: JSVal }++instance PToJSVal SVGFontFaceUriElement where+  pToJSVal = unSVGFontFaceUriElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGFontFaceUriElement where+  pFromJSVal = SVGFontFaceUriElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGFontFaceUriElement where+  toJSVal = return . unSVGFontFaceUriElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGFontFaceUriElement where+  fromJSVal v = fmap SVGFontFaceUriElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGFontFaceUriElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGFontFaceUriElement where+  makeObject = makeObject . unSVGFontFaceUriElement++instance IsSVGElement SVGFontFaceUriElement+instance IsElement SVGFontFaceUriElement+instance IsNode SVGFontFaceUriElement+instance IsEventTarget SVGFontFaceUriElement+instance IsGObject SVGFontFaceUriElement where+  typeGType _ = gTypeSVGFontFaceUriElement+  {-# INLINE typeGType #-}++gTypeSVGFontFaceUriElement :: JSM GType+gTypeSVGFontFaceUriElement = GType . Object <$> jsg "SVGFontFaceUriElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGForeignObjectElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement Mozilla SVGForeignObjectElement documentation>+newtype SVGForeignObjectElement = SVGForeignObjectElement { unSVGForeignObjectElement :: JSVal }++instance PToJSVal SVGForeignObjectElement where+  pToJSVal = unSVGForeignObjectElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGForeignObjectElement where+  pFromJSVal = SVGForeignObjectElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGForeignObjectElement where+  toJSVal = return . unSVGForeignObjectElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGForeignObjectElement where+  fromJSVal v = fmap SVGForeignObjectElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGForeignObjectElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGForeignObjectElement where+  makeObject = makeObject . unSVGForeignObjectElement++instance IsSVGGraphicsElement SVGForeignObjectElement+instance IsSVGElement SVGForeignObjectElement+instance IsElement SVGForeignObjectElement+instance IsNode SVGForeignObjectElement+instance IsEventTarget SVGForeignObjectElement+instance IsGObject SVGForeignObjectElement where+  typeGType _ = gTypeSVGForeignObjectElement+  {-# INLINE typeGType #-}++gTypeSVGForeignObjectElement :: JSM GType+gTypeSVGForeignObjectElement = GType . Object <$> jsg "SVGForeignObjectElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGGElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGElement Mozilla SVGGElement documentation>+newtype SVGGElement = SVGGElement { unSVGGElement :: JSVal }++instance PToJSVal SVGGElement where+  pToJSVal = unSVGGElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGGElement where+  pFromJSVal = SVGGElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGGElement where+  toJSVal = return . unSVGGElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGGElement where+  fromJSVal v = fmap SVGGElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGGElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGGElement where+  makeObject = makeObject . unSVGGElement++instance IsSVGGraphicsElement SVGGElement+instance IsSVGElement SVGGElement+instance IsElement SVGGElement+instance IsNode SVGGElement+instance IsEventTarget SVGGElement+instance IsGObject SVGGElement where+  typeGType _ = gTypeSVGGElement+  {-# INLINE typeGType #-}++gTypeSVGGElement :: JSM GType+gTypeSVGGElement = GType . Object <$> jsg "SVGGElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGGlyphElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphElement Mozilla SVGGlyphElement documentation>+newtype SVGGlyphElement = SVGGlyphElement { unSVGGlyphElement :: JSVal }++instance PToJSVal SVGGlyphElement where+  pToJSVal = unSVGGlyphElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGGlyphElement where+  pFromJSVal = SVGGlyphElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGGlyphElement where+  toJSVal = return . unSVGGlyphElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGGlyphElement where+  fromJSVal v = fmap SVGGlyphElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGGlyphElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGGlyphElement where+  makeObject = makeObject . unSVGGlyphElement++instance IsSVGElement SVGGlyphElement+instance IsElement SVGGlyphElement+instance IsNode SVGGlyphElement+instance IsEventTarget SVGGlyphElement+instance IsGObject SVGGlyphElement where+  typeGType _ = gTypeSVGGlyphElement+  {-# INLINE typeGType #-}++gTypeSVGGlyphElement :: JSM GType+gTypeSVGGlyphElement = GType . Object <$> jsg "SVGGlyphElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGGlyphRefElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement Mozilla SVGGlyphRefElement documentation>+newtype SVGGlyphRefElement = SVGGlyphRefElement { unSVGGlyphRefElement :: JSVal }++instance PToJSVal SVGGlyphRefElement where+  pToJSVal = unSVGGlyphRefElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGGlyphRefElement where+  pFromJSVal = SVGGlyphRefElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGGlyphRefElement where+  toJSVal = return . unSVGGlyphRefElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGGlyphRefElement where+  fromJSVal v = fmap SVGGlyphRefElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGGlyphRefElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGGlyphRefElement where+  makeObject = makeObject . unSVGGlyphRefElement++instance IsSVGElement SVGGlyphRefElement+instance IsElement SVGGlyphRefElement+instance IsNode SVGGlyphRefElement+instance IsEventTarget SVGGlyphRefElement+instance IsGObject SVGGlyphRefElement where+  typeGType _ = gTypeSVGGlyphRefElement+  {-# INLINE typeGType #-}++gTypeSVGGlyphRefElement :: JSM GType+gTypeSVGGlyphRefElement = GType . Object <$> jsg "SVGGlyphRefElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGGradientElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement Mozilla SVGGradientElement documentation>+newtype SVGGradientElement = SVGGradientElement { unSVGGradientElement :: JSVal }++instance PToJSVal SVGGradientElement where+  pToJSVal = unSVGGradientElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGGradientElement where+  pFromJSVal = SVGGradientElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGGradientElement where+  toJSVal = return . unSVGGradientElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGGradientElement where+  fromJSVal v = fmap SVGGradientElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGGradientElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGGradientElement where+  makeObject = makeObject . unSVGGradientElement++class IsSVGElement o => IsSVGGradientElement o+toSVGGradientElement :: IsSVGGradientElement o => o -> SVGGradientElement+toSVGGradientElement = SVGGradientElement . coerce++instance IsSVGGradientElement SVGGradientElement+instance IsSVGElement SVGGradientElement+instance IsElement SVGGradientElement+instance IsNode SVGGradientElement+instance IsEventTarget SVGGradientElement+instance IsGObject SVGGradientElement where+  typeGType _ = gTypeSVGGradientElement+  {-# INLINE typeGType #-}++gTypeSVGGradientElement :: JSM GType+gTypeSVGGradientElement = GType . Object <$> jsg "SVGGradientElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGGraphicsElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement Mozilla SVGGraphicsElement documentation>+newtype SVGGraphicsElement = SVGGraphicsElement { unSVGGraphicsElement :: JSVal }++instance PToJSVal SVGGraphicsElement where+  pToJSVal = unSVGGraphicsElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGGraphicsElement where+  pFromJSVal = SVGGraphicsElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGGraphicsElement where+  toJSVal = return . unSVGGraphicsElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGGraphicsElement where+  fromJSVal v = fmap SVGGraphicsElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGGraphicsElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGGraphicsElement where+  makeObject = makeObject . unSVGGraphicsElement++class IsSVGElement o => IsSVGGraphicsElement o+toSVGGraphicsElement :: IsSVGGraphicsElement o => o -> SVGGraphicsElement+toSVGGraphicsElement = SVGGraphicsElement . coerce++instance IsSVGGraphicsElement SVGGraphicsElement+instance IsSVGElement SVGGraphicsElement+instance IsElement SVGGraphicsElement+instance IsNode SVGGraphicsElement+instance IsEventTarget SVGGraphicsElement+instance IsGObject SVGGraphicsElement where+  typeGType _ = gTypeSVGGraphicsElement+  {-# INLINE typeGType #-}++gTypeSVGGraphicsElement :: JSM GType+gTypeSVGGraphicsElement = GType . Object <$> jsg "SVGGraphicsElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGHKernElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGHKernElement Mozilla SVGHKernElement documentation>+newtype SVGHKernElement = SVGHKernElement { unSVGHKernElement :: JSVal }++instance PToJSVal SVGHKernElement where+  pToJSVal = unSVGHKernElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGHKernElement where+  pFromJSVal = SVGHKernElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGHKernElement where+  toJSVal = return . unSVGHKernElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGHKernElement where+  fromJSVal v = fmap SVGHKernElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGHKernElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGHKernElement where+  makeObject = makeObject . unSVGHKernElement++instance IsSVGElement SVGHKernElement+instance IsElement SVGHKernElement+instance IsNode SVGHKernElement+instance IsEventTarget SVGHKernElement+instance IsGObject SVGHKernElement where+  typeGType _ = gTypeSVGHKernElement+  {-# INLINE typeGType #-}++gTypeSVGHKernElement :: JSM GType+gTypeSVGHKernElement = GType . Object <$> jsg "SVGHKernElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGImageElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement Mozilla SVGImageElement documentation>+newtype SVGImageElement = SVGImageElement { unSVGImageElement :: JSVal }++instance PToJSVal SVGImageElement where+  pToJSVal = unSVGImageElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGImageElement where+  pFromJSVal = SVGImageElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGImageElement where+  toJSVal = return . unSVGImageElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGImageElement where+  fromJSVal v = fmap SVGImageElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGImageElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGImageElement where+  makeObject = makeObject . unSVGImageElement++instance IsSVGGraphicsElement SVGImageElement+instance IsSVGElement SVGImageElement+instance IsElement SVGImageElement+instance IsNode SVGImageElement+instance IsEventTarget SVGImageElement+instance IsGObject SVGImageElement where+  typeGType _ = gTypeSVGImageElement+  {-# INLINE typeGType #-}++gTypeSVGImageElement :: JSM GType+gTypeSVGImageElement = GType . Object <$> jsg "SVGImageElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGLength".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength Mozilla SVGLength documentation>+newtype SVGLength = SVGLength { unSVGLength :: JSVal }++instance PToJSVal SVGLength where+  pToJSVal = unSVGLength+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGLength where+  pFromJSVal = SVGLength+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGLength where+  toJSVal = return . unSVGLength+  {-# INLINE toJSVal #-}++instance FromJSVal SVGLength where+  fromJSVal v = fmap SVGLength <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGLength+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGLength where+  makeObject = makeObject . unSVGLength++instance IsGObject SVGLength where+  typeGType _ = gTypeSVGLength+  {-# INLINE typeGType #-}++gTypeSVGLength :: JSM GType+gTypeSVGLength = GType . Object <$> jsg "SVGLength"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGLengthList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList Mozilla SVGLengthList documentation>+newtype SVGLengthList = SVGLengthList { unSVGLengthList :: JSVal }++instance PToJSVal SVGLengthList where+  pToJSVal = unSVGLengthList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGLengthList where+  pFromJSVal = SVGLengthList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGLengthList where+  toJSVal = return . unSVGLengthList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGLengthList where+  fromJSVal v = fmap SVGLengthList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGLengthList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGLengthList where+  makeObject = makeObject . unSVGLengthList++instance IsGObject SVGLengthList where+  typeGType _ = gTypeSVGLengthList+  {-# INLINE typeGType #-}++gTypeSVGLengthList :: JSM GType+gTypeSVGLengthList = GType . Object <$> jsg "SVGLengthList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGLineElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement Mozilla SVGLineElement documentation>+newtype SVGLineElement = SVGLineElement { unSVGLineElement :: JSVal }++instance PToJSVal SVGLineElement where+  pToJSVal = unSVGLineElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGLineElement where+  pFromJSVal = SVGLineElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGLineElement where+  toJSVal = return . unSVGLineElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGLineElement where+  fromJSVal v = fmap SVGLineElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGLineElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGLineElement where+  makeObject = makeObject . unSVGLineElement++instance IsSVGGraphicsElement SVGLineElement+instance IsSVGElement SVGLineElement+instance IsElement SVGLineElement+instance IsNode SVGLineElement+instance IsEventTarget SVGLineElement+instance IsGObject SVGLineElement where+  typeGType _ = gTypeSVGLineElement+  {-# INLINE typeGType #-}++gTypeSVGLineElement :: JSM GType+gTypeSVGLineElement = GType . Object <$> jsg "SVGLineElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGLinearGradientElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGradientElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement Mozilla SVGLinearGradientElement documentation>+newtype SVGLinearGradientElement = SVGLinearGradientElement { unSVGLinearGradientElement :: JSVal }++instance PToJSVal SVGLinearGradientElement where+  pToJSVal = unSVGLinearGradientElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGLinearGradientElement where+  pFromJSVal = SVGLinearGradientElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGLinearGradientElement where+  toJSVal = return . unSVGLinearGradientElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGLinearGradientElement where+  fromJSVal v = fmap SVGLinearGradientElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGLinearGradientElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGLinearGradientElement where+  makeObject = makeObject . unSVGLinearGradientElement++instance IsSVGGradientElement SVGLinearGradientElement+instance IsSVGElement SVGLinearGradientElement+instance IsElement SVGLinearGradientElement+instance IsNode SVGLinearGradientElement+instance IsEventTarget SVGLinearGradientElement+instance IsGObject SVGLinearGradientElement where+  typeGType _ = gTypeSVGLinearGradientElement+  {-# INLINE typeGType #-}++gTypeSVGLinearGradientElement :: JSM GType+gTypeSVGLinearGradientElement = GType . Object <$> jsg "SVGLinearGradientElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGMPathElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMPathElement Mozilla SVGMPathElement documentation>+newtype SVGMPathElement = SVGMPathElement { unSVGMPathElement :: JSVal }++instance PToJSVal SVGMPathElement where+  pToJSVal = unSVGMPathElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGMPathElement where+  pFromJSVal = SVGMPathElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGMPathElement where+  toJSVal = return . unSVGMPathElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGMPathElement where+  fromJSVal v = fmap SVGMPathElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGMPathElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGMPathElement where+  makeObject = makeObject . unSVGMPathElement++instance IsSVGElement SVGMPathElement+instance IsElement SVGMPathElement+instance IsNode SVGMPathElement+instance IsEventTarget SVGMPathElement+instance IsGObject SVGMPathElement where+  typeGType _ = gTypeSVGMPathElement+  {-# INLINE typeGType #-}++gTypeSVGMPathElement :: JSM GType+gTypeSVGMPathElement = GType . Object <$> jsg "SVGMPathElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGMarkerElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement Mozilla SVGMarkerElement documentation>+newtype SVGMarkerElement = SVGMarkerElement { unSVGMarkerElement :: JSVal }++instance PToJSVal SVGMarkerElement where+  pToJSVal = unSVGMarkerElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGMarkerElement where+  pFromJSVal = SVGMarkerElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGMarkerElement where+  toJSVal = return . unSVGMarkerElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGMarkerElement where+  fromJSVal v = fmap SVGMarkerElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGMarkerElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGMarkerElement where+  makeObject = makeObject . unSVGMarkerElement++instance IsSVGElement SVGMarkerElement+instance IsElement SVGMarkerElement+instance IsNode SVGMarkerElement+instance IsEventTarget SVGMarkerElement+instance IsGObject SVGMarkerElement where+  typeGType _ = gTypeSVGMarkerElement+  {-# INLINE typeGType #-}++gTypeSVGMarkerElement :: JSM GType+gTypeSVGMarkerElement = GType . Object <$> jsg "SVGMarkerElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGMaskElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement Mozilla SVGMaskElement documentation>+newtype SVGMaskElement = SVGMaskElement { unSVGMaskElement :: JSVal }++instance PToJSVal SVGMaskElement where+  pToJSVal = unSVGMaskElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGMaskElement where+  pFromJSVal = SVGMaskElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGMaskElement where+  toJSVal = return . unSVGMaskElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGMaskElement where+  fromJSVal v = fmap SVGMaskElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGMaskElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGMaskElement where+  makeObject = makeObject . unSVGMaskElement++instance IsSVGElement SVGMaskElement+instance IsElement SVGMaskElement+instance IsNode SVGMaskElement+instance IsEventTarget SVGMaskElement+instance IsGObject SVGMaskElement where+  typeGType _ = gTypeSVGMaskElement+  {-# INLINE typeGType #-}++gTypeSVGMaskElement :: JSM GType+gTypeSVGMaskElement = GType . Object <$> jsg "SVGMaskElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGMatrix".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix Mozilla SVGMatrix documentation>+newtype SVGMatrix = SVGMatrix { unSVGMatrix :: JSVal }++instance PToJSVal SVGMatrix where+  pToJSVal = unSVGMatrix+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGMatrix where+  pFromJSVal = SVGMatrix+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGMatrix where+  toJSVal = return . unSVGMatrix+  {-# INLINE toJSVal #-}++instance FromJSVal SVGMatrix where+  fromJSVal v = fmap SVGMatrix <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGMatrix+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGMatrix where+  makeObject = makeObject . unSVGMatrix++instance IsGObject SVGMatrix where+  typeGType _ = gTypeSVGMatrix+  {-# INLINE typeGType #-}++gTypeSVGMatrix :: JSM GType+gTypeSVGMatrix = GType . Object <$> jsg "SVGMatrix"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGMetadataElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMetadataElement Mozilla SVGMetadataElement documentation>+newtype SVGMetadataElement = SVGMetadataElement { unSVGMetadataElement :: JSVal }++instance PToJSVal SVGMetadataElement where+  pToJSVal = unSVGMetadataElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGMetadataElement where+  pFromJSVal = SVGMetadataElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGMetadataElement where+  toJSVal = return . unSVGMetadataElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGMetadataElement where+  fromJSVal v = fmap SVGMetadataElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGMetadataElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGMetadataElement where+  makeObject = makeObject . unSVGMetadataElement++instance IsSVGElement SVGMetadataElement+instance IsElement SVGMetadataElement+instance IsNode SVGMetadataElement+instance IsEventTarget SVGMetadataElement+instance IsGObject SVGMetadataElement where+  typeGType _ = gTypeSVGMetadataElement+  {-# INLINE typeGType #-}++gTypeSVGMetadataElement :: JSM GType+gTypeSVGMetadataElement = GType . Object <$> jsg "SVGMetadataElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGMissingGlyphElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMissingGlyphElement Mozilla SVGMissingGlyphElement documentation>+newtype SVGMissingGlyphElement = SVGMissingGlyphElement { unSVGMissingGlyphElement :: JSVal }++instance PToJSVal SVGMissingGlyphElement where+  pToJSVal = unSVGMissingGlyphElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGMissingGlyphElement where+  pFromJSVal = SVGMissingGlyphElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGMissingGlyphElement where+  toJSVal = return . unSVGMissingGlyphElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGMissingGlyphElement where+  fromJSVal v = fmap SVGMissingGlyphElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGMissingGlyphElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGMissingGlyphElement where+  makeObject = makeObject . unSVGMissingGlyphElement++instance IsSVGElement SVGMissingGlyphElement+instance IsElement SVGMissingGlyphElement+instance IsNode SVGMissingGlyphElement+instance IsEventTarget SVGMissingGlyphElement+instance IsGObject SVGMissingGlyphElement where+  typeGType _ = gTypeSVGMissingGlyphElement+  {-# INLINE typeGType #-}++gTypeSVGMissingGlyphElement :: JSM GType+gTypeSVGMissingGlyphElement = GType . Object <$> jsg "SVGMissingGlyphElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGNumber".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumber Mozilla SVGNumber documentation>+newtype SVGNumber = SVGNumber { unSVGNumber :: JSVal }++instance PToJSVal SVGNumber where+  pToJSVal = unSVGNumber+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGNumber where+  pFromJSVal = SVGNumber+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGNumber where+  toJSVal = return . unSVGNumber+  {-# INLINE toJSVal #-}++instance FromJSVal SVGNumber where+  fromJSVal v = fmap SVGNumber <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGNumber+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGNumber where+  makeObject = makeObject . unSVGNumber++instance IsGObject SVGNumber where+  typeGType _ = gTypeSVGNumber+  {-# INLINE typeGType #-}++gTypeSVGNumber :: JSM GType+gTypeSVGNumber = GType . Object <$> jsg "SVGNumber"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGNumberList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList Mozilla SVGNumberList documentation>+newtype SVGNumberList = SVGNumberList { unSVGNumberList :: JSVal }++instance PToJSVal SVGNumberList where+  pToJSVal = unSVGNumberList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGNumberList where+  pFromJSVal = SVGNumberList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGNumberList where+  toJSVal = return . unSVGNumberList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGNumberList where+  fromJSVal v = fmap SVGNumberList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGNumberList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGNumberList where+  makeObject = makeObject . unSVGNumberList++instance IsGObject SVGNumberList where+  typeGType _ = gTypeSVGNumberList+  {-# INLINE typeGType #-}++gTypeSVGNumberList :: JSM GType+gTypeSVGNumberList = GType . Object <$> jsg "SVGNumberList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPaint".+-- Base interface functions are in:+--+--     * "JSDOM.SVGColor"+--     * "JSDOM.CSSValue"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint Mozilla SVGPaint documentation>+newtype SVGPaint = SVGPaint { unSVGPaint :: JSVal }++instance PToJSVal SVGPaint where+  pToJSVal = unSVGPaint+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPaint where+  pFromJSVal = SVGPaint+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPaint where+  toJSVal = return . unSVGPaint+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPaint where+  fromJSVal v = fmap SVGPaint <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPaint+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPaint where+  makeObject = makeObject . unSVGPaint++instance IsSVGColor SVGPaint+instance IsCSSValue SVGPaint+instance IsGObject SVGPaint where+  typeGType _ = gTypeSVGPaint+  {-# INLINE typeGType #-}++gTypeSVGPaint :: JSM GType+gTypeSVGPaint = GType . Object <$> jsg "SVGPaint"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement Mozilla SVGPathElement documentation>+newtype SVGPathElement = SVGPathElement { unSVGPathElement :: JSVal }++instance PToJSVal SVGPathElement where+  pToJSVal = unSVGPathElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathElement where+  pFromJSVal = SVGPathElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathElement where+  toJSVal = return . unSVGPathElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathElement where+  fromJSVal v = fmap SVGPathElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathElement where+  makeObject = makeObject . unSVGPathElement++instance IsSVGGraphicsElement SVGPathElement+instance IsSVGElement SVGPathElement+instance IsElement SVGPathElement+instance IsNode SVGPathElement+instance IsEventTarget SVGPathElement+instance IsGObject SVGPathElement where+  typeGType _ = gTypeSVGPathElement+  {-# INLINE typeGType #-}++gTypeSVGPathElement :: JSM GType+gTypeSVGPathElement = GType . Object <$> jsg "SVGPathElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSeg".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSeg Mozilla SVGPathSeg documentation>+newtype SVGPathSeg = SVGPathSeg { unSVGPathSeg :: JSVal }++instance PToJSVal SVGPathSeg where+  pToJSVal = unSVGPathSeg+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSeg where+  pFromJSVal = SVGPathSeg+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSeg where+  toJSVal = return . unSVGPathSeg+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSeg where+  fromJSVal v = fmap SVGPathSeg <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSeg+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSeg where+  makeObject = makeObject . unSVGPathSeg++class IsGObject o => IsSVGPathSeg o+toSVGPathSeg :: IsSVGPathSeg o => o -> SVGPathSeg+toSVGPathSeg = SVGPathSeg . coerce++instance IsSVGPathSeg SVGPathSeg+instance IsGObject SVGPathSeg where+  typeGType _ = gTypeSVGPathSeg+  {-# INLINE typeGType #-}++gTypeSVGPathSeg :: JSM GType+gTypeSVGPathSeg = GType . Object <$> jsg "SVGPathSeg"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegArcAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs Mozilla SVGPathSegArcAbs documentation>+newtype SVGPathSegArcAbs = SVGPathSegArcAbs { unSVGPathSegArcAbs :: JSVal }++instance PToJSVal SVGPathSegArcAbs where+  pToJSVal = unSVGPathSegArcAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegArcAbs where+  pFromJSVal = SVGPathSegArcAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegArcAbs where+  toJSVal = return . unSVGPathSegArcAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegArcAbs where+  fromJSVal v = fmap SVGPathSegArcAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegArcAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegArcAbs where+  makeObject = makeObject . unSVGPathSegArcAbs++instance IsSVGPathSeg SVGPathSegArcAbs+instance IsGObject SVGPathSegArcAbs where+  typeGType _ = gTypeSVGPathSegArcAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegArcAbs :: JSM GType+gTypeSVGPathSegArcAbs = GType . Object <$> jsg "SVGPathSegArcAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegArcRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel Mozilla SVGPathSegArcRel documentation>+newtype SVGPathSegArcRel = SVGPathSegArcRel { unSVGPathSegArcRel :: JSVal }++instance PToJSVal SVGPathSegArcRel where+  pToJSVal = unSVGPathSegArcRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegArcRel where+  pFromJSVal = SVGPathSegArcRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegArcRel where+  toJSVal = return . unSVGPathSegArcRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegArcRel where+  fromJSVal v = fmap SVGPathSegArcRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegArcRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegArcRel where+  makeObject = makeObject . unSVGPathSegArcRel++instance IsSVGPathSeg SVGPathSegArcRel+instance IsGObject SVGPathSegArcRel where+  typeGType _ = gTypeSVGPathSegArcRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegArcRel :: JSM GType+gTypeSVGPathSegArcRel = GType . Object <$> jsg "SVGPathSegArcRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegClosePath".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegClosePath Mozilla SVGPathSegClosePath documentation>+newtype SVGPathSegClosePath = SVGPathSegClosePath { unSVGPathSegClosePath :: JSVal }++instance PToJSVal SVGPathSegClosePath where+  pToJSVal = unSVGPathSegClosePath+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegClosePath where+  pFromJSVal = SVGPathSegClosePath+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegClosePath where+  toJSVal = return . unSVGPathSegClosePath+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegClosePath where+  fromJSVal v = fmap SVGPathSegClosePath <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegClosePath+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegClosePath where+  makeObject = makeObject . unSVGPathSegClosePath++instance IsSVGPathSeg SVGPathSegClosePath+instance IsGObject SVGPathSegClosePath where+  typeGType _ = gTypeSVGPathSegClosePath+  {-# INLINE typeGType #-}++gTypeSVGPathSegClosePath :: JSM GType+gTypeSVGPathSegClosePath = GType . Object <$> jsg "SVGPathSegClosePath"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs Mozilla SVGPathSegCurvetoCubicAbs documentation>+newtype SVGPathSegCurvetoCubicAbs = SVGPathSegCurvetoCubicAbs { unSVGPathSegCurvetoCubicAbs :: JSVal }++instance PToJSVal SVGPathSegCurvetoCubicAbs where+  pToJSVal = unSVGPathSegCurvetoCubicAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoCubicAbs where+  pFromJSVal = SVGPathSegCurvetoCubicAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoCubicAbs where+  toJSVal = return . unSVGPathSegCurvetoCubicAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoCubicAbs where+  fromJSVal v = fmap SVGPathSegCurvetoCubicAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoCubicAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoCubicAbs where+  makeObject = makeObject . unSVGPathSegCurvetoCubicAbs++instance IsSVGPathSeg SVGPathSegCurvetoCubicAbs+instance IsGObject SVGPathSegCurvetoCubicAbs where+  typeGType _ = gTypeSVGPathSegCurvetoCubicAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoCubicAbs :: JSM GType+gTypeSVGPathSegCurvetoCubicAbs = GType . Object <$> jsg "SVGPathSegCurvetoCubicAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel Mozilla SVGPathSegCurvetoCubicRel documentation>+newtype SVGPathSegCurvetoCubicRel = SVGPathSegCurvetoCubicRel { unSVGPathSegCurvetoCubicRel :: JSVal }++instance PToJSVal SVGPathSegCurvetoCubicRel where+  pToJSVal = unSVGPathSegCurvetoCubicRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoCubicRel where+  pFromJSVal = SVGPathSegCurvetoCubicRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoCubicRel where+  toJSVal = return . unSVGPathSegCurvetoCubicRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoCubicRel where+  fromJSVal v = fmap SVGPathSegCurvetoCubicRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoCubicRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoCubicRel where+  makeObject = makeObject . unSVGPathSegCurvetoCubicRel++instance IsSVGPathSeg SVGPathSegCurvetoCubicRel+instance IsGObject SVGPathSegCurvetoCubicRel where+  typeGType _ = gTypeSVGPathSegCurvetoCubicRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoCubicRel :: JSM GType+gTypeSVGPathSegCurvetoCubicRel = GType . Object <$> jsg "SVGPathSegCurvetoCubicRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicSmoothAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathSegCurvetoCubicSmoothAbs documentation>+newtype SVGPathSegCurvetoCubicSmoothAbs = SVGPathSegCurvetoCubicSmoothAbs { unSVGPathSegCurvetoCubicSmoothAbs :: JSVal }++instance PToJSVal SVGPathSegCurvetoCubicSmoothAbs where+  pToJSVal = unSVGPathSegCurvetoCubicSmoothAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoCubicSmoothAbs where+  pFromJSVal = SVGPathSegCurvetoCubicSmoothAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoCubicSmoothAbs where+  toJSVal = return . unSVGPathSegCurvetoCubicSmoothAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoCubicSmoothAbs where+  fromJSVal v = fmap SVGPathSegCurvetoCubicSmoothAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoCubicSmoothAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoCubicSmoothAbs where+  makeObject = makeObject . unSVGPathSegCurvetoCubicSmoothAbs++instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothAbs+instance IsGObject SVGPathSegCurvetoCubicSmoothAbs where+  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoCubicSmoothAbs :: JSM GType+gTypeSVGPathSegCurvetoCubicSmoothAbs = GType . Object <$> jsg "SVGPathSegCurvetoCubicSmoothAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoCubicSmoothRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathSegCurvetoCubicSmoothRel documentation>+newtype SVGPathSegCurvetoCubicSmoothRel = SVGPathSegCurvetoCubicSmoothRel { unSVGPathSegCurvetoCubicSmoothRel :: JSVal }++instance PToJSVal SVGPathSegCurvetoCubicSmoothRel where+  pToJSVal = unSVGPathSegCurvetoCubicSmoothRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoCubicSmoothRel where+  pFromJSVal = SVGPathSegCurvetoCubicSmoothRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoCubicSmoothRel where+  toJSVal = return . unSVGPathSegCurvetoCubicSmoothRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoCubicSmoothRel where+  fromJSVal v = fmap SVGPathSegCurvetoCubicSmoothRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoCubicSmoothRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoCubicSmoothRel where+  makeObject = makeObject . unSVGPathSegCurvetoCubicSmoothRel++instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothRel+instance IsGObject SVGPathSegCurvetoCubicSmoothRel where+  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoCubicSmoothRel :: JSM GType+gTypeSVGPathSegCurvetoCubicSmoothRel = GType . Object <$> jsg "SVGPathSegCurvetoCubicSmoothRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs Mozilla SVGPathSegCurvetoQuadraticAbs documentation>+newtype SVGPathSegCurvetoQuadraticAbs = SVGPathSegCurvetoQuadraticAbs { unSVGPathSegCurvetoQuadraticAbs :: JSVal }++instance PToJSVal SVGPathSegCurvetoQuadraticAbs where+  pToJSVal = unSVGPathSegCurvetoQuadraticAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoQuadraticAbs where+  pFromJSVal = SVGPathSegCurvetoQuadraticAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoQuadraticAbs where+  toJSVal = return . unSVGPathSegCurvetoQuadraticAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoQuadraticAbs where+  fromJSVal v = fmap SVGPathSegCurvetoQuadraticAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoQuadraticAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoQuadraticAbs where+  makeObject = makeObject . unSVGPathSegCurvetoQuadraticAbs++instance IsSVGPathSeg SVGPathSegCurvetoQuadraticAbs+instance IsGObject SVGPathSegCurvetoQuadraticAbs where+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoQuadraticAbs :: JSM GType+gTypeSVGPathSegCurvetoQuadraticAbs = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel Mozilla SVGPathSegCurvetoQuadraticRel documentation>+newtype SVGPathSegCurvetoQuadraticRel = SVGPathSegCurvetoQuadraticRel { unSVGPathSegCurvetoQuadraticRel :: JSVal }++instance PToJSVal SVGPathSegCurvetoQuadraticRel where+  pToJSVal = unSVGPathSegCurvetoQuadraticRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoQuadraticRel where+  pFromJSVal = SVGPathSegCurvetoQuadraticRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoQuadraticRel where+  toJSVal = return . unSVGPathSegCurvetoQuadraticRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoQuadraticRel where+  fromJSVal v = fmap SVGPathSegCurvetoQuadraticRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoQuadraticRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoQuadraticRel where+  makeObject = makeObject . unSVGPathSegCurvetoQuadraticRel++instance IsSVGPathSeg SVGPathSegCurvetoQuadraticRel+instance IsGObject SVGPathSegCurvetoQuadraticRel where+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoQuadraticRel :: JSM GType+gTypeSVGPathSegCurvetoQuadraticRel = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticSmoothAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathSegCurvetoQuadraticSmoothAbs documentation>+newtype SVGPathSegCurvetoQuadraticSmoothAbs = SVGPathSegCurvetoQuadraticSmoothAbs { unSVGPathSegCurvetoQuadraticSmoothAbs :: JSVal }++instance PToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where+  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where+  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where+  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where+  fromJSVal v = fmap SVGPathSegCurvetoQuadraticSmoothAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoQuadraticSmoothAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoQuadraticSmoothAbs where+  makeObject = makeObject . unSVGPathSegCurvetoQuadraticSmoothAbs++instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothAbs+instance IsGObject SVGPathSegCurvetoQuadraticSmoothAbs where+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoQuadraticSmoothAbs :: JSM GType+gTypeSVGPathSegCurvetoQuadraticSmoothAbs = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticSmoothAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegCurvetoQuadraticSmoothRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathSegCurvetoQuadraticSmoothRel documentation>+newtype SVGPathSegCurvetoQuadraticSmoothRel = SVGPathSegCurvetoQuadraticSmoothRel { unSVGPathSegCurvetoQuadraticSmoothRel :: JSVal }++instance PToJSVal SVGPathSegCurvetoQuadraticSmoothRel where+  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothRel where+  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegCurvetoQuadraticSmoothRel where+  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegCurvetoQuadraticSmoothRel where+  fromJSVal v = fmap SVGPathSegCurvetoQuadraticSmoothRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegCurvetoQuadraticSmoothRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegCurvetoQuadraticSmoothRel where+  makeObject = makeObject . unSVGPathSegCurvetoQuadraticSmoothRel++instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothRel+instance IsGObject SVGPathSegCurvetoQuadraticSmoothRel where+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegCurvetoQuadraticSmoothRel :: JSM GType+gTypeSVGPathSegCurvetoQuadraticSmoothRel = GType . Object <$> jsg "SVGPathSegCurvetoQuadraticSmoothRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs Mozilla SVGPathSegLinetoAbs documentation>+newtype SVGPathSegLinetoAbs = SVGPathSegLinetoAbs { unSVGPathSegLinetoAbs :: JSVal }++instance PToJSVal SVGPathSegLinetoAbs where+  pToJSVal = unSVGPathSegLinetoAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegLinetoAbs where+  pFromJSVal = SVGPathSegLinetoAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegLinetoAbs where+  toJSVal = return . unSVGPathSegLinetoAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegLinetoAbs where+  fromJSVal v = fmap SVGPathSegLinetoAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegLinetoAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegLinetoAbs where+  makeObject = makeObject . unSVGPathSegLinetoAbs++instance IsSVGPathSeg SVGPathSegLinetoAbs+instance IsGObject SVGPathSegLinetoAbs where+  typeGType _ = gTypeSVGPathSegLinetoAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegLinetoAbs :: JSM GType+gTypeSVGPathSegLinetoAbs = GType . Object <$> jsg "SVGPathSegLinetoAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoHorizontalAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalAbs Mozilla SVGPathSegLinetoHorizontalAbs documentation>+newtype SVGPathSegLinetoHorizontalAbs = SVGPathSegLinetoHorizontalAbs { unSVGPathSegLinetoHorizontalAbs :: JSVal }++instance PToJSVal SVGPathSegLinetoHorizontalAbs where+  pToJSVal = unSVGPathSegLinetoHorizontalAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegLinetoHorizontalAbs where+  pFromJSVal = SVGPathSegLinetoHorizontalAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegLinetoHorizontalAbs where+  toJSVal = return . unSVGPathSegLinetoHorizontalAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegLinetoHorizontalAbs where+  fromJSVal v = fmap SVGPathSegLinetoHorizontalAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegLinetoHorizontalAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegLinetoHorizontalAbs where+  makeObject = makeObject . unSVGPathSegLinetoHorizontalAbs++instance IsSVGPathSeg SVGPathSegLinetoHorizontalAbs+instance IsGObject SVGPathSegLinetoHorizontalAbs where+  typeGType _ = gTypeSVGPathSegLinetoHorizontalAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegLinetoHorizontalAbs :: JSM GType+gTypeSVGPathSegLinetoHorizontalAbs = GType . Object <$> jsg "SVGPathSegLinetoHorizontalAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoHorizontalRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalRel Mozilla SVGPathSegLinetoHorizontalRel documentation>+newtype SVGPathSegLinetoHorizontalRel = SVGPathSegLinetoHorizontalRel { unSVGPathSegLinetoHorizontalRel :: JSVal }++instance PToJSVal SVGPathSegLinetoHorizontalRel where+  pToJSVal = unSVGPathSegLinetoHorizontalRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegLinetoHorizontalRel where+  pFromJSVal = SVGPathSegLinetoHorizontalRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegLinetoHorizontalRel where+  toJSVal = return . unSVGPathSegLinetoHorizontalRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegLinetoHorizontalRel where+  fromJSVal v = fmap SVGPathSegLinetoHorizontalRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegLinetoHorizontalRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegLinetoHorizontalRel where+  makeObject = makeObject . unSVGPathSegLinetoHorizontalRel++instance IsSVGPathSeg SVGPathSegLinetoHorizontalRel+instance IsGObject SVGPathSegLinetoHorizontalRel where+  typeGType _ = gTypeSVGPathSegLinetoHorizontalRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegLinetoHorizontalRel :: JSM GType+gTypeSVGPathSegLinetoHorizontalRel = GType . Object <$> jsg "SVGPathSegLinetoHorizontalRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel Mozilla SVGPathSegLinetoRel documentation>+newtype SVGPathSegLinetoRel = SVGPathSegLinetoRel { unSVGPathSegLinetoRel :: JSVal }++instance PToJSVal SVGPathSegLinetoRel where+  pToJSVal = unSVGPathSegLinetoRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegLinetoRel where+  pFromJSVal = SVGPathSegLinetoRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegLinetoRel where+  toJSVal = return . unSVGPathSegLinetoRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegLinetoRel where+  fromJSVal v = fmap SVGPathSegLinetoRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegLinetoRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegLinetoRel where+  makeObject = makeObject . unSVGPathSegLinetoRel++instance IsSVGPathSeg SVGPathSegLinetoRel+instance IsGObject SVGPathSegLinetoRel where+  typeGType _ = gTypeSVGPathSegLinetoRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegLinetoRel :: JSM GType+gTypeSVGPathSegLinetoRel = GType . Object <$> jsg "SVGPathSegLinetoRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoVerticalAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalAbs Mozilla SVGPathSegLinetoVerticalAbs documentation>+newtype SVGPathSegLinetoVerticalAbs = SVGPathSegLinetoVerticalAbs { unSVGPathSegLinetoVerticalAbs :: JSVal }++instance PToJSVal SVGPathSegLinetoVerticalAbs where+  pToJSVal = unSVGPathSegLinetoVerticalAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegLinetoVerticalAbs where+  pFromJSVal = SVGPathSegLinetoVerticalAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegLinetoVerticalAbs where+  toJSVal = return . unSVGPathSegLinetoVerticalAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegLinetoVerticalAbs where+  fromJSVal v = fmap SVGPathSegLinetoVerticalAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegLinetoVerticalAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegLinetoVerticalAbs where+  makeObject = makeObject . unSVGPathSegLinetoVerticalAbs++instance IsSVGPathSeg SVGPathSegLinetoVerticalAbs+instance IsGObject SVGPathSegLinetoVerticalAbs where+  typeGType _ = gTypeSVGPathSegLinetoVerticalAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegLinetoVerticalAbs :: JSM GType+gTypeSVGPathSegLinetoVerticalAbs = GType . Object <$> jsg "SVGPathSegLinetoVerticalAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegLinetoVerticalRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalRel Mozilla SVGPathSegLinetoVerticalRel documentation>+newtype SVGPathSegLinetoVerticalRel = SVGPathSegLinetoVerticalRel { unSVGPathSegLinetoVerticalRel :: JSVal }++instance PToJSVal SVGPathSegLinetoVerticalRel where+  pToJSVal = unSVGPathSegLinetoVerticalRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegLinetoVerticalRel where+  pFromJSVal = SVGPathSegLinetoVerticalRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegLinetoVerticalRel where+  toJSVal = return . unSVGPathSegLinetoVerticalRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegLinetoVerticalRel where+  fromJSVal v = fmap SVGPathSegLinetoVerticalRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegLinetoVerticalRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegLinetoVerticalRel where+  makeObject = makeObject . unSVGPathSegLinetoVerticalRel++instance IsSVGPathSeg SVGPathSegLinetoVerticalRel+instance IsGObject SVGPathSegLinetoVerticalRel where+  typeGType _ = gTypeSVGPathSegLinetoVerticalRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegLinetoVerticalRel :: JSM GType+gTypeSVGPathSegLinetoVerticalRel = GType . Object <$> jsg "SVGPathSegLinetoVerticalRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList Mozilla SVGPathSegList documentation>+newtype SVGPathSegList = SVGPathSegList { unSVGPathSegList :: JSVal }++instance PToJSVal SVGPathSegList where+  pToJSVal = unSVGPathSegList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegList where+  pFromJSVal = SVGPathSegList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegList where+  toJSVal = return . unSVGPathSegList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegList where+  fromJSVal v = fmap SVGPathSegList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegList where+  makeObject = makeObject . unSVGPathSegList++instance IsGObject SVGPathSegList where+  typeGType _ = gTypeSVGPathSegList+  {-# INLINE typeGType #-}++gTypeSVGPathSegList :: JSM GType+gTypeSVGPathSegList = GType . Object <$> jsg "SVGPathSegList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegMovetoAbs".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs Mozilla SVGPathSegMovetoAbs documentation>+newtype SVGPathSegMovetoAbs = SVGPathSegMovetoAbs { unSVGPathSegMovetoAbs :: JSVal }++instance PToJSVal SVGPathSegMovetoAbs where+  pToJSVal = unSVGPathSegMovetoAbs+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegMovetoAbs where+  pFromJSVal = SVGPathSegMovetoAbs+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegMovetoAbs where+  toJSVal = return . unSVGPathSegMovetoAbs+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegMovetoAbs where+  fromJSVal v = fmap SVGPathSegMovetoAbs <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegMovetoAbs+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegMovetoAbs where+  makeObject = makeObject . unSVGPathSegMovetoAbs++instance IsSVGPathSeg SVGPathSegMovetoAbs+instance IsGObject SVGPathSegMovetoAbs where+  typeGType _ = gTypeSVGPathSegMovetoAbs+  {-# INLINE typeGType #-}++gTypeSVGPathSegMovetoAbs :: JSM GType+gTypeSVGPathSegMovetoAbs = GType . Object <$> jsg "SVGPathSegMovetoAbs"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPathSegMovetoRel".+-- Base interface functions are in:+--+--     * "JSDOM.SVGPathSeg"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel Mozilla SVGPathSegMovetoRel documentation>+newtype SVGPathSegMovetoRel = SVGPathSegMovetoRel { unSVGPathSegMovetoRel :: JSVal }++instance PToJSVal SVGPathSegMovetoRel where+  pToJSVal = unSVGPathSegMovetoRel+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPathSegMovetoRel where+  pFromJSVal = SVGPathSegMovetoRel+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPathSegMovetoRel where+  toJSVal = return . unSVGPathSegMovetoRel+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPathSegMovetoRel where+  fromJSVal v = fmap SVGPathSegMovetoRel <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPathSegMovetoRel+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPathSegMovetoRel where+  makeObject = makeObject . unSVGPathSegMovetoRel++instance IsSVGPathSeg SVGPathSegMovetoRel+instance IsGObject SVGPathSegMovetoRel where+  typeGType _ = gTypeSVGPathSegMovetoRel+  {-# INLINE typeGType #-}++gTypeSVGPathSegMovetoRel :: JSM GType+gTypeSVGPathSegMovetoRel = GType . Object <$> jsg "SVGPathSegMovetoRel"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPatternElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement Mozilla SVGPatternElement documentation>+newtype SVGPatternElement = SVGPatternElement { unSVGPatternElement :: JSVal }++instance PToJSVal SVGPatternElement where+  pToJSVal = unSVGPatternElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPatternElement where+  pFromJSVal = SVGPatternElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPatternElement where+  toJSVal = return . unSVGPatternElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPatternElement where+  fromJSVal v = fmap SVGPatternElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPatternElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPatternElement where+  makeObject = makeObject . unSVGPatternElement++instance IsSVGElement SVGPatternElement+instance IsElement SVGPatternElement+instance IsNode SVGPatternElement+instance IsEventTarget SVGPatternElement+instance IsGObject SVGPatternElement where+  typeGType _ = gTypeSVGPatternElement+  {-# INLINE typeGType #-}++gTypeSVGPatternElement :: JSM GType+gTypeSVGPatternElement = GType . Object <$> jsg "SVGPatternElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPoint".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint Mozilla SVGPoint documentation>+newtype SVGPoint = SVGPoint { unSVGPoint :: JSVal }++instance PToJSVal SVGPoint where+  pToJSVal = unSVGPoint+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPoint where+  pFromJSVal = SVGPoint+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPoint where+  toJSVal = return . unSVGPoint+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPoint where+  fromJSVal v = fmap SVGPoint <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPoint+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPoint where+  makeObject = makeObject . unSVGPoint++instance IsGObject SVGPoint where+  typeGType _ = gTypeSVGPoint+  {-# INLINE typeGType #-}++gTypeSVGPoint :: JSM GType+gTypeSVGPoint = GType . Object <$> jsg "SVGPoint"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPointList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList Mozilla SVGPointList documentation>+newtype SVGPointList = SVGPointList { unSVGPointList :: JSVal }++instance PToJSVal SVGPointList where+  pToJSVal = unSVGPointList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPointList where+  pFromJSVal = SVGPointList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPointList where+  toJSVal = return . unSVGPointList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPointList where+  fromJSVal v = fmap SVGPointList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPointList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPointList where+  makeObject = makeObject . unSVGPointList++instance IsGObject SVGPointList where+  typeGType _ = gTypeSVGPointList+  {-# INLINE typeGType #-}++gTypeSVGPointList :: JSM GType+gTypeSVGPointList = GType . Object <$> jsg "SVGPointList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPolygonElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement Mozilla SVGPolygonElement documentation>+newtype SVGPolygonElement = SVGPolygonElement { unSVGPolygonElement :: JSVal }++instance PToJSVal SVGPolygonElement where+  pToJSVal = unSVGPolygonElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPolygonElement where+  pFromJSVal = SVGPolygonElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPolygonElement where+  toJSVal = return . unSVGPolygonElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPolygonElement where+  fromJSVal v = fmap SVGPolygonElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPolygonElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPolygonElement where+  makeObject = makeObject . unSVGPolygonElement++instance IsSVGGraphicsElement SVGPolygonElement+instance IsSVGElement SVGPolygonElement+instance IsElement SVGPolygonElement+instance IsNode SVGPolygonElement+instance IsEventTarget SVGPolygonElement+instance IsGObject SVGPolygonElement where+  typeGType _ = gTypeSVGPolygonElement+  {-# INLINE typeGType #-}++gTypeSVGPolygonElement :: JSM GType+gTypeSVGPolygonElement = GType . Object <$> jsg "SVGPolygonElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPolylineElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement Mozilla SVGPolylineElement documentation>+newtype SVGPolylineElement = SVGPolylineElement { unSVGPolylineElement :: JSVal }++instance PToJSVal SVGPolylineElement where+  pToJSVal = unSVGPolylineElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPolylineElement where+  pFromJSVal = SVGPolylineElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPolylineElement where+  toJSVal = return . unSVGPolylineElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPolylineElement where+  fromJSVal v = fmap SVGPolylineElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPolylineElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPolylineElement where+  makeObject = makeObject . unSVGPolylineElement++instance IsSVGGraphicsElement SVGPolylineElement+instance IsSVGElement SVGPolylineElement+instance IsElement SVGPolylineElement+instance IsNode SVGPolylineElement+instance IsEventTarget SVGPolylineElement+instance IsGObject SVGPolylineElement where+  typeGType _ = gTypeSVGPolylineElement+  {-# INLINE typeGType #-}++gTypeSVGPolylineElement :: JSM GType+gTypeSVGPolylineElement = GType . Object <$> jsg "SVGPolylineElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGPreserveAspectRatio".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio Mozilla SVGPreserveAspectRatio documentation>+newtype SVGPreserveAspectRatio = SVGPreserveAspectRatio { unSVGPreserveAspectRatio :: JSVal }++instance PToJSVal SVGPreserveAspectRatio where+  pToJSVal = unSVGPreserveAspectRatio+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGPreserveAspectRatio where+  pFromJSVal = SVGPreserveAspectRatio+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGPreserveAspectRatio where+  toJSVal = return . unSVGPreserveAspectRatio+  {-# INLINE toJSVal #-}++instance FromJSVal SVGPreserveAspectRatio where+  fromJSVal v = fmap SVGPreserveAspectRatio <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGPreserveAspectRatio+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGPreserveAspectRatio where+  makeObject = makeObject . unSVGPreserveAspectRatio++instance IsGObject SVGPreserveAspectRatio where+  typeGType _ = gTypeSVGPreserveAspectRatio+  {-# INLINE typeGType #-}++gTypeSVGPreserveAspectRatio :: JSM GType+gTypeSVGPreserveAspectRatio = GType . Object <$> jsg "SVGPreserveAspectRatio"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGRadialGradientElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGradientElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement Mozilla SVGRadialGradientElement documentation>+newtype SVGRadialGradientElement = SVGRadialGradientElement { unSVGRadialGradientElement :: JSVal }++instance PToJSVal SVGRadialGradientElement where+  pToJSVal = unSVGRadialGradientElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGRadialGradientElement where+  pFromJSVal = SVGRadialGradientElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGRadialGradientElement where+  toJSVal = return . unSVGRadialGradientElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGRadialGradientElement where+  fromJSVal v = fmap SVGRadialGradientElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGRadialGradientElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGRadialGradientElement where+  makeObject = makeObject . unSVGRadialGradientElement++instance IsSVGGradientElement SVGRadialGradientElement+instance IsSVGElement SVGRadialGradientElement+instance IsElement SVGRadialGradientElement+instance IsNode SVGRadialGradientElement+instance IsEventTarget SVGRadialGradientElement+instance IsGObject SVGRadialGradientElement where+  typeGType _ = gTypeSVGRadialGradientElement+  {-# INLINE typeGType #-}++gTypeSVGRadialGradientElement :: JSM GType+gTypeSVGRadialGradientElement = GType . Object <$> jsg "SVGRadialGradientElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGRect".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect Mozilla SVGRect documentation>+newtype SVGRect = SVGRect { unSVGRect :: JSVal }++instance PToJSVal SVGRect where+  pToJSVal = unSVGRect+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGRect where+  pFromJSVal = SVGRect+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGRect where+  toJSVal = return . unSVGRect+  {-# INLINE toJSVal #-}++instance FromJSVal SVGRect where+  fromJSVal v = fmap SVGRect <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGRect+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGRect where+  makeObject = makeObject . unSVGRect++instance IsGObject SVGRect where+  typeGType _ = gTypeSVGRect+  {-# INLINE typeGType #-}++gTypeSVGRect :: JSM GType+gTypeSVGRect = GType . Object <$> jsg "SVGRect"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGRectElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement Mozilla SVGRectElement documentation>+newtype SVGRectElement = SVGRectElement { unSVGRectElement :: JSVal }++instance PToJSVal SVGRectElement where+  pToJSVal = unSVGRectElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGRectElement where+  pFromJSVal = SVGRectElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGRectElement where+  toJSVal = return . unSVGRectElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGRectElement where+  fromJSVal v = fmap SVGRectElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGRectElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGRectElement where+  makeObject = makeObject . unSVGRectElement++instance IsSVGGraphicsElement SVGRectElement+instance IsSVGElement SVGRectElement+instance IsElement SVGRectElement+instance IsNode SVGRectElement+instance IsEventTarget SVGRectElement+instance IsGObject SVGRectElement where+  typeGType _ = gTypeSVGRectElement+  {-# INLINE typeGType #-}++gTypeSVGRectElement :: JSM GType+gTypeSVGRectElement = GType . Object <$> jsg "SVGRectElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGRenderingIntent".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRenderingIntent Mozilla SVGRenderingIntent documentation>+newtype SVGRenderingIntent = SVGRenderingIntent { unSVGRenderingIntent :: JSVal }++instance PToJSVal SVGRenderingIntent where+  pToJSVal = unSVGRenderingIntent+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGRenderingIntent where+  pFromJSVal = SVGRenderingIntent+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGRenderingIntent where+  toJSVal = return . unSVGRenderingIntent+  {-# INLINE toJSVal #-}++instance FromJSVal SVGRenderingIntent where+  fromJSVal v = fmap SVGRenderingIntent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGRenderingIntent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGRenderingIntent where+  makeObject = makeObject . unSVGRenderingIntent++instance IsGObject SVGRenderingIntent where+  typeGType _ = gTypeSVGRenderingIntent+  {-# INLINE typeGType #-}++gTypeSVGRenderingIntent :: JSM GType+gTypeSVGRenderingIntent = GType . Object <$> jsg "SVGRenderingIntent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGSVGElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement Mozilla SVGSVGElement documentation>+newtype SVGSVGElement = SVGSVGElement { unSVGSVGElement :: JSVal }++instance PToJSVal SVGSVGElement where+  pToJSVal = unSVGSVGElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGSVGElement where+  pFromJSVal = SVGSVGElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGSVGElement where+  toJSVal = return . unSVGSVGElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGSVGElement where+  fromJSVal v = fmap SVGSVGElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGSVGElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGSVGElement where+  makeObject = makeObject . unSVGSVGElement++instance IsSVGGraphicsElement SVGSVGElement+instance IsSVGElement SVGSVGElement+instance IsElement SVGSVGElement+instance IsNode SVGSVGElement+instance IsEventTarget SVGSVGElement+instance IsGObject SVGSVGElement where+  typeGType _ = gTypeSVGSVGElement+  {-# INLINE typeGType #-}++gTypeSVGSVGElement :: JSM GType+gTypeSVGSVGElement = GType . Object <$> jsg "SVGSVGElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGScriptElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement Mozilla SVGScriptElement documentation>+newtype SVGScriptElement = SVGScriptElement { unSVGScriptElement :: JSVal }++instance PToJSVal SVGScriptElement where+  pToJSVal = unSVGScriptElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGScriptElement where+  pFromJSVal = SVGScriptElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGScriptElement where+  toJSVal = return . unSVGScriptElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGScriptElement where+  fromJSVal v = fmap SVGScriptElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGScriptElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGScriptElement where+  makeObject = makeObject . unSVGScriptElement++instance IsSVGElement SVGScriptElement+instance IsElement SVGScriptElement+instance IsNode SVGScriptElement+instance IsEventTarget SVGScriptElement+instance IsGObject SVGScriptElement where+  typeGType _ = gTypeSVGScriptElement+  {-# INLINE typeGType #-}++gTypeSVGScriptElement :: JSM GType+gTypeSVGScriptElement = GType . Object <$> jsg "SVGScriptElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGSetElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGAnimationElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSetElement Mozilla SVGSetElement documentation>+newtype SVGSetElement = SVGSetElement { unSVGSetElement :: JSVal }++instance PToJSVal SVGSetElement where+  pToJSVal = unSVGSetElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGSetElement where+  pFromJSVal = SVGSetElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGSetElement where+  toJSVal = return . unSVGSetElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGSetElement where+  fromJSVal v = fmap SVGSetElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGSetElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGSetElement where+  makeObject = makeObject . unSVGSetElement++instance IsSVGAnimationElement SVGSetElement+instance IsSVGElement SVGSetElement+instance IsElement SVGSetElement+instance IsNode SVGSetElement+instance IsEventTarget SVGSetElement+instance IsGObject SVGSetElement where+  typeGType _ = gTypeSVGSetElement+  {-# INLINE typeGType #-}++gTypeSVGSetElement :: JSM GType+gTypeSVGSetElement = GType . Object <$> jsg "SVGSetElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGStopElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement Mozilla SVGStopElement documentation>+newtype SVGStopElement = SVGStopElement { unSVGStopElement :: JSVal }++instance PToJSVal SVGStopElement where+  pToJSVal = unSVGStopElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGStopElement where+  pFromJSVal = SVGStopElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGStopElement where+  toJSVal = return . unSVGStopElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGStopElement where+  fromJSVal v = fmap SVGStopElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGStopElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGStopElement where+  makeObject = makeObject . unSVGStopElement++instance IsSVGElement SVGStopElement+instance IsElement SVGStopElement+instance IsNode SVGStopElement+instance IsEventTarget SVGStopElement+instance IsGObject SVGStopElement where+  typeGType _ = gTypeSVGStopElement+  {-# INLINE typeGType #-}++gTypeSVGStopElement :: JSM GType+gTypeSVGStopElement = GType . Object <$> jsg "SVGStopElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGStringList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList Mozilla SVGStringList documentation>+newtype SVGStringList = SVGStringList { unSVGStringList :: JSVal }++instance PToJSVal SVGStringList where+  pToJSVal = unSVGStringList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGStringList where+  pFromJSVal = SVGStringList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGStringList where+  toJSVal = return . unSVGStringList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGStringList where+  fromJSVal v = fmap SVGStringList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGStringList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGStringList where+  makeObject = makeObject . unSVGStringList++instance IsGObject SVGStringList where+  typeGType _ = gTypeSVGStringList+  {-# INLINE typeGType #-}++gTypeSVGStringList :: JSM GType+gTypeSVGStringList = GType . Object <$> jsg "SVGStringList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGStyleElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement Mozilla SVGStyleElement documentation>+newtype SVGStyleElement = SVGStyleElement { unSVGStyleElement :: JSVal }++instance PToJSVal SVGStyleElement where+  pToJSVal = unSVGStyleElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGStyleElement where+  pFromJSVal = SVGStyleElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGStyleElement where+  toJSVal = return . unSVGStyleElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGStyleElement where+  fromJSVal v = fmap SVGStyleElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGStyleElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGStyleElement where+  makeObject = makeObject . unSVGStyleElement++instance IsSVGElement SVGStyleElement+instance IsElement SVGStyleElement+instance IsNode SVGStyleElement+instance IsEventTarget SVGStyleElement+instance IsGObject SVGStyleElement where+  typeGType _ = gTypeSVGStyleElement+  {-# INLINE typeGType #-}++gTypeSVGStyleElement :: JSM GType+gTypeSVGStyleElement = GType . Object <$> jsg "SVGStyleElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGSwitchElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSwitchElement Mozilla SVGSwitchElement documentation>+newtype SVGSwitchElement = SVGSwitchElement { unSVGSwitchElement :: JSVal }++instance PToJSVal SVGSwitchElement where+  pToJSVal = unSVGSwitchElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGSwitchElement where+  pFromJSVal = SVGSwitchElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGSwitchElement where+  toJSVal = return . unSVGSwitchElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGSwitchElement where+  fromJSVal v = fmap SVGSwitchElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGSwitchElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGSwitchElement where+  makeObject = makeObject . unSVGSwitchElement++instance IsSVGGraphicsElement SVGSwitchElement+instance IsSVGElement SVGSwitchElement+instance IsElement SVGSwitchElement+instance IsNode SVGSwitchElement+instance IsEventTarget SVGSwitchElement+instance IsGObject SVGSwitchElement where+  typeGType _ = gTypeSVGSwitchElement+  {-# INLINE typeGType #-}++gTypeSVGSwitchElement :: JSM GType+gTypeSVGSwitchElement = GType . Object <$> jsg "SVGSwitchElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGSymbolElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSymbolElement Mozilla SVGSymbolElement documentation>+newtype SVGSymbolElement = SVGSymbolElement { unSVGSymbolElement :: JSVal }++instance PToJSVal SVGSymbolElement where+  pToJSVal = unSVGSymbolElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGSymbolElement where+  pFromJSVal = SVGSymbolElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGSymbolElement where+  toJSVal = return . unSVGSymbolElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGSymbolElement where+  fromJSVal v = fmap SVGSymbolElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGSymbolElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGSymbolElement where+  makeObject = makeObject . unSVGSymbolElement++instance IsSVGElement SVGSymbolElement+instance IsElement SVGSymbolElement+instance IsNode SVGSymbolElement+instance IsEventTarget SVGSymbolElement+instance IsGObject SVGSymbolElement where+  typeGType _ = gTypeSVGSymbolElement+  {-# INLINE typeGType #-}++gTypeSVGSymbolElement :: JSM GType+gTypeSVGSymbolElement = GType . Object <$> jsg "SVGSymbolElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTRefElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGTextPositioningElement"+--     * "JSDOM.SVGTextContentElement"+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTRefElement Mozilla SVGTRefElement documentation>+newtype SVGTRefElement = SVGTRefElement { unSVGTRefElement :: JSVal }++instance PToJSVal SVGTRefElement where+  pToJSVal = unSVGTRefElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTRefElement where+  pFromJSVal = SVGTRefElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTRefElement where+  toJSVal = return . unSVGTRefElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTRefElement where+  fromJSVal v = fmap SVGTRefElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTRefElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTRefElement where+  makeObject = makeObject . unSVGTRefElement++instance IsSVGTextPositioningElement SVGTRefElement+instance IsSVGTextContentElement SVGTRefElement+instance IsSVGGraphicsElement SVGTRefElement+instance IsSVGElement SVGTRefElement+instance IsElement SVGTRefElement+instance IsNode SVGTRefElement+instance IsEventTarget SVGTRefElement+instance IsGObject SVGTRefElement where+  typeGType _ = gTypeSVGTRefElement+  {-# INLINE typeGType #-}++gTypeSVGTRefElement :: JSM GType+gTypeSVGTRefElement = GType . Object <$> jsg "SVGTRefElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTSpanElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGTextPositioningElement"+--     * "JSDOM.SVGTextContentElement"+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTSpanElement Mozilla SVGTSpanElement documentation>+newtype SVGTSpanElement = SVGTSpanElement { unSVGTSpanElement :: JSVal }++instance PToJSVal SVGTSpanElement where+  pToJSVal = unSVGTSpanElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTSpanElement where+  pFromJSVal = SVGTSpanElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTSpanElement where+  toJSVal = return . unSVGTSpanElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTSpanElement where+  fromJSVal v = fmap SVGTSpanElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTSpanElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTSpanElement where+  makeObject = makeObject . unSVGTSpanElement++instance IsSVGTextPositioningElement SVGTSpanElement+instance IsSVGTextContentElement SVGTSpanElement+instance IsSVGGraphicsElement SVGTSpanElement+instance IsSVGElement SVGTSpanElement+instance IsElement SVGTSpanElement+instance IsNode SVGTSpanElement+instance IsEventTarget SVGTSpanElement+instance IsGObject SVGTSpanElement where+  typeGType _ = gTypeSVGTSpanElement+  {-# INLINE typeGType #-}++gTypeSVGTSpanElement :: JSM GType+gTypeSVGTSpanElement = GType . Object <$> jsg "SVGTSpanElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTests".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests Mozilla SVGTests documentation>+newtype SVGTests = SVGTests { unSVGTests :: JSVal }++instance PToJSVal SVGTests where+  pToJSVal = unSVGTests+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTests where+  pFromJSVal = SVGTests+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTests where+  toJSVal = return . unSVGTests+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTests where+  fromJSVal v = fmap SVGTests <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTests+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTests where+  makeObject = makeObject . unSVGTests++instance IsGObject SVGTests where+  typeGType _ = gTypeSVGTests+  {-# INLINE typeGType #-}++gTypeSVGTests :: JSM GType+gTypeSVGTests = GType . Object <$> jsg "SVGTests"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTextContentElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement Mozilla SVGTextContentElement documentation>+newtype SVGTextContentElement = SVGTextContentElement { unSVGTextContentElement :: JSVal }++instance PToJSVal SVGTextContentElement where+  pToJSVal = unSVGTextContentElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTextContentElement where+  pFromJSVal = SVGTextContentElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTextContentElement where+  toJSVal = return . unSVGTextContentElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTextContentElement where+  fromJSVal v = fmap SVGTextContentElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTextContentElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTextContentElement where+  makeObject = makeObject . unSVGTextContentElement++class IsSVGGraphicsElement o => IsSVGTextContentElement o+toSVGTextContentElement :: IsSVGTextContentElement o => o -> SVGTextContentElement+toSVGTextContentElement = SVGTextContentElement . coerce++instance IsSVGTextContentElement SVGTextContentElement+instance IsSVGGraphicsElement SVGTextContentElement+instance IsSVGElement SVGTextContentElement+instance IsElement SVGTextContentElement+instance IsNode SVGTextContentElement+instance IsEventTarget SVGTextContentElement+instance IsGObject SVGTextContentElement where+  typeGType _ = gTypeSVGTextContentElement+  {-# INLINE typeGType #-}++gTypeSVGTextContentElement :: JSM GType+gTypeSVGTextContentElement = GType . Object <$> jsg "SVGTextContentElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTextElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGTextPositioningElement"+--     * "JSDOM.SVGTextContentElement"+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextElement Mozilla SVGTextElement documentation>+newtype SVGTextElement = SVGTextElement { unSVGTextElement :: JSVal }++instance PToJSVal SVGTextElement where+  pToJSVal = unSVGTextElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTextElement where+  pFromJSVal = SVGTextElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTextElement where+  toJSVal = return . unSVGTextElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTextElement where+  fromJSVal v = fmap SVGTextElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTextElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTextElement where+  makeObject = makeObject . unSVGTextElement++instance IsSVGTextPositioningElement SVGTextElement+instance IsSVGTextContentElement SVGTextElement+instance IsSVGGraphicsElement SVGTextElement+instance IsSVGElement SVGTextElement+instance IsElement SVGTextElement+instance IsNode SVGTextElement+instance IsEventTarget SVGTextElement+instance IsGObject SVGTextElement where+  typeGType _ = gTypeSVGTextElement+  {-# INLINE typeGType #-}++gTypeSVGTextElement :: JSM GType+gTypeSVGTextElement = GType . Object <$> jsg "SVGTextElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTextPathElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGTextContentElement"+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement Mozilla SVGTextPathElement documentation>+newtype SVGTextPathElement = SVGTextPathElement { unSVGTextPathElement :: JSVal }++instance PToJSVal SVGTextPathElement where+  pToJSVal = unSVGTextPathElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTextPathElement where+  pFromJSVal = SVGTextPathElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTextPathElement where+  toJSVal = return . unSVGTextPathElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTextPathElement where+  fromJSVal v = fmap SVGTextPathElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTextPathElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTextPathElement where+  makeObject = makeObject . unSVGTextPathElement++instance IsSVGTextContentElement SVGTextPathElement+instance IsSVGGraphicsElement SVGTextPathElement+instance IsSVGElement SVGTextPathElement+instance IsElement SVGTextPathElement+instance IsNode SVGTextPathElement+instance IsEventTarget SVGTextPathElement+instance IsGObject SVGTextPathElement where+  typeGType _ = gTypeSVGTextPathElement+  {-# INLINE typeGType #-}++gTypeSVGTextPathElement :: JSM GType+gTypeSVGTextPathElement = GType . Object <$> jsg "SVGTextPathElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTextPositioningElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGTextContentElement"+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement Mozilla SVGTextPositioningElement documentation>+newtype SVGTextPositioningElement = SVGTextPositioningElement { unSVGTextPositioningElement :: JSVal }++instance PToJSVal SVGTextPositioningElement where+  pToJSVal = unSVGTextPositioningElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTextPositioningElement where+  pFromJSVal = SVGTextPositioningElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTextPositioningElement where+  toJSVal = return . unSVGTextPositioningElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTextPositioningElement where+  fromJSVal v = fmap SVGTextPositioningElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTextPositioningElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTextPositioningElement where+  makeObject = makeObject . unSVGTextPositioningElement++class IsSVGTextContentElement o => IsSVGTextPositioningElement o+toSVGTextPositioningElement :: IsSVGTextPositioningElement o => o -> SVGTextPositioningElement+toSVGTextPositioningElement = SVGTextPositioningElement . coerce++instance IsSVGTextPositioningElement SVGTextPositioningElement+instance IsSVGTextContentElement SVGTextPositioningElement+instance IsSVGGraphicsElement SVGTextPositioningElement+instance IsSVGElement SVGTextPositioningElement+instance IsElement SVGTextPositioningElement+instance IsNode SVGTextPositioningElement+instance IsEventTarget SVGTextPositioningElement+instance IsGObject SVGTextPositioningElement where+  typeGType _ = gTypeSVGTextPositioningElement+  {-# INLINE typeGType #-}++gTypeSVGTextPositioningElement :: JSM GType+gTypeSVGTextPositioningElement = GType . Object <$> jsg "SVGTextPositioningElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTitleElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTitleElement Mozilla SVGTitleElement documentation>+newtype SVGTitleElement = SVGTitleElement { unSVGTitleElement :: JSVal }++instance PToJSVal SVGTitleElement where+  pToJSVal = unSVGTitleElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTitleElement where+  pFromJSVal = SVGTitleElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTitleElement where+  toJSVal = return . unSVGTitleElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTitleElement where+  fromJSVal v = fmap SVGTitleElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTitleElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTitleElement where+  makeObject = makeObject . unSVGTitleElement++instance IsSVGElement SVGTitleElement+instance IsElement SVGTitleElement+instance IsNode SVGTitleElement+instance IsEventTarget SVGTitleElement+instance IsGObject SVGTitleElement where+  typeGType _ = gTypeSVGTitleElement+  {-# INLINE typeGType #-}++gTypeSVGTitleElement :: JSM GType+gTypeSVGTitleElement = GType . Object <$> jsg "SVGTitleElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTransform".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform Mozilla SVGTransform documentation>+newtype SVGTransform = SVGTransform { unSVGTransform :: JSVal }++instance PToJSVal SVGTransform where+  pToJSVal = unSVGTransform+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTransform where+  pFromJSVal = SVGTransform+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTransform where+  toJSVal = return . unSVGTransform+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTransform where+  fromJSVal v = fmap SVGTransform <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTransform+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTransform where+  makeObject = makeObject . unSVGTransform++instance IsGObject SVGTransform where+  typeGType _ = gTypeSVGTransform+  {-# INLINE typeGType #-}++gTypeSVGTransform :: JSM GType+gTypeSVGTransform = GType . Object <$> jsg "SVGTransform"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGTransformList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList Mozilla SVGTransformList documentation>+newtype SVGTransformList = SVGTransformList { unSVGTransformList :: JSVal }++instance PToJSVal SVGTransformList where+  pToJSVal = unSVGTransformList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGTransformList where+  pFromJSVal = SVGTransformList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGTransformList where+  toJSVal = return . unSVGTransformList+  {-# INLINE toJSVal #-}++instance FromJSVal SVGTransformList where+  fromJSVal v = fmap SVGTransformList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGTransformList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGTransformList where+  makeObject = makeObject . unSVGTransformList++instance IsGObject SVGTransformList where+  typeGType _ = gTypeSVGTransformList+  {-# INLINE typeGType #-}++gTypeSVGTransformList :: JSM GType+gTypeSVGTransformList = GType . Object <$> jsg "SVGTransformList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGURIReference".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference Mozilla SVGURIReference documentation>+newtype SVGURIReference = SVGURIReference { unSVGURIReference :: JSVal }++instance PToJSVal SVGURIReference where+  pToJSVal = unSVGURIReference+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGURIReference where+  pFromJSVal = SVGURIReference+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGURIReference where+  toJSVal = return . unSVGURIReference+  {-# INLINE toJSVal #-}++instance FromJSVal SVGURIReference where+  fromJSVal v = fmap SVGURIReference <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGURIReference+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGURIReference where+  makeObject = makeObject . unSVGURIReference++instance IsGObject SVGURIReference where+  typeGType _ = gTypeSVGURIReference+  {-# INLINE typeGType #-}++gTypeSVGURIReference :: JSM GType+gTypeSVGURIReference = GType . Object <$> jsg "SVGURIReference"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGUnitTypes".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGUnitTypes Mozilla SVGUnitTypes documentation>+newtype SVGUnitTypes = SVGUnitTypes { unSVGUnitTypes :: JSVal }++instance PToJSVal SVGUnitTypes where+  pToJSVal = unSVGUnitTypes+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGUnitTypes where+  pFromJSVal = SVGUnitTypes+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGUnitTypes where+  toJSVal = return . unSVGUnitTypes+  {-# INLINE toJSVal #-}++instance FromJSVal SVGUnitTypes where+  fromJSVal v = fmap SVGUnitTypes <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGUnitTypes+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGUnitTypes where+  makeObject = makeObject . unSVGUnitTypes++instance IsGObject SVGUnitTypes where+  typeGType _ = gTypeSVGUnitTypes+  {-# INLINE typeGType #-}++gTypeSVGUnitTypes :: JSM GType+gTypeSVGUnitTypes = GType . Object <$> jsg "SVGUnitTypes"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGUseElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGGraphicsElement"+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement Mozilla SVGUseElement documentation>+newtype SVGUseElement = SVGUseElement { unSVGUseElement :: JSVal }++instance PToJSVal SVGUseElement where+  pToJSVal = unSVGUseElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGUseElement where+  pFromJSVal = SVGUseElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGUseElement where+  toJSVal = return . unSVGUseElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGUseElement where+  fromJSVal v = fmap SVGUseElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGUseElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGUseElement where+  makeObject = makeObject . unSVGUseElement++instance IsSVGGraphicsElement SVGUseElement+instance IsSVGElement SVGUseElement+instance IsElement SVGUseElement+instance IsNode SVGUseElement+instance IsEventTarget SVGUseElement+instance IsGObject SVGUseElement where+  typeGType _ = gTypeSVGUseElement+  {-# INLINE typeGType #-}++gTypeSVGUseElement :: JSM GType+gTypeSVGUseElement = GType . Object <$> jsg "SVGUseElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGVKernElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGVKernElement Mozilla SVGVKernElement documentation>+newtype SVGVKernElement = SVGVKernElement { unSVGVKernElement :: JSVal }++instance PToJSVal SVGVKernElement where+  pToJSVal = unSVGVKernElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGVKernElement where+  pFromJSVal = SVGVKernElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGVKernElement where+  toJSVal = return . unSVGVKernElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGVKernElement where+  fromJSVal v = fmap SVGVKernElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGVKernElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGVKernElement where+  makeObject = makeObject . unSVGVKernElement++instance IsSVGElement SVGVKernElement+instance IsElement SVGVKernElement+instance IsNode SVGVKernElement+instance IsEventTarget SVGVKernElement+instance IsGObject SVGVKernElement where+  typeGType _ = gTypeSVGVKernElement+  {-# INLINE typeGType #-}++gTypeSVGVKernElement :: JSM GType+gTypeSVGVKernElement = GType . Object <$> jsg "SVGVKernElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGViewElement".+-- Base interface functions are in:+--+--     * "JSDOM.SVGElement"+--     * "JSDOM.Element"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement Mozilla SVGViewElement documentation>+newtype SVGViewElement = SVGViewElement { unSVGViewElement :: JSVal }++instance PToJSVal SVGViewElement where+  pToJSVal = unSVGViewElement+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGViewElement where+  pFromJSVal = SVGViewElement+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGViewElement where+  toJSVal = return . unSVGViewElement+  {-# INLINE toJSVal #-}++instance FromJSVal SVGViewElement where+  fromJSVal v = fmap SVGViewElement <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGViewElement+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGViewElement where+  makeObject = makeObject . unSVGViewElement++instance IsSVGElement SVGViewElement+instance IsElement SVGViewElement+instance IsNode SVGViewElement+instance IsEventTarget SVGViewElement+instance IsGObject SVGViewElement where+  typeGType _ = gTypeSVGViewElement+  {-# INLINE typeGType #-}++gTypeSVGViewElement :: JSM GType+gTypeSVGViewElement = GType . Object <$> jsg "SVGViewElement"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGViewSpec".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec Mozilla SVGViewSpec documentation>+newtype SVGViewSpec = SVGViewSpec { unSVGViewSpec :: JSVal }++instance PToJSVal SVGViewSpec where+  pToJSVal = unSVGViewSpec+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGViewSpec where+  pFromJSVal = SVGViewSpec+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGViewSpec where+  toJSVal = return . unSVGViewSpec+  {-# INLINE toJSVal #-}++instance FromJSVal SVGViewSpec where+  fromJSVal v = fmap SVGViewSpec <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGViewSpec+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGViewSpec where+  makeObject = makeObject . unSVGViewSpec++instance IsGObject SVGViewSpec where+  typeGType _ = gTypeSVGViewSpec+  {-# INLINE typeGType #-}++gTypeSVGViewSpec :: JSM GType+gTypeSVGViewSpec = GType . Object <$> jsg "SVGViewSpec"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGZoomAndPan".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan Mozilla SVGZoomAndPan documentation>+newtype SVGZoomAndPan = SVGZoomAndPan { unSVGZoomAndPan :: JSVal }++instance PToJSVal SVGZoomAndPan where+  pToJSVal = unSVGZoomAndPan+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGZoomAndPan where+  pFromJSVal = SVGZoomAndPan+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGZoomAndPan where+  toJSVal = return . unSVGZoomAndPan+  {-# INLINE toJSVal #-}++instance FromJSVal SVGZoomAndPan where+  fromJSVal v = fmap SVGZoomAndPan <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGZoomAndPan+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGZoomAndPan where+  makeObject = makeObject . unSVGZoomAndPan++instance IsGObject SVGZoomAndPan where+  typeGType _ = gTypeSVGZoomAndPan+  {-# INLINE typeGType #-}++gTypeSVGZoomAndPan :: JSM GType+gTypeSVGZoomAndPan = GType . Object <$> jsg "SVGZoomAndPan"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SVGZoomEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent Mozilla SVGZoomEvent documentation>+newtype SVGZoomEvent = SVGZoomEvent { unSVGZoomEvent :: JSVal }++instance PToJSVal SVGZoomEvent where+  pToJSVal = unSVGZoomEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal SVGZoomEvent where+  pFromJSVal = SVGZoomEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal SVGZoomEvent where+  toJSVal = return . unSVGZoomEvent+  {-# INLINE toJSVal #-}++instance FromJSVal SVGZoomEvent where+  fromJSVal v = fmap SVGZoomEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SVGZoomEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SVGZoomEvent where+  makeObject = makeObject . unSVGZoomEvent++instance IsUIEvent SVGZoomEvent+instance IsEvent SVGZoomEvent+instance IsGObject SVGZoomEvent where+  typeGType _ = gTypeSVGZoomEvent+  {-# INLINE typeGType #-}++gTypeSVGZoomEvent :: JSM GType+gTypeSVGZoomEvent = GType . Object <$> jsg "SVGZoomEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Screen".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Screen Mozilla Screen documentation>+newtype Screen = Screen { unScreen :: JSVal }++instance PToJSVal Screen where+  pToJSVal = unScreen+  {-# INLINE pToJSVal #-}++instance PFromJSVal Screen where+  pFromJSVal = Screen+  {-# INLINE pFromJSVal #-}++instance ToJSVal Screen where+  toJSVal = return . unScreen+  {-# INLINE toJSVal #-}++instance FromJSVal Screen where+  fromJSVal v = fmap Screen <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Screen+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Screen where+  makeObject = makeObject . unScreen++instance IsGObject Screen where+  typeGType _ = gTypeScreen+  {-# INLINE typeGType #-}++gTypeScreen :: JSM GType+gTypeScreen = GType . Object <$> jsg "Screen"+#else+type IsScreen o = ScreenClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ScriptProcessorNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode Mozilla ScriptProcessorNode documentation>+newtype ScriptProcessorNode = ScriptProcessorNode { unScriptProcessorNode :: JSVal }++instance PToJSVal ScriptProcessorNode where+  pToJSVal = unScriptProcessorNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal ScriptProcessorNode where+  pFromJSVal = ScriptProcessorNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal ScriptProcessorNode where+  toJSVal = return . unScriptProcessorNode+  {-# INLINE toJSVal #-}++instance FromJSVal ScriptProcessorNode where+  fromJSVal v = fmap ScriptProcessorNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ScriptProcessorNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ScriptProcessorNode where+  makeObject = makeObject . unScriptProcessorNode++instance IsAudioNode ScriptProcessorNode+instance IsEventTarget ScriptProcessorNode+instance IsGObject ScriptProcessorNode where+  typeGType _ = gTypeScriptProcessorNode+  {-# INLINE typeGType #-}++gTypeScriptProcessorNode :: JSM GType+gTypeScriptProcessorNode = GType . Object <$> jsg "ScriptProcessorNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ScriptProfile".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile Mozilla ScriptProfile documentation>+newtype ScriptProfile = ScriptProfile { unScriptProfile :: JSVal }++instance PToJSVal ScriptProfile where+  pToJSVal = unScriptProfile+  {-# INLINE pToJSVal #-}++instance PFromJSVal ScriptProfile where+  pFromJSVal = ScriptProfile+  {-# INLINE pFromJSVal #-}++instance ToJSVal ScriptProfile where+  toJSVal = return . unScriptProfile+  {-# INLINE toJSVal #-}++instance FromJSVal ScriptProfile where+  fromJSVal v = fmap ScriptProfile <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ScriptProfile+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ScriptProfile where+  makeObject = makeObject . unScriptProfile++instance IsGObject ScriptProfile where+  typeGType _ = gTypeScriptProfile+  {-# INLINE typeGType #-}++gTypeScriptProfile :: JSM GType+gTypeScriptProfile = GType . Object <$> jsg "ScriptProfile"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ScriptProfileNode".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode Mozilla ScriptProfileNode documentation>+newtype ScriptProfileNode = ScriptProfileNode { unScriptProfileNode :: JSVal }++instance PToJSVal ScriptProfileNode where+  pToJSVal = unScriptProfileNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal ScriptProfileNode where+  pFromJSVal = ScriptProfileNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal ScriptProfileNode where+  toJSVal = return . unScriptProfileNode+  {-# INLINE toJSVal #-}++instance FromJSVal ScriptProfileNode where+  fromJSVal v = fmap ScriptProfileNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ScriptProfileNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ScriptProfileNode where+  makeObject = makeObject . unScriptProfileNode++instance IsGObject ScriptProfileNode where+  typeGType _ = gTypeScriptProfileNode+  {-# INLINE typeGType #-}++gTypeScriptProfileNode :: JSM GType+gTypeScriptProfileNode = GType . Object <$> jsg "ScriptProfileNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SecurityPolicy".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy Mozilla SecurityPolicy documentation>+newtype SecurityPolicy = SecurityPolicy { unSecurityPolicy :: JSVal }++instance PToJSVal SecurityPolicy where+  pToJSVal = unSecurityPolicy+  {-# INLINE pToJSVal #-}++instance PFromJSVal SecurityPolicy where+  pFromJSVal = SecurityPolicy+  {-# INLINE pFromJSVal #-}++instance ToJSVal SecurityPolicy where+  toJSVal = return . unSecurityPolicy+  {-# INLINE toJSVal #-}++instance FromJSVal SecurityPolicy where+  fromJSVal v = fmap SecurityPolicy <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SecurityPolicy+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SecurityPolicy where+  makeObject = makeObject . unSecurityPolicy++instance IsGObject SecurityPolicy where+  typeGType _ = gTypeSecurityPolicy+  {-# INLINE typeGType #-}++gTypeSecurityPolicy :: JSM GType+gTypeSecurityPolicy = GType . Object <$> jsg "SecurityPolicy"+#else+#ifndef USE_OLD_WEBKIT+type IsSecurityPolicy o = SecurityPolicyClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SecurityPolicyViolationEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent Mozilla SecurityPolicyViolationEvent documentation>+newtype SecurityPolicyViolationEvent = SecurityPolicyViolationEvent { unSecurityPolicyViolationEvent :: JSVal }++instance PToJSVal SecurityPolicyViolationEvent where+  pToJSVal = unSecurityPolicyViolationEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal SecurityPolicyViolationEvent where+  pFromJSVal = SecurityPolicyViolationEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal SecurityPolicyViolationEvent where+  toJSVal = return . unSecurityPolicyViolationEvent+  {-# INLINE toJSVal #-}++instance FromJSVal SecurityPolicyViolationEvent where+  fromJSVal v = fmap SecurityPolicyViolationEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SecurityPolicyViolationEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SecurityPolicyViolationEvent where+  makeObject = makeObject . unSecurityPolicyViolationEvent++instance IsEvent SecurityPolicyViolationEvent+instance IsGObject SecurityPolicyViolationEvent where+  typeGType _ = gTypeSecurityPolicyViolationEvent+  {-# INLINE typeGType #-}++gTypeSecurityPolicyViolationEvent :: JSM GType+gTypeSecurityPolicyViolationEvent = GType . Object <$> jsg "SecurityPolicyViolationEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Selection".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Selection Mozilla Selection documentation>+newtype Selection = Selection { unSelection :: JSVal }++instance PToJSVal Selection where+  pToJSVal = unSelection+  {-# INLINE pToJSVal #-}++instance PFromJSVal Selection where+  pFromJSVal = Selection+  {-# INLINE pFromJSVal #-}++instance ToJSVal Selection where+  toJSVal = return . unSelection+  {-# INLINE toJSVal #-}++instance FromJSVal Selection where+  fromJSVal v = fmap Selection <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Selection+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Selection where+  makeObject = makeObject . unSelection++instance IsGObject Selection where+  typeGType _ = gTypeSelection+  {-# INLINE typeGType #-}++gTypeSelection :: JSM GType+gTypeSelection = GType . Object <$> jsg "Selection"+#else+type IsSelection o = SelectionClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SourceBuffer".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer Mozilla SourceBuffer documentation>+newtype SourceBuffer = SourceBuffer { unSourceBuffer :: JSVal }++instance PToJSVal SourceBuffer where+  pToJSVal = unSourceBuffer+  {-# INLINE pToJSVal #-}++instance PFromJSVal SourceBuffer where+  pFromJSVal = SourceBuffer+  {-# INLINE pFromJSVal #-}++instance ToJSVal SourceBuffer where+  toJSVal = return . unSourceBuffer+  {-# INLINE toJSVal #-}++instance FromJSVal SourceBuffer where+  fromJSVal v = fmap SourceBuffer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SourceBuffer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SourceBuffer where+  makeObject = makeObject . unSourceBuffer++instance IsEventTarget SourceBuffer+instance IsGObject SourceBuffer where+  typeGType _ = gTypeSourceBuffer+  {-# INLINE typeGType #-}++gTypeSourceBuffer :: JSM GType+gTypeSourceBuffer = GType . Object <$> jsg "SourceBuffer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SourceBufferList".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList Mozilla SourceBufferList documentation>+newtype SourceBufferList = SourceBufferList { unSourceBufferList :: JSVal }++instance PToJSVal SourceBufferList where+  pToJSVal = unSourceBufferList+  {-# INLINE pToJSVal #-}++instance PFromJSVal SourceBufferList where+  pFromJSVal = SourceBufferList+  {-# INLINE pFromJSVal #-}++instance ToJSVal SourceBufferList where+  toJSVal = return . unSourceBufferList+  {-# INLINE toJSVal #-}++instance FromJSVal SourceBufferList where+  fromJSVal v = fmap SourceBufferList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SourceBufferList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SourceBufferList where+  makeObject = makeObject . unSourceBufferList++instance IsEventTarget SourceBufferList+instance IsGObject SourceBufferList where+  typeGType _ = gTypeSourceBufferList+  {-# INLINE typeGType #-}++gTypeSourceBufferList :: JSM GType+gTypeSourceBufferList = GType . Object <$> jsg "SourceBufferList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SourceInfo".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SourceInfo Mozilla SourceInfo documentation>+newtype SourceInfo = SourceInfo { unSourceInfo :: JSVal }++instance PToJSVal SourceInfo where+  pToJSVal = unSourceInfo+  {-# INLINE pToJSVal #-}++instance PFromJSVal SourceInfo where+  pFromJSVal = SourceInfo+  {-# INLINE pFromJSVal #-}++instance ToJSVal SourceInfo where+  toJSVal = return . unSourceInfo+  {-# INLINE toJSVal #-}++instance FromJSVal SourceInfo where+  fromJSVal v = fmap SourceInfo <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SourceInfo+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SourceInfo where+  makeObject = makeObject . unSourceInfo++instance IsGObject SourceInfo where+  typeGType _ = gTypeSourceInfo+  {-# INLINE typeGType #-}++gTypeSourceInfo :: JSM GType+gTypeSourceInfo = GType . Object <$> jsg "SourceInfo"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SpeechSynthesis".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis Mozilla SpeechSynthesis documentation>+newtype SpeechSynthesis = SpeechSynthesis { unSpeechSynthesis :: JSVal }++instance PToJSVal SpeechSynthesis where+  pToJSVal = unSpeechSynthesis+  {-# INLINE pToJSVal #-}++instance PFromJSVal SpeechSynthesis where+  pFromJSVal = SpeechSynthesis+  {-# INLINE pFromJSVal #-}++instance ToJSVal SpeechSynthesis where+  toJSVal = return . unSpeechSynthesis+  {-# INLINE toJSVal #-}++instance FromJSVal SpeechSynthesis where+  fromJSVal v = fmap SpeechSynthesis <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SpeechSynthesis+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SpeechSynthesis where+  makeObject = makeObject . unSpeechSynthesis++instance IsGObject SpeechSynthesis where+  typeGType _ = gTypeSpeechSynthesis+  {-# INLINE typeGType #-}++gTypeSpeechSynthesis :: JSM GType+gTypeSpeechSynthesis = GType . Object <$> jsg "SpeechSynthesis"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SpeechSynthesisEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisEvent Mozilla SpeechSynthesisEvent documentation>+newtype SpeechSynthesisEvent = SpeechSynthesisEvent { unSpeechSynthesisEvent :: JSVal }++instance PToJSVal SpeechSynthesisEvent where+  pToJSVal = unSpeechSynthesisEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal SpeechSynthesisEvent where+  pFromJSVal = SpeechSynthesisEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal SpeechSynthesisEvent where+  toJSVal = return . unSpeechSynthesisEvent+  {-# INLINE toJSVal #-}++instance FromJSVal SpeechSynthesisEvent where+  fromJSVal v = fmap SpeechSynthesisEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SpeechSynthesisEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SpeechSynthesisEvent where+  makeObject = makeObject . unSpeechSynthesisEvent++instance IsEvent SpeechSynthesisEvent+instance IsGObject SpeechSynthesisEvent where+  typeGType _ = gTypeSpeechSynthesisEvent+  {-# INLINE typeGType #-}++gTypeSpeechSynthesisEvent :: JSM GType+gTypeSpeechSynthesisEvent = GType . Object <$> jsg "SpeechSynthesisEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SpeechSynthesisUtterance".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance Mozilla SpeechSynthesisUtterance documentation>+newtype SpeechSynthesisUtterance = SpeechSynthesisUtterance { unSpeechSynthesisUtterance :: JSVal }++instance PToJSVal SpeechSynthesisUtterance where+  pToJSVal = unSpeechSynthesisUtterance+  {-# INLINE pToJSVal #-}++instance PFromJSVal SpeechSynthesisUtterance where+  pFromJSVal = SpeechSynthesisUtterance+  {-# INLINE pFromJSVal #-}++instance ToJSVal SpeechSynthesisUtterance where+  toJSVal = return . unSpeechSynthesisUtterance+  {-# INLINE toJSVal #-}++instance FromJSVal SpeechSynthesisUtterance where+  fromJSVal v = fmap SpeechSynthesisUtterance <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SpeechSynthesisUtterance+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SpeechSynthesisUtterance where+  makeObject = makeObject . unSpeechSynthesisUtterance++instance IsEventTarget SpeechSynthesisUtterance+instance IsGObject SpeechSynthesisUtterance where+  typeGType _ = gTypeSpeechSynthesisUtterance+  {-# INLINE typeGType #-}++gTypeSpeechSynthesisUtterance :: JSM GType+gTypeSpeechSynthesisUtterance = GType . Object <$> jsg "SpeechSynthesisUtterance"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SpeechSynthesisVoice".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice Mozilla SpeechSynthesisVoice documentation>+newtype SpeechSynthesisVoice = SpeechSynthesisVoice { unSpeechSynthesisVoice :: JSVal }++instance PToJSVal SpeechSynthesisVoice where+  pToJSVal = unSpeechSynthesisVoice+  {-# INLINE pToJSVal #-}++instance PFromJSVal SpeechSynthesisVoice where+  pFromJSVal = SpeechSynthesisVoice+  {-# INLINE pFromJSVal #-}++instance ToJSVal SpeechSynthesisVoice where+  toJSVal = return . unSpeechSynthesisVoice+  {-# INLINE toJSVal #-}++instance FromJSVal SpeechSynthesisVoice where+  fromJSVal v = fmap SpeechSynthesisVoice <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SpeechSynthesisVoice+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SpeechSynthesisVoice where+  makeObject = makeObject . unSpeechSynthesisVoice++instance IsGObject SpeechSynthesisVoice where+  typeGType _ = gTypeSpeechSynthesisVoice+  {-# INLINE typeGType #-}++gTypeSpeechSynthesisVoice :: JSM GType+gTypeSpeechSynthesisVoice = GType . Object <$> jsg "SpeechSynthesisVoice"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Storage".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Storage Mozilla Storage documentation>+newtype Storage = Storage { unStorage :: JSVal }++instance PToJSVal Storage where+  pToJSVal = unStorage+  {-# INLINE pToJSVal #-}++instance PFromJSVal Storage where+  pFromJSVal = Storage+  {-# INLINE pFromJSVal #-}++instance ToJSVal Storage where+  toJSVal = return . unStorage+  {-# INLINE toJSVal #-}++instance FromJSVal Storage where+  fromJSVal v = fmap Storage <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Storage+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Storage where+  makeObject = makeObject . unStorage++instance IsGObject Storage where+  typeGType _ = gTypeStorage+  {-# INLINE typeGType #-}++gTypeStorage :: JSM GType+gTypeStorage = GType . Object <$> jsg "Storage"+#else+type IsStorage o = StorageClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.StorageEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent Mozilla StorageEvent documentation>+newtype StorageEvent = StorageEvent { unStorageEvent :: JSVal }++instance PToJSVal StorageEvent where+  pToJSVal = unStorageEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal StorageEvent where+  pFromJSVal = StorageEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal StorageEvent where+  toJSVal = return . unStorageEvent+  {-# INLINE toJSVal #-}++instance FromJSVal StorageEvent where+  fromJSVal v = fmap StorageEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . StorageEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject StorageEvent where+  makeObject = makeObject . unStorageEvent++instance IsEvent StorageEvent+instance IsGObject StorageEvent where+  typeGType _ = gTypeStorageEvent+  {-# INLINE typeGType #-}++gTypeStorageEvent :: JSM GType+gTypeStorageEvent = GType . Object <$> jsg "StorageEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.StorageInfo".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageInfo Mozilla StorageInfo documentation>+newtype StorageInfo = StorageInfo { unStorageInfo :: JSVal }++instance PToJSVal StorageInfo where+  pToJSVal = unStorageInfo+  {-# INLINE pToJSVal #-}++instance PFromJSVal StorageInfo where+  pFromJSVal = StorageInfo+  {-# INLINE pFromJSVal #-}++instance ToJSVal StorageInfo where+  toJSVal = return . unStorageInfo+  {-# INLINE toJSVal #-}++instance FromJSVal StorageInfo where+  fromJSVal v = fmap StorageInfo <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . StorageInfo+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject StorageInfo where+  makeObject = makeObject . unStorageInfo++instance IsGObject StorageInfo where+  typeGType _ = gTypeStorageInfo+  {-# INLINE typeGType #-}++gTypeStorageInfo :: JSM GType+gTypeStorageInfo = GType . Object <$> jsg "StorageInfo"+#else+#ifndef USE_OLD_WEBKIT+type IsStorageInfo o = StorageInfoClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.StorageQuota".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota Mozilla StorageQuota documentation>+newtype StorageQuota = StorageQuota { unStorageQuota :: JSVal }++instance PToJSVal StorageQuota where+  pToJSVal = unStorageQuota+  {-# INLINE pToJSVal #-}++instance PFromJSVal StorageQuota where+  pFromJSVal = StorageQuota+  {-# INLINE pFromJSVal #-}++instance ToJSVal StorageQuota where+  toJSVal = return . unStorageQuota+  {-# INLINE toJSVal #-}++instance FromJSVal StorageQuota where+  fromJSVal v = fmap StorageQuota <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . StorageQuota+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject StorageQuota where+  makeObject = makeObject . unStorageQuota++instance IsGObject StorageQuota where+  typeGType _ = gTypeStorageQuota+  {-# INLINE typeGType #-}++gTypeStorageQuota :: JSM GType+gTypeStorageQuota = GType . Object <$> jsg "StorageQuota"+#else+#ifndef USE_OLD_WEBKIT+type IsStorageQuota o = StorageQuotaClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.StyleMedia".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia Mozilla StyleMedia documentation>+newtype StyleMedia = StyleMedia { unStyleMedia :: JSVal }++instance PToJSVal StyleMedia where+  pToJSVal = unStyleMedia+  {-# INLINE pToJSVal #-}++instance PFromJSVal StyleMedia where+  pFromJSVal = StyleMedia+  {-# INLINE pFromJSVal #-}++instance ToJSVal StyleMedia where+  toJSVal = return . unStyleMedia+  {-# INLINE toJSVal #-}++instance FromJSVal StyleMedia where+  fromJSVal v = fmap StyleMedia <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . StyleMedia+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject StyleMedia where+  makeObject = makeObject . unStyleMedia++instance IsGObject StyleMedia where+  typeGType _ = gTypeStyleMedia+  {-# INLINE typeGType #-}++gTypeStyleMedia :: JSM GType+gTypeStyleMedia = GType . Object <$> jsg "StyleMedia"+#else+type IsStyleMedia o = StyleMediaClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.StyleSheet".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet Mozilla StyleSheet documentation>+newtype StyleSheet = StyleSheet { unStyleSheet :: JSVal }++instance PToJSVal StyleSheet where+  pToJSVal = unStyleSheet+  {-# INLINE pToJSVal #-}++instance PFromJSVal StyleSheet where+  pFromJSVal = StyleSheet+  {-# INLINE pFromJSVal #-}++instance ToJSVal StyleSheet where+  toJSVal = return . unStyleSheet+  {-# INLINE toJSVal #-}++instance FromJSVal StyleSheet where+  fromJSVal v = fmap StyleSheet <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . StyleSheet+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject StyleSheet where+  makeObject = makeObject . unStyleSheet++class IsGObject o => IsStyleSheet o+toStyleSheet :: IsStyleSheet o => o -> StyleSheet+toStyleSheet = StyleSheet . coerce++instance IsStyleSheet StyleSheet+instance IsGObject StyleSheet where+  typeGType _ = gTypeStyleSheet+  {-# INLINE typeGType #-}++gTypeStyleSheet :: JSM GType+gTypeStyleSheet = GType . Object <$> jsg "StyleSheet"+#else+type IsStyleSheet o = StyleSheetClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.StyleSheetList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList Mozilla StyleSheetList documentation>+newtype StyleSheetList = StyleSheetList { unStyleSheetList :: JSVal }++instance PToJSVal StyleSheetList where+  pToJSVal = unStyleSheetList+  {-# INLINE pToJSVal #-}++instance PFromJSVal StyleSheetList where+  pFromJSVal = StyleSheetList+  {-# INLINE pFromJSVal #-}++instance ToJSVal StyleSheetList where+  toJSVal = return . unStyleSheetList+  {-# INLINE toJSVal #-}++instance FromJSVal StyleSheetList where+  fromJSVal v = fmap StyleSheetList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . StyleSheetList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject StyleSheetList where+  makeObject = makeObject . unStyleSheetList++instance IsGObject StyleSheetList where+  typeGType _ = gTypeStyleSheetList+  {-# INLINE typeGType #-}++gTypeStyleSheetList :: JSM GType+gTypeStyleSheetList = GType . Object <$> jsg "StyleSheetList"+#else+type IsStyleSheetList o = StyleSheetListClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.SubtleCrypto".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto Mozilla WebKitSubtleCrypto documentation>+newtype SubtleCrypto = SubtleCrypto { unSubtleCrypto :: JSVal }++instance PToJSVal SubtleCrypto where+  pToJSVal = unSubtleCrypto+  {-# INLINE pToJSVal #-}++instance PFromJSVal SubtleCrypto where+  pFromJSVal = SubtleCrypto+  {-# INLINE pFromJSVal #-}++instance ToJSVal SubtleCrypto where+  toJSVal = return . unSubtleCrypto+  {-# INLINE toJSVal #-}++instance FromJSVal SubtleCrypto where+  fromJSVal v = fmap SubtleCrypto <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . SubtleCrypto+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject SubtleCrypto where+  makeObject = makeObject . unSubtleCrypto++instance IsGObject SubtleCrypto where+  typeGType _ = gTypeSubtleCrypto+  {-# INLINE typeGType #-}++gTypeSubtleCrypto :: JSM GType+gTypeSubtleCrypto = GType . Object <$> jsg "WebKitSubtleCrypto"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Text".+-- Base interface functions are in:+--+--     * "JSDOM.CharacterData"+--     * "JSDOM.Node"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Text Mozilla Text documentation>+newtype Text = Text { unText :: JSVal }++instance PToJSVal Text where+  pToJSVal = unText+  {-# INLINE pToJSVal #-}++instance PFromJSVal Text where+  pFromJSVal = Text+  {-# INLINE pFromJSVal #-}++instance ToJSVal Text where+  toJSVal = return . unText+  {-# INLINE toJSVal #-}++instance FromJSVal Text where+  fromJSVal v = fmap Text <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Text+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Text where+  makeObject = makeObject . unText++class IsCharacterData o => IsText o+toText :: IsText o => o -> Text+toText = Text . coerce++instance IsText Text+instance IsCharacterData Text+instance IsNode Text+instance IsEventTarget Text+instance IsGObject Text where+  typeGType _ = gTypeText+  {-# INLINE typeGType #-}++gTypeText :: JSM GType+gTypeText = GType . Object <$> jsg "Text"+#else+type IsText o = TextClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TextEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextEvent Mozilla TextEvent documentation>+newtype TextEvent = TextEvent { unTextEvent :: JSVal }++instance PToJSVal TextEvent where+  pToJSVal = unTextEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal TextEvent where+  pFromJSVal = TextEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal TextEvent where+  toJSVal = return . unTextEvent+  {-# INLINE toJSVal #-}++instance FromJSVal TextEvent where+  fromJSVal v = fmap TextEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TextEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TextEvent where+  makeObject = makeObject . unTextEvent++instance IsUIEvent TextEvent+instance IsEvent TextEvent+instance IsGObject TextEvent where+  typeGType _ = gTypeTextEvent+  {-# INLINE typeGType #-}++gTypeTextEvent :: JSM GType+gTypeTextEvent = GType . Object <$> jsg "TextEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TextMetrics".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics Mozilla TextMetrics documentation>+newtype TextMetrics = TextMetrics { unTextMetrics :: JSVal }++instance PToJSVal TextMetrics where+  pToJSVal = unTextMetrics+  {-# INLINE pToJSVal #-}++instance PFromJSVal TextMetrics where+  pFromJSVal = TextMetrics+  {-# INLINE pFromJSVal #-}++instance ToJSVal TextMetrics where+  toJSVal = return . unTextMetrics+  {-# INLINE toJSVal #-}++instance FromJSVal TextMetrics where+  fromJSVal v = fmap TextMetrics <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TextMetrics+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TextMetrics where+  makeObject = makeObject . unTextMetrics++instance IsGObject TextMetrics where+  typeGType _ = gTypeTextMetrics+  {-# INLINE typeGType #-}++gTypeTextMetrics :: JSM GType+gTypeTextMetrics = GType . Object <$> jsg "TextMetrics"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TextTrack".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack Mozilla TextTrack documentation>+newtype TextTrack = TextTrack { unTextTrack :: JSVal }++instance PToJSVal TextTrack where+  pToJSVal = unTextTrack+  {-# INLINE pToJSVal #-}++instance PFromJSVal TextTrack where+  pFromJSVal = TextTrack+  {-# INLINE pFromJSVal #-}++instance ToJSVal TextTrack where+  toJSVal = return . unTextTrack+  {-# INLINE toJSVal #-}++instance FromJSVal TextTrack where+  fromJSVal v = fmap TextTrack <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TextTrack+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TextTrack where+  makeObject = makeObject . unTextTrack++instance IsEventTarget TextTrack+instance IsGObject TextTrack where+  typeGType _ = gTypeTextTrack+  {-# INLINE typeGType #-}++gTypeTextTrack :: JSM GType+gTypeTextTrack = GType . Object <$> jsg "TextTrack"+#else+#ifndef USE_OLD_WEBKIT+type IsTextTrack o = TextTrackClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TextTrackCue".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue Mozilla TextTrackCue documentation>+newtype TextTrackCue = TextTrackCue { unTextTrackCue :: JSVal }++instance PToJSVal TextTrackCue where+  pToJSVal = unTextTrackCue+  {-# INLINE pToJSVal #-}++instance PFromJSVal TextTrackCue where+  pFromJSVal = TextTrackCue+  {-# INLINE pFromJSVal #-}++instance ToJSVal TextTrackCue where+  toJSVal = return . unTextTrackCue+  {-# INLINE toJSVal #-}++instance FromJSVal TextTrackCue where+  fromJSVal v = fmap TextTrackCue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TextTrackCue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TextTrackCue where+  makeObject = makeObject . unTextTrackCue++class IsEventTarget o => IsTextTrackCue o+toTextTrackCue :: IsTextTrackCue o => o -> TextTrackCue+toTextTrackCue = TextTrackCue . coerce++instance IsTextTrackCue TextTrackCue+instance IsEventTarget TextTrackCue+instance IsGObject TextTrackCue where+  typeGType _ = gTypeTextTrackCue+  {-# INLINE typeGType #-}++gTypeTextTrackCue :: JSM GType+gTypeTextTrackCue = GType . Object <$> jsg "TextTrackCue"+#else+#ifndef USE_OLD_WEBKIT+type IsTextTrackCue o = TextTrackCueClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TextTrackCueList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList Mozilla TextTrackCueList documentation>+newtype TextTrackCueList = TextTrackCueList { unTextTrackCueList :: JSVal }++instance PToJSVal TextTrackCueList where+  pToJSVal = unTextTrackCueList+  {-# INLINE pToJSVal #-}++instance PFromJSVal TextTrackCueList where+  pFromJSVal = TextTrackCueList+  {-# INLINE pFromJSVal #-}++instance ToJSVal TextTrackCueList where+  toJSVal = return . unTextTrackCueList+  {-# INLINE toJSVal #-}++instance FromJSVal TextTrackCueList where+  fromJSVal v = fmap TextTrackCueList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TextTrackCueList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TextTrackCueList where+  makeObject = makeObject . unTextTrackCueList++instance IsGObject TextTrackCueList where+  typeGType _ = gTypeTextTrackCueList+  {-# INLINE typeGType #-}++gTypeTextTrackCueList :: JSM GType+gTypeTextTrackCueList = GType . Object <$> jsg "TextTrackCueList"+#else+#ifndef USE_OLD_WEBKIT+type IsTextTrackCueList o = TextTrackCueListClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TextTrackList".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList Mozilla TextTrackList documentation>+newtype TextTrackList = TextTrackList { unTextTrackList :: JSVal }++instance PToJSVal TextTrackList where+  pToJSVal = unTextTrackList+  {-# INLINE pToJSVal #-}++instance PFromJSVal TextTrackList where+  pFromJSVal = TextTrackList+  {-# INLINE pFromJSVal #-}++instance ToJSVal TextTrackList where+  toJSVal = return . unTextTrackList+  {-# INLINE toJSVal #-}++instance FromJSVal TextTrackList where+  fromJSVal v = fmap TextTrackList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TextTrackList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TextTrackList where+  makeObject = makeObject . unTextTrackList++instance IsEventTarget TextTrackList+instance IsGObject TextTrackList where+  typeGType _ = gTypeTextTrackList+  {-# INLINE typeGType #-}++gTypeTextTrackList :: JSM GType+gTypeTextTrackList = GType . Object <$> jsg "TextTrackList"+#else+#ifndef USE_OLD_WEBKIT+type IsTextTrackList o = TextTrackListClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TimeRanges".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges Mozilla TimeRanges documentation>+newtype TimeRanges = TimeRanges { unTimeRanges :: JSVal }++instance PToJSVal TimeRanges where+  pToJSVal = unTimeRanges+  {-# INLINE pToJSVal #-}++instance PFromJSVal TimeRanges where+  pFromJSVal = TimeRanges+  {-# INLINE pFromJSVal #-}++instance ToJSVal TimeRanges where+  toJSVal = return . unTimeRanges+  {-# INLINE toJSVal #-}++instance FromJSVal TimeRanges where+  fromJSVal v = fmap TimeRanges <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TimeRanges+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TimeRanges where+  makeObject = makeObject . unTimeRanges++instance IsGObject TimeRanges where+  typeGType _ = gTypeTimeRanges+  {-# INLINE typeGType #-}++gTypeTimeRanges :: JSM GType+gTypeTimeRanges = GType . Object <$> jsg "TimeRanges"+#else+type IsTimeRanges o = TimeRangesClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Touch".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Touch Mozilla Touch documentation>+newtype Touch = Touch { unTouch :: JSVal }++instance PToJSVal Touch where+  pToJSVal = unTouch+  {-# INLINE pToJSVal #-}++instance PFromJSVal Touch where+  pFromJSVal = Touch+  {-# INLINE pFromJSVal #-}++instance ToJSVal Touch where+  toJSVal = return . unTouch+  {-# INLINE toJSVal #-}++instance FromJSVal Touch where+  fromJSVal v = fmap Touch <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Touch+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Touch where+  makeObject = makeObject . unTouch++instance IsGObject Touch where+  typeGType _ = gTypeTouch+  {-# INLINE typeGType #-}++gTypeTouch :: JSM GType+gTypeTouch = GType . Object <$> jsg "Touch"+#else+#ifndef USE_OLD_WEBKIT+type IsTouch o = TouchClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TouchEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent Mozilla TouchEvent documentation>+newtype TouchEvent = TouchEvent { unTouchEvent :: JSVal }++instance PToJSVal TouchEvent where+  pToJSVal = unTouchEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal TouchEvent where+  pFromJSVal = TouchEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal TouchEvent where+  toJSVal = return . unTouchEvent+  {-# INLINE toJSVal #-}++instance FromJSVal TouchEvent where+  fromJSVal v = fmap TouchEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TouchEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TouchEvent where+  makeObject = makeObject . unTouchEvent++instance IsUIEvent TouchEvent+instance IsEvent TouchEvent+instance IsGObject TouchEvent where+  typeGType _ = gTypeTouchEvent+  {-# INLINE typeGType #-}++gTypeTouchEvent :: JSM GType+gTypeTouchEvent = GType . Object <$> jsg "TouchEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TouchList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TouchList Mozilla TouchList documentation>+newtype TouchList = TouchList { unTouchList :: JSVal }++instance PToJSVal TouchList where+  pToJSVal = unTouchList+  {-# INLINE pToJSVal #-}++instance PFromJSVal TouchList where+  pFromJSVal = TouchList+  {-# INLINE pFromJSVal #-}++instance ToJSVal TouchList where+  toJSVal = return . unTouchList+  {-# INLINE toJSVal #-}++instance FromJSVal TouchList where+  fromJSVal v = fmap TouchList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TouchList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TouchList where+  makeObject = makeObject . unTouchList++instance IsGObject TouchList where+  typeGType _ = gTypeTouchList+  {-# INLINE typeGType #-}++gTypeTouchList :: JSM GType+gTypeTouchList = GType . Object <$> jsg "TouchList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TrackEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent Mozilla TrackEvent documentation>+newtype TrackEvent = TrackEvent { unTrackEvent :: JSVal }++instance PToJSVal TrackEvent where+  pToJSVal = unTrackEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal TrackEvent where+  pFromJSVal = TrackEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal TrackEvent where+  toJSVal = return . unTrackEvent+  {-# INLINE toJSVal #-}++instance FromJSVal TrackEvent where+  fromJSVal v = fmap TrackEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TrackEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TrackEvent where+  makeObject = makeObject . unTrackEvent++instance IsEvent TrackEvent+instance IsGObject TrackEvent where+  typeGType _ = gTypeTrackEvent+  {-# INLINE typeGType #-}++gTypeTrackEvent :: JSM GType+gTypeTrackEvent = GType . Object <$> jsg "TrackEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TransitionEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent Mozilla TransitionEvent documentation>+newtype TransitionEvent = TransitionEvent { unTransitionEvent :: JSVal }++instance PToJSVal TransitionEvent where+  pToJSVal = unTransitionEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal TransitionEvent where+  pFromJSVal = TransitionEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal TransitionEvent where+  toJSVal = return . unTransitionEvent+  {-# INLINE toJSVal #-}++instance FromJSVal TransitionEvent where+  fromJSVal v = fmap TransitionEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TransitionEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TransitionEvent where+  makeObject = makeObject . unTransitionEvent++instance IsEvent TransitionEvent+instance IsGObject TransitionEvent where+  typeGType _ = gTypeTransitionEvent+  {-# INLINE typeGType #-}++gTypeTransitionEvent :: JSM GType+gTypeTransitionEvent = GType . Object <$> jsg "TransitionEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TreeWalker".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker Mozilla TreeWalker documentation>+newtype TreeWalker = TreeWalker { unTreeWalker :: JSVal }++instance PToJSVal TreeWalker where+  pToJSVal = unTreeWalker+  {-# INLINE pToJSVal #-}++instance PFromJSVal TreeWalker where+  pFromJSVal = TreeWalker+  {-# INLINE pFromJSVal #-}++instance ToJSVal TreeWalker where+  toJSVal = return . unTreeWalker+  {-# INLINE toJSVal #-}++instance FromJSVal TreeWalker where+  fromJSVal v = fmap TreeWalker <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TreeWalker+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TreeWalker where+  makeObject = makeObject . unTreeWalker++instance IsGObject TreeWalker where+  typeGType _ = gTypeTreeWalker+  {-# INLINE typeGType #-}++gTypeTreeWalker :: JSM GType+gTypeTreeWalker = GType . Object <$> jsg "TreeWalker"+#else+type IsTreeWalker o = TreeWalkerClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.TypeConversions".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions Mozilla TypeConversions documentation>+newtype TypeConversions = TypeConversions { unTypeConversions :: JSVal }++instance PToJSVal TypeConversions where+  pToJSVal = unTypeConversions+  {-# INLINE pToJSVal #-}++instance PFromJSVal TypeConversions where+  pFromJSVal = TypeConversions+  {-# INLINE pFromJSVal #-}++instance ToJSVal TypeConversions where+  toJSVal = return . unTypeConversions+  {-# INLINE toJSVal #-}++instance FromJSVal TypeConversions where+  fromJSVal v = fmap TypeConversions <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . TypeConversions+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject TypeConversions where+  makeObject = makeObject . unTypeConversions++instance IsGObject TypeConversions where+  typeGType _ = gTypeTypeConversions+  {-# INLINE typeGType #-}++gTypeTypeConversions :: JSM GType+gTypeTypeConversions = GType . Object <$> jsg "TypeConversions"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.UIEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent Mozilla UIEvent documentation>+newtype UIEvent = UIEvent { unUIEvent :: JSVal }++instance PToJSVal UIEvent where+  pToJSVal = unUIEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal UIEvent where+  pFromJSVal = UIEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal UIEvent where+  toJSVal = return . unUIEvent+  {-# INLINE toJSVal #-}++instance FromJSVal UIEvent where+  fromJSVal v = fmap UIEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . UIEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject UIEvent where+  makeObject = makeObject . unUIEvent++class IsEvent o => IsUIEvent o+toUIEvent :: IsUIEvent o => o -> UIEvent+toUIEvent = UIEvent . coerce++instance IsUIEvent UIEvent+instance IsEvent UIEvent+instance IsGObject UIEvent where+  typeGType _ = gTypeUIEvent+  {-# INLINE typeGType #-}++gTypeUIEvent :: JSM GType+gTypeUIEvent = GType . Object <$> jsg "UIEvent"+#else+type IsUIEvent o = UIEventClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.UIRequestEvent".+-- Base interface functions are in:+--+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/UIRequestEvent Mozilla UIRequestEvent documentation>+newtype UIRequestEvent = UIRequestEvent { unUIRequestEvent :: JSVal }++instance PToJSVal UIRequestEvent where+  pToJSVal = unUIRequestEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal UIRequestEvent where+  pFromJSVal = UIRequestEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal UIRequestEvent where+  toJSVal = return . unUIRequestEvent+  {-# INLINE toJSVal #-}++instance FromJSVal UIRequestEvent where+  fromJSVal v = fmap UIRequestEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . UIRequestEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject UIRequestEvent where+  makeObject = makeObject . unUIRequestEvent++instance IsUIEvent UIRequestEvent+instance IsEvent UIRequestEvent+instance IsGObject UIRequestEvent where+  typeGType _ = gTypeUIRequestEvent+  {-# INLINE typeGType #-}++gTypeUIRequestEvent :: JSM GType+gTypeUIRequestEvent = GType . Object <$> jsg "UIRequestEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.URL".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/URL Mozilla URL documentation>+newtype URL = URL { unURL :: JSVal }++instance PToJSVal URL where+  pToJSVal = unURL+  {-# INLINE pToJSVal #-}++instance PFromJSVal URL where+  pFromJSVal = URL+  {-# INLINE pFromJSVal #-}++instance ToJSVal URL where+  toJSVal = return . unURL+  {-# INLINE toJSVal #-}++instance FromJSVal URL where+  fromJSVal v = fmap URL <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . URL+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject URL where+  makeObject = makeObject . unURL++instance IsGObject URL where+  typeGType _ = gTypeURL+  {-# INLINE typeGType #-}++gTypeURL :: JSM GType+gTypeURL = GType . Object <$> jsg "URL"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.URLUtils".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils Mozilla URLUtils documentation>+newtype URLUtils = URLUtils { unURLUtils :: JSVal }++instance PToJSVal URLUtils where+  pToJSVal = unURLUtils+  {-# INLINE pToJSVal #-}++instance PFromJSVal URLUtils where+  pFromJSVal = URLUtils+  {-# INLINE pFromJSVal #-}++instance ToJSVal URLUtils where+  toJSVal = return . unURLUtils+  {-# INLINE toJSVal #-}++instance FromJSVal URLUtils where+  fromJSVal v = fmap URLUtils <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . URLUtils+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject URLUtils where+  makeObject = makeObject . unURLUtils++instance IsGObject URLUtils where+  typeGType _ = gTypeURLUtils+  {-# INLINE typeGType #-}++gTypeURLUtils :: JSM GType+gTypeURLUtils = GType . Object <$> jsg "URLUtils"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.UserMessageHandler".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandler Mozilla UserMessageHandler documentation>+newtype UserMessageHandler = UserMessageHandler { unUserMessageHandler :: JSVal }++instance PToJSVal UserMessageHandler where+  pToJSVal = unUserMessageHandler+  {-# INLINE pToJSVal #-}++instance PFromJSVal UserMessageHandler where+  pFromJSVal = UserMessageHandler+  {-# INLINE pFromJSVal #-}++instance ToJSVal UserMessageHandler where+  toJSVal = return . unUserMessageHandler+  {-# INLINE toJSVal #-}++instance FromJSVal UserMessageHandler where+  fromJSVal v = fmap UserMessageHandler <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . UserMessageHandler+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject UserMessageHandler where+  makeObject = makeObject . unUserMessageHandler++instance IsGObject UserMessageHandler where+  typeGType _ = gTypeUserMessageHandler+  {-# INLINE typeGType #-}++gTypeUserMessageHandler :: JSM GType+gTypeUserMessageHandler = GType . Object <$> jsg "UserMessageHandler"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.UserMessageHandlersNamespace".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandlersNamespace Mozilla UserMessageHandlersNamespace documentation>+newtype UserMessageHandlersNamespace = UserMessageHandlersNamespace { unUserMessageHandlersNamespace :: JSVal }++instance PToJSVal UserMessageHandlersNamespace where+  pToJSVal = unUserMessageHandlersNamespace+  {-# INLINE pToJSVal #-}++instance PFromJSVal UserMessageHandlersNamespace where+  pFromJSVal = UserMessageHandlersNamespace+  {-# INLINE pFromJSVal #-}++instance ToJSVal UserMessageHandlersNamespace where+  toJSVal = return . unUserMessageHandlersNamespace+  {-# INLINE toJSVal #-}++instance FromJSVal UserMessageHandlersNamespace where+  fromJSVal v = fmap UserMessageHandlersNamespace <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . UserMessageHandlersNamespace+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject UserMessageHandlersNamespace where+  makeObject = makeObject . unUserMessageHandlersNamespace++instance IsGObject UserMessageHandlersNamespace where+  typeGType _ = gTypeUserMessageHandlersNamespace+  {-# INLINE typeGType #-}++gTypeUserMessageHandlersNamespace :: JSM GType+gTypeUserMessageHandlersNamespace = GType . Object <$> jsg "UserMessageHandlersNamespace"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VTTCue".+-- Base interface functions are in:+--+--     * "JSDOM.TextTrackCue"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue Mozilla VTTCue documentation>+newtype VTTCue = VTTCue { unVTTCue :: JSVal }++instance PToJSVal VTTCue where+  pToJSVal = unVTTCue+  {-# INLINE pToJSVal #-}++instance PFromJSVal VTTCue where+  pFromJSVal = VTTCue+  {-# INLINE pFromJSVal #-}++instance ToJSVal VTTCue where+  toJSVal = return . unVTTCue+  {-# INLINE toJSVal #-}++instance FromJSVal VTTCue where+  fromJSVal v = fmap VTTCue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VTTCue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VTTCue where+  makeObject = makeObject . unVTTCue++instance IsTextTrackCue VTTCue+instance IsEventTarget VTTCue+instance IsGObject VTTCue where+  typeGType _ = gTypeVTTCue+  {-# INLINE typeGType #-}++gTypeVTTCue :: JSM GType+gTypeVTTCue = GType . Object <$> jsg "VTTCue"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VTTRegion".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion Mozilla VTTRegion documentation>+newtype VTTRegion = VTTRegion { unVTTRegion :: JSVal }++instance PToJSVal VTTRegion where+  pToJSVal = unVTTRegion+  {-# INLINE pToJSVal #-}++instance PFromJSVal VTTRegion where+  pFromJSVal = VTTRegion+  {-# INLINE pFromJSVal #-}++instance ToJSVal VTTRegion where+  toJSVal = return . unVTTRegion+  {-# INLINE toJSVal #-}++instance FromJSVal VTTRegion where+  fromJSVal v = fmap VTTRegion <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VTTRegion+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VTTRegion where+  makeObject = makeObject . unVTTRegion++instance IsGObject VTTRegion where+  typeGType _ = gTypeVTTRegion+  {-# INLINE typeGType #-}++gTypeVTTRegion :: JSM GType+gTypeVTTRegion = GType . Object <$> jsg "VTTRegion"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VTTRegionList".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList Mozilla VTTRegionList documentation>+newtype VTTRegionList = VTTRegionList { unVTTRegionList :: JSVal }++instance PToJSVal VTTRegionList where+  pToJSVal = unVTTRegionList+  {-# INLINE pToJSVal #-}++instance PFromJSVal VTTRegionList where+  pFromJSVal = VTTRegionList+  {-# INLINE pFromJSVal #-}++instance ToJSVal VTTRegionList where+  toJSVal = return . unVTTRegionList+  {-# INLINE toJSVal #-}++instance FromJSVal VTTRegionList where+  fromJSVal v = fmap VTTRegionList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VTTRegionList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VTTRegionList where+  makeObject = makeObject . unVTTRegionList++instance IsGObject VTTRegionList where+  typeGType _ = gTypeVTTRegionList+  {-# INLINE typeGType #-}++gTypeVTTRegionList :: JSM GType+gTypeVTTRegionList = GType . Object <$> jsg "VTTRegionList"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.ValidityState".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState Mozilla ValidityState documentation>+newtype ValidityState = ValidityState { unValidityState :: JSVal }++instance PToJSVal ValidityState where+  pToJSVal = unValidityState+  {-# INLINE pToJSVal #-}++instance PFromJSVal ValidityState where+  pFromJSVal = ValidityState+  {-# INLINE pFromJSVal #-}++instance ToJSVal ValidityState where+  toJSVal = return . unValidityState+  {-# INLINE toJSVal #-}++instance FromJSVal ValidityState where+  fromJSVal v = fmap ValidityState <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . ValidityState+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject ValidityState where+  makeObject = makeObject . unValidityState++instance IsGObject ValidityState where+  typeGType _ = gTypeValidityState+  {-# INLINE typeGType #-}++gTypeValidityState :: JSM GType+gTypeValidityState = GType . Object <$> jsg "ValidityState"+#else+type IsValidityState o = ValidityStateClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VideoPlaybackQuality".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality Mozilla VideoPlaybackQuality documentation>+newtype VideoPlaybackQuality = VideoPlaybackQuality { unVideoPlaybackQuality :: JSVal }++instance PToJSVal VideoPlaybackQuality where+  pToJSVal = unVideoPlaybackQuality+  {-# INLINE pToJSVal #-}++instance PFromJSVal VideoPlaybackQuality where+  pFromJSVal = VideoPlaybackQuality+  {-# INLINE pFromJSVal #-}++instance ToJSVal VideoPlaybackQuality where+  toJSVal = return . unVideoPlaybackQuality+  {-# INLINE toJSVal #-}++instance FromJSVal VideoPlaybackQuality where+  fromJSVal v = fmap VideoPlaybackQuality <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VideoPlaybackQuality+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VideoPlaybackQuality where+  makeObject = makeObject . unVideoPlaybackQuality++instance IsGObject VideoPlaybackQuality where+  typeGType _ = gTypeVideoPlaybackQuality+  {-# INLINE typeGType #-}++gTypeVideoPlaybackQuality :: JSM GType+gTypeVideoPlaybackQuality = GType . Object <$> jsg "VideoPlaybackQuality"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VideoStreamTrack".+-- Base interface functions are in:+--+--     * "JSDOM.MediaStreamTrack"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoStreamTrack Mozilla VideoStreamTrack documentation>+newtype VideoStreamTrack = VideoStreamTrack { unVideoStreamTrack :: JSVal }++instance PToJSVal VideoStreamTrack where+  pToJSVal = unVideoStreamTrack+  {-# INLINE pToJSVal #-}++instance PFromJSVal VideoStreamTrack where+  pFromJSVal = VideoStreamTrack+  {-# INLINE pFromJSVal #-}++instance ToJSVal VideoStreamTrack where+  toJSVal = return . unVideoStreamTrack+  {-# INLINE toJSVal #-}++instance FromJSVal VideoStreamTrack where+  fromJSVal v = fmap VideoStreamTrack <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VideoStreamTrack+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VideoStreamTrack where+  makeObject = makeObject . unVideoStreamTrack++instance IsMediaStreamTrack VideoStreamTrack+instance IsEventTarget VideoStreamTrack+instance IsGObject VideoStreamTrack where+  typeGType _ = gTypeVideoStreamTrack+  {-# INLINE typeGType #-}++gTypeVideoStreamTrack :: JSM GType+gTypeVideoStreamTrack = GType . Object <$> jsg "VideoStreamTrack"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VideoTrack".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack Mozilla VideoTrack documentation>+newtype VideoTrack = VideoTrack { unVideoTrack :: JSVal }++instance PToJSVal VideoTrack where+  pToJSVal = unVideoTrack+  {-# INLINE pToJSVal #-}++instance PFromJSVal VideoTrack where+  pFromJSVal = VideoTrack+  {-# INLINE pFromJSVal #-}++instance ToJSVal VideoTrack where+  toJSVal = return . unVideoTrack+  {-# INLINE toJSVal #-}++instance FromJSVal VideoTrack where+  fromJSVal v = fmap VideoTrack <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VideoTrack+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VideoTrack where+  makeObject = makeObject . unVideoTrack++instance IsGObject VideoTrack where+  typeGType _ = gTypeVideoTrack+  {-# INLINE typeGType #-}++gTypeVideoTrack :: JSM GType+gTypeVideoTrack = GType . Object <$> jsg "VideoTrack"+#else+#ifndef USE_OLD_WEBKIT+type IsVideoTrack o = VideoTrackClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.VideoTrackList".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList Mozilla VideoTrackList documentation>+newtype VideoTrackList = VideoTrackList { unVideoTrackList :: JSVal }++instance PToJSVal VideoTrackList where+  pToJSVal = unVideoTrackList+  {-# INLINE pToJSVal #-}++instance PFromJSVal VideoTrackList where+  pFromJSVal = VideoTrackList+  {-# INLINE pFromJSVal #-}++instance ToJSVal VideoTrackList where+  toJSVal = return . unVideoTrackList+  {-# INLINE toJSVal #-}++instance FromJSVal VideoTrackList where+  fromJSVal v = fmap VideoTrackList <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . VideoTrackList+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject VideoTrackList where+  makeObject = makeObject . unVideoTrackList++instance IsEventTarget VideoTrackList+instance IsGObject VideoTrackList where+  typeGType _ = gTypeVideoTrackList+  {-# INLINE typeGType #-}++gTypeVideoTrackList :: JSM GType+gTypeVideoTrackList = GType . Object <$> jsg "VideoTrackList"+#else+#ifndef USE_OLD_WEBKIT+type IsVideoTrackList o = VideoTrackListClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WaveShaperNode".+-- Base interface functions are in:+--+--     * "JSDOM.AudioNode"+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode Mozilla WaveShaperNode documentation>+newtype WaveShaperNode = WaveShaperNode { unWaveShaperNode :: JSVal }++instance PToJSVal WaveShaperNode where+  pToJSVal = unWaveShaperNode+  {-# INLINE pToJSVal #-}++instance PFromJSVal WaveShaperNode where+  pFromJSVal = WaveShaperNode+  {-# INLINE pFromJSVal #-}++instance ToJSVal WaveShaperNode where+  toJSVal = return . unWaveShaperNode+  {-# INLINE toJSVal #-}++instance FromJSVal WaveShaperNode where+  fromJSVal v = fmap WaveShaperNode <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WaveShaperNode+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WaveShaperNode where+  makeObject = makeObject . unWaveShaperNode++instance IsAudioNode WaveShaperNode+instance IsEventTarget WaveShaperNode+instance IsGObject WaveShaperNode where+  typeGType _ = gTypeWaveShaperNode+  {-# INLINE typeGType #-}++gTypeWaveShaperNode :: JSM GType+gTypeWaveShaperNode = GType . Object <$> jsg "WaveShaperNode"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGL2RenderingContext".+-- Base interface functions are in:+--+--     * "JSDOM.WebGLRenderingContextBase"+--     * "JSDOM.CanvasRenderingContext"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext Mozilla WebGL2RenderingContext documentation>+newtype WebGL2RenderingContext = WebGL2RenderingContext { unWebGL2RenderingContext :: JSVal }++instance PToJSVal WebGL2RenderingContext where+  pToJSVal = unWebGL2RenderingContext+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGL2RenderingContext where+  pFromJSVal = WebGL2RenderingContext+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGL2RenderingContext where+  toJSVal = return . unWebGL2RenderingContext+  {-# INLINE toJSVal #-}++instance FromJSVal WebGL2RenderingContext where+  fromJSVal v = fmap WebGL2RenderingContext <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGL2RenderingContext+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGL2RenderingContext where+  makeObject = makeObject . unWebGL2RenderingContext++instance IsWebGLRenderingContextBase WebGL2RenderingContext+instance IsCanvasRenderingContext WebGL2RenderingContext+instance IsGObject WebGL2RenderingContext where+  typeGType _ = gTypeWebGL2RenderingContext+  {-# INLINE typeGType #-}++gTypeWebGL2RenderingContext :: JSM GType+gTypeWebGL2RenderingContext = GType . Object <$> jsg "WebGL2RenderingContext"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLActiveInfo".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo Mozilla WebGLActiveInfo documentation>+newtype WebGLActiveInfo = WebGLActiveInfo { unWebGLActiveInfo :: JSVal }++instance PToJSVal WebGLActiveInfo where+  pToJSVal = unWebGLActiveInfo+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLActiveInfo where+  pFromJSVal = WebGLActiveInfo+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLActiveInfo where+  toJSVal = return . unWebGLActiveInfo+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLActiveInfo where+  fromJSVal v = fmap WebGLActiveInfo <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLActiveInfo+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLActiveInfo where+  makeObject = makeObject . unWebGLActiveInfo++instance IsGObject WebGLActiveInfo where+  typeGType _ = gTypeWebGLActiveInfo+  {-# INLINE typeGType #-}++gTypeWebGLActiveInfo :: JSM GType+gTypeWebGLActiveInfo = GType . Object <$> jsg "WebGLActiveInfo"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLBuffer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer Mozilla WebGLBuffer documentation>+newtype WebGLBuffer = WebGLBuffer { unWebGLBuffer :: JSVal }++instance PToJSVal WebGLBuffer where+  pToJSVal = unWebGLBuffer+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLBuffer where+  pFromJSVal = WebGLBuffer+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLBuffer where+  toJSVal = return . unWebGLBuffer+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLBuffer where+  fromJSVal v = fmap WebGLBuffer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLBuffer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLBuffer where+  makeObject = makeObject . unWebGLBuffer++instance IsGObject WebGLBuffer where+  typeGType _ = gTypeWebGLBuffer+  {-# INLINE typeGType #-}++gTypeWebGLBuffer :: JSM GType+gTypeWebGLBuffer = GType . Object <$> jsg "WebGLBuffer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLCompressedTextureATC".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureATC Mozilla WebGLCompressedTextureATC documentation>+newtype WebGLCompressedTextureATC = WebGLCompressedTextureATC { unWebGLCompressedTextureATC :: JSVal }++instance PToJSVal WebGLCompressedTextureATC where+  pToJSVal = unWebGLCompressedTextureATC+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLCompressedTextureATC where+  pFromJSVal = WebGLCompressedTextureATC+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLCompressedTextureATC where+  toJSVal = return . unWebGLCompressedTextureATC+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLCompressedTextureATC where+  fromJSVal v = fmap WebGLCompressedTextureATC <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLCompressedTextureATC+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLCompressedTextureATC where+  makeObject = makeObject . unWebGLCompressedTextureATC++instance IsGObject WebGLCompressedTextureATC where+  typeGType _ = gTypeWebGLCompressedTextureATC+  {-# INLINE typeGType #-}++gTypeWebGLCompressedTextureATC :: JSM GType+gTypeWebGLCompressedTextureATC = GType . Object <$> jsg "WebGLCompressedTextureATC"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLCompressedTexturePVRTC".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTexturePVRTC Mozilla WebGLCompressedTexturePVRTC documentation>+newtype WebGLCompressedTexturePVRTC = WebGLCompressedTexturePVRTC { unWebGLCompressedTexturePVRTC :: JSVal }++instance PToJSVal WebGLCompressedTexturePVRTC where+  pToJSVal = unWebGLCompressedTexturePVRTC+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLCompressedTexturePVRTC where+  pFromJSVal = WebGLCompressedTexturePVRTC+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLCompressedTexturePVRTC where+  toJSVal = return . unWebGLCompressedTexturePVRTC+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLCompressedTexturePVRTC where+  fromJSVal v = fmap WebGLCompressedTexturePVRTC <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLCompressedTexturePVRTC+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLCompressedTexturePVRTC where+  makeObject = makeObject . unWebGLCompressedTexturePVRTC++instance IsGObject WebGLCompressedTexturePVRTC where+  typeGType _ = gTypeWebGLCompressedTexturePVRTC+  {-# INLINE typeGType #-}++gTypeWebGLCompressedTexturePVRTC :: JSM GType+gTypeWebGLCompressedTexturePVRTC = GType . Object <$> jsg "WebGLCompressedTexturePVRTC"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLCompressedTextureS3TC".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureS3TC Mozilla WebGLCompressedTextureS3TC documentation>+newtype WebGLCompressedTextureS3TC = WebGLCompressedTextureS3TC { unWebGLCompressedTextureS3TC :: JSVal }++instance PToJSVal WebGLCompressedTextureS3TC where+  pToJSVal = unWebGLCompressedTextureS3TC+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLCompressedTextureS3TC where+  pFromJSVal = WebGLCompressedTextureS3TC+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLCompressedTextureS3TC where+  toJSVal = return . unWebGLCompressedTextureS3TC+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLCompressedTextureS3TC where+  fromJSVal v = fmap WebGLCompressedTextureS3TC <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLCompressedTextureS3TC+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLCompressedTextureS3TC where+  makeObject = makeObject . unWebGLCompressedTextureS3TC++instance IsGObject WebGLCompressedTextureS3TC where+  typeGType _ = gTypeWebGLCompressedTextureS3TC+  {-# INLINE typeGType #-}++gTypeWebGLCompressedTextureS3TC :: JSM GType+gTypeWebGLCompressedTextureS3TC = GType . Object <$> jsg "WebGLCompressedTextureS3TC"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLContextAttributes".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes Mozilla WebGLContextAttributes documentation>+newtype WebGLContextAttributes = WebGLContextAttributes { unWebGLContextAttributes :: JSVal }++instance PToJSVal WebGLContextAttributes where+  pToJSVal = unWebGLContextAttributes+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLContextAttributes where+  pFromJSVal = WebGLContextAttributes+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLContextAttributes where+  toJSVal = return . unWebGLContextAttributes+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLContextAttributes where+  fromJSVal v = fmap WebGLContextAttributes <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLContextAttributes+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLContextAttributes where+  makeObject = makeObject . unWebGLContextAttributes++instance IsGObject WebGLContextAttributes where+  typeGType _ = gTypeWebGLContextAttributes+  {-# INLINE typeGType #-}++gTypeWebGLContextAttributes :: JSM GType+gTypeWebGLContextAttributes = GType . Object <$> jsg "WebGLContextAttributes"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLContextEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent Mozilla WebGLContextEvent documentation>+newtype WebGLContextEvent = WebGLContextEvent { unWebGLContextEvent :: JSVal }++instance PToJSVal WebGLContextEvent where+  pToJSVal = unWebGLContextEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLContextEvent where+  pFromJSVal = WebGLContextEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLContextEvent where+  toJSVal = return . unWebGLContextEvent+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLContextEvent where+  fromJSVal v = fmap WebGLContextEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLContextEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLContextEvent where+  makeObject = makeObject . unWebGLContextEvent++instance IsEvent WebGLContextEvent+instance IsGObject WebGLContextEvent where+  typeGType _ = gTypeWebGLContextEvent+  {-# INLINE typeGType #-}++gTypeWebGLContextEvent :: JSM GType+gTypeWebGLContextEvent = GType . Object <$> jsg "WebGLContextEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLDebugRendererInfo".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugRendererInfo Mozilla WebGLDebugRendererInfo documentation>+newtype WebGLDebugRendererInfo = WebGLDebugRendererInfo { unWebGLDebugRendererInfo :: JSVal }++instance PToJSVal WebGLDebugRendererInfo where+  pToJSVal = unWebGLDebugRendererInfo+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLDebugRendererInfo where+  pFromJSVal = WebGLDebugRendererInfo+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLDebugRendererInfo where+  toJSVal = return . unWebGLDebugRendererInfo+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLDebugRendererInfo where+  fromJSVal v = fmap WebGLDebugRendererInfo <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLDebugRendererInfo+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLDebugRendererInfo where+  makeObject = makeObject . unWebGLDebugRendererInfo++instance IsGObject WebGLDebugRendererInfo where+  typeGType _ = gTypeWebGLDebugRendererInfo+  {-# INLINE typeGType #-}++gTypeWebGLDebugRendererInfo :: JSM GType+gTypeWebGLDebugRendererInfo = GType . Object <$> jsg "WebGLDebugRendererInfo"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLDebugShaders".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders Mozilla WebGLDebugShaders documentation>+newtype WebGLDebugShaders = WebGLDebugShaders { unWebGLDebugShaders :: JSVal }++instance PToJSVal WebGLDebugShaders where+  pToJSVal = unWebGLDebugShaders+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLDebugShaders where+  pFromJSVal = WebGLDebugShaders+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLDebugShaders where+  toJSVal = return . unWebGLDebugShaders+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLDebugShaders where+  fromJSVal v = fmap WebGLDebugShaders <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLDebugShaders+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLDebugShaders where+  makeObject = makeObject . unWebGLDebugShaders++instance IsGObject WebGLDebugShaders where+  typeGType _ = gTypeWebGLDebugShaders+  {-# INLINE typeGType #-}++gTypeWebGLDebugShaders :: JSM GType+gTypeWebGLDebugShaders = GType . Object <$> jsg "WebGLDebugShaders"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLDepthTexture".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDepthTexture Mozilla WebGLDepthTexture documentation>+newtype WebGLDepthTexture = WebGLDepthTexture { unWebGLDepthTexture :: JSVal }++instance PToJSVal WebGLDepthTexture where+  pToJSVal = unWebGLDepthTexture+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLDepthTexture where+  pFromJSVal = WebGLDepthTexture+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLDepthTexture where+  toJSVal = return . unWebGLDepthTexture+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLDepthTexture where+  fromJSVal v = fmap WebGLDepthTexture <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLDepthTexture+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLDepthTexture where+  makeObject = makeObject . unWebGLDepthTexture++instance IsGObject WebGLDepthTexture where+  typeGType _ = gTypeWebGLDepthTexture+  {-# INLINE typeGType #-}++gTypeWebGLDepthTexture :: JSM GType+gTypeWebGLDepthTexture = GType . Object <$> jsg "WebGLDepthTexture"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLDrawBuffers".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDrawBuffers Mozilla WebGLDrawBuffers documentation>+newtype WebGLDrawBuffers = WebGLDrawBuffers { unWebGLDrawBuffers :: JSVal }++instance PToJSVal WebGLDrawBuffers where+  pToJSVal = unWebGLDrawBuffers+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLDrawBuffers where+  pFromJSVal = WebGLDrawBuffers+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLDrawBuffers where+  toJSVal = return . unWebGLDrawBuffers+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLDrawBuffers where+  fromJSVal v = fmap WebGLDrawBuffers <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLDrawBuffers+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLDrawBuffers where+  makeObject = makeObject . unWebGLDrawBuffers++instance IsGObject WebGLDrawBuffers where+  typeGType _ = gTypeWebGLDrawBuffers+  {-# INLINE typeGType #-}++gTypeWebGLDrawBuffers :: JSM GType+gTypeWebGLDrawBuffers = GType . Object <$> jsg "WebGLDrawBuffers"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLFramebuffer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLFramebuffer Mozilla WebGLFramebuffer documentation>+newtype WebGLFramebuffer = WebGLFramebuffer { unWebGLFramebuffer :: JSVal }++instance PToJSVal WebGLFramebuffer where+  pToJSVal = unWebGLFramebuffer+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLFramebuffer where+  pFromJSVal = WebGLFramebuffer+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLFramebuffer where+  toJSVal = return . unWebGLFramebuffer+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLFramebuffer where+  fromJSVal v = fmap WebGLFramebuffer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLFramebuffer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLFramebuffer where+  makeObject = makeObject . unWebGLFramebuffer++instance IsGObject WebGLFramebuffer where+  typeGType _ = gTypeWebGLFramebuffer+  {-# INLINE typeGType #-}++gTypeWebGLFramebuffer :: JSM GType+gTypeWebGLFramebuffer = GType . Object <$> jsg "WebGLFramebuffer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLLoseContext".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLLoseContext Mozilla WebGLLoseContext documentation>+newtype WebGLLoseContext = WebGLLoseContext { unWebGLLoseContext :: JSVal }++instance PToJSVal WebGLLoseContext where+  pToJSVal = unWebGLLoseContext+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLLoseContext where+  pFromJSVal = WebGLLoseContext+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLLoseContext where+  toJSVal = return . unWebGLLoseContext+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLLoseContext where+  fromJSVal v = fmap WebGLLoseContext <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLLoseContext+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLLoseContext where+  makeObject = makeObject . unWebGLLoseContext++instance IsGObject WebGLLoseContext where+  typeGType _ = gTypeWebGLLoseContext+  {-# INLINE typeGType #-}++gTypeWebGLLoseContext :: JSM GType+gTypeWebGLLoseContext = GType . Object <$> jsg "WebGLLoseContext"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLProgram".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLProgram Mozilla WebGLProgram documentation>+newtype WebGLProgram = WebGLProgram { unWebGLProgram :: JSVal }++instance PToJSVal WebGLProgram where+  pToJSVal = unWebGLProgram+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLProgram where+  pFromJSVal = WebGLProgram+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLProgram where+  toJSVal = return . unWebGLProgram+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLProgram where+  fromJSVal v = fmap WebGLProgram <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLProgram+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLProgram where+  makeObject = makeObject . unWebGLProgram++instance IsGObject WebGLProgram where+  typeGType _ = gTypeWebGLProgram+  {-# INLINE typeGType #-}++gTypeWebGLProgram :: JSM GType+gTypeWebGLProgram = GType . Object <$> jsg "WebGLProgram"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLQuery".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLQuery Mozilla WebGLQuery documentation>+newtype WebGLQuery = WebGLQuery { unWebGLQuery :: JSVal }++instance PToJSVal WebGLQuery where+  pToJSVal = unWebGLQuery+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLQuery where+  pFromJSVal = WebGLQuery+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLQuery where+  toJSVal = return . unWebGLQuery+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLQuery where+  fromJSVal v = fmap WebGLQuery <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLQuery+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLQuery where+  makeObject = makeObject . unWebGLQuery++instance IsGObject WebGLQuery where+  typeGType _ = gTypeWebGLQuery+  {-# INLINE typeGType #-}++gTypeWebGLQuery :: JSM GType+gTypeWebGLQuery = GType . Object <$> jsg "WebGLQuery"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLRenderbuffer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderbuffer Mozilla WebGLRenderbuffer documentation>+newtype WebGLRenderbuffer = WebGLRenderbuffer { unWebGLRenderbuffer :: JSVal }++instance PToJSVal WebGLRenderbuffer where+  pToJSVal = unWebGLRenderbuffer+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLRenderbuffer where+  pFromJSVal = WebGLRenderbuffer+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLRenderbuffer where+  toJSVal = return . unWebGLRenderbuffer+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLRenderbuffer where+  fromJSVal v = fmap WebGLRenderbuffer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLRenderbuffer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLRenderbuffer where+  makeObject = makeObject . unWebGLRenderbuffer++instance IsGObject WebGLRenderbuffer where+  typeGType _ = gTypeWebGLRenderbuffer+  {-# INLINE typeGType #-}++gTypeWebGLRenderbuffer :: JSM GType+gTypeWebGLRenderbuffer = GType . Object <$> jsg "WebGLRenderbuffer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLRenderingContext".+-- Base interface functions are in:+--+--     * "JSDOM.WebGLRenderingContextBase"+--     * "JSDOM.CanvasRenderingContext"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext Mozilla WebGLRenderingContext documentation>+newtype WebGLRenderingContext = WebGLRenderingContext { unWebGLRenderingContext :: JSVal }++instance PToJSVal WebGLRenderingContext where+  pToJSVal = unWebGLRenderingContext+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLRenderingContext where+  pFromJSVal = WebGLRenderingContext+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLRenderingContext where+  toJSVal = return . unWebGLRenderingContext+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLRenderingContext where+  fromJSVal v = fmap WebGLRenderingContext <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLRenderingContext+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLRenderingContext where+  makeObject = makeObject . unWebGLRenderingContext++instance IsWebGLRenderingContextBase WebGLRenderingContext+instance IsCanvasRenderingContext WebGLRenderingContext+instance IsGObject WebGLRenderingContext where+  typeGType _ = gTypeWebGLRenderingContext+  {-# INLINE typeGType #-}++gTypeWebGLRenderingContext :: JSM GType+gTypeWebGLRenderingContext = GType . Object <$> jsg "WebGLRenderingContext"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLRenderingContextBase".+-- Base interface functions are in:+--+--     * "JSDOM.CanvasRenderingContext"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase Mozilla WebGLRenderingContextBase documentation>+newtype WebGLRenderingContextBase = WebGLRenderingContextBase { unWebGLRenderingContextBase :: JSVal }++instance PToJSVal WebGLRenderingContextBase where+  pToJSVal = unWebGLRenderingContextBase+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLRenderingContextBase where+  pFromJSVal = WebGLRenderingContextBase+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLRenderingContextBase where+  toJSVal = return . unWebGLRenderingContextBase+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLRenderingContextBase where+  fromJSVal v = fmap WebGLRenderingContextBase <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLRenderingContextBase+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLRenderingContextBase where+  makeObject = makeObject . unWebGLRenderingContextBase++class IsCanvasRenderingContext o => IsWebGLRenderingContextBase o+toWebGLRenderingContextBase :: IsWebGLRenderingContextBase o => o -> WebGLRenderingContextBase+toWebGLRenderingContextBase = WebGLRenderingContextBase . coerce++instance IsWebGLRenderingContextBase WebGLRenderingContextBase+instance IsCanvasRenderingContext WebGLRenderingContextBase+instance IsGObject WebGLRenderingContextBase where+  typeGType _ = gTypeWebGLRenderingContextBase+  {-# INLINE typeGType #-}++gTypeWebGLRenderingContextBase :: JSM GType+gTypeWebGLRenderingContextBase = GType . Object <$> jsg "WebGLRenderingContextBase"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLSampler".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSampler Mozilla WebGLSampler documentation>+newtype WebGLSampler = WebGLSampler { unWebGLSampler :: JSVal }++instance PToJSVal WebGLSampler where+  pToJSVal = unWebGLSampler+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLSampler where+  pFromJSVal = WebGLSampler+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLSampler where+  toJSVal = return . unWebGLSampler+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLSampler where+  fromJSVal v = fmap WebGLSampler <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLSampler+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLSampler where+  makeObject = makeObject . unWebGLSampler++instance IsGObject WebGLSampler where+  typeGType _ = gTypeWebGLSampler+  {-# INLINE typeGType #-}++gTypeWebGLSampler :: JSM GType+gTypeWebGLSampler = GType . Object <$> jsg "WebGLSampler"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLShader".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShader Mozilla WebGLShader documentation>+newtype WebGLShader = WebGLShader { unWebGLShader :: JSVal }++instance PToJSVal WebGLShader where+  pToJSVal = unWebGLShader+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLShader where+  pFromJSVal = WebGLShader+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLShader where+  toJSVal = return . unWebGLShader+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLShader where+  fromJSVal v = fmap WebGLShader <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLShader+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLShader where+  makeObject = makeObject . unWebGLShader++instance IsGObject WebGLShader where+  typeGType _ = gTypeWebGLShader+  {-# INLINE typeGType #-}++gTypeWebGLShader :: JSM GType+gTypeWebGLShader = GType . Object <$> jsg "WebGLShader"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLShaderPrecisionFormat".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat Mozilla WebGLShaderPrecisionFormat documentation>+newtype WebGLShaderPrecisionFormat = WebGLShaderPrecisionFormat { unWebGLShaderPrecisionFormat :: JSVal }++instance PToJSVal WebGLShaderPrecisionFormat where+  pToJSVal = unWebGLShaderPrecisionFormat+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLShaderPrecisionFormat where+  pFromJSVal = WebGLShaderPrecisionFormat+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLShaderPrecisionFormat where+  toJSVal = return . unWebGLShaderPrecisionFormat+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLShaderPrecisionFormat where+  fromJSVal v = fmap WebGLShaderPrecisionFormat <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLShaderPrecisionFormat+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLShaderPrecisionFormat where+  makeObject = makeObject . unWebGLShaderPrecisionFormat++instance IsGObject WebGLShaderPrecisionFormat where+  typeGType _ = gTypeWebGLShaderPrecisionFormat+  {-# INLINE typeGType #-}++gTypeWebGLShaderPrecisionFormat :: JSM GType+gTypeWebGLShaderPrecisionFormat = GType . Object <$> jsg "WebGLShaderPrecisionFormat"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLSync".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSync Mozilla WebGLSync documentation>+newtype WebGLSync = WebGLSync { unWebGLSync :: JSVal }++instance PToJSVal WebGLSync where+  pToJSVal = unWebGLSync+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLSync where+  pFromJSVal = WebGLSync+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLSync where+  toJSVal = return . unWebGLSync+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLSync where+  fromJSVal v = fmap WebGLSync <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLSync+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLSync where+  makeObject = makeObject . unWebGLSync++instance IsGObject WebGLSync where+  typeGType _ = gTypeWebGLSync+  {-# INLINE typeGType #-}++gTypeWebGLSync :: JSM GType+gTypeWebGLSync = GType . Object <$> jsg "WebGLSync"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLTexture".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture Mozilla WebGLTexture documentation>+newtype WebGLTexture = WebGLTexture { unWebGLTexture :: JSVal }++instance PToJSVal WebGLTexture where+  pToJSVal = unWebGLTexture+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLTexture where+  pFromJSVal = WebGLTexture+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLTexture where+  toJSVal = return . unWebGLTexture+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLTexture where+  fromJSVal v = fmap WebGLTexture <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLTexture+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLTexture where+  makeObject = makeObject . unWebGLTexture++instance IsGObject WebGLTexture where+  typeGType _ = gTypeWebGLTexture+  {-# INLINE typeGType #-}++gTypeWebGLTexture :: JSM GType+gTypeWebGLTexture = GType . Object <$> jsg "WebGLTexture"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLTransformFeedback".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTransformFeedback Mozilla WebGLTransformFeedback documentation>+newtype WebGLTransformFeedback = WebGLTransformFeedback { unWebGLTransformFeedback :: JSVal }++instance PToJSVal WebGLTransformFeedback where+  pToJSVal = unWebGLTransformFeedback+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLTransformFeedback where+  pFromJSVal = WebGLTransformFeedback+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLTransformFeedback where+  toJSVal = return . unWebGLTransformFeedback+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLTransformFeedback where+  fromJSVal v = fmap WebGLTransformFeedback <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLTransformFeedback+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLTransformFeedback where+  makeObject = makeObject . unWebGLTransformFeedback++instance IsGObject WebGLTransformFeedback where+  typeGType _ = gTypeWebGLTransformFeedback+  {-# INLINE typeGType #-}++gTypeWebGLTransformFeedback :: JSM GType+gTypeWebGLTransformFeedback = GType . Object <$> jsg "WebGLTransformFeedback"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLUniformLocation".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLUniformLocation Mozilla WebGLUniformLocation documentation>+newtype WebGLUniformLocation = WebGLUniformLocation { unWebGLUniformLocation :: JSVal }++instance PToJSVal WebGLUniformLocation where+  pToJSVal = unWebGLUniformLocation+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLUniformLocation where+  pFromJSVal = WebGLUniformLocation+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLUniformLocation where+  toJSVal = return . unWebGLUniformLocation+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLUniformLocation where+  fromJSVal v = fmap WebGLUniformLocation <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLUniformLocation+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLUniformLocation where+  makeObject = makeObject . unWebGLUniformLocation++instance IsGObject WebGLUniformLocation where+  typeGType _ = gTypeWebGLUniformLocation+  {-# INLINE typeGType #-}++gTypeWebGLUniformLocation :: JSM GType+gTypeWebGLUniformLocation = GType . Object <$> jsg "WebGLUniformLocation"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLVertexArrayObject".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObject Mozilla WebGLVertexArrayObject documentation>+newtype WebGLVertexArrayObject = WebGLVertexArrayObject { unWebGLVertexArrayObject :: JSVal }++instance PToJSVal WebGLVertexArrayObject where+  pToJSVal = unWebGLVertexArrayObject+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLVertexArrayObject where+  pFromJSVal = WebGLVertexArrayObject+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLVertexArrayObject where+  toJSVal = return . unWebGLVertexArrayObject+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLVertexArrayObject where+  fromJSVal v = fmap WebGLVertexArrayObject <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLVertexArrayObject+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLVertexArrayObject where+  makeObject = makeObject . unWebGLVertexArrayObject++instance IsGObject WebGLVertexArrayObject where+  typeGType _ = gTypeWebGLVertexArrayObject+  {-# INLINE typeGType #-}++gTypeWebGLVertexArrayObject :: JSM GType+gTypeWebGLVertexArrayObject = GType . Object <$> jsg "WebGLVertexArrayObject"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebGLVertexArrayObjectOES".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObjectOES Mozilla WebGLVertexArrayObjectOES documentation>+newtype WebGLVertexArrayObjectOES = WebGLVertexArrayObjectOES { unWebGLVertexArrayObjectOES :: JSVal }++instance PToJSVal WebGLVertexArrayObjectOES where+  pToJSVal = unWebGLVertexArrayObjectOES+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebGLVertexArrayObjectOES where+  pFromJSVal = WebGLVertexArrayObjectOES+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebGLVertexArrayObjectOES where+  toJSVal = return . unWebGLVertexArrayObjectOES+  {-# INLINE toJSVal #-}++instance FromJSVal WebGLVertexArrayObjectOES where+  fromJSVal v = fmap WebGLVertexArrayObjectOES <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebGLVertexArrayObjectOES+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebGLVertexArrayObjectOES where+  makeObject = makeObject . unWebGLVertexArrayObjectOES++instance IsGObject WebGLVertexArrayObjectOES where+  typeGType _ = gTypeWebGLVertexArrayObjectOES+  {-# INLINE typeGType #-}++gTypeWebGLVertexArrayObjectOES :: JSM GType+gTypeWebGLVertexArrayObjectOES = GType . Object <$> jsg "WebGLVertexArrayObjectOES"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitAnimationEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEvent Mozilla WebKitAnimationEvent documentation>+newtype WebKitAnimationEvent = WebKitAnimationEvent { unWebKitAnimationEvent :: JSVal }++instance PToJSVal WebKitAnimationEvent where+  pToJSVal = unWebKitAnimationEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitAnimationEvent where+  pFromJSVal = WebKitAnimationEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitAnimationEvent where+  toJSVal = return . unWebKitAnimationEvent+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitAnimationEvent where+  fromJSVal v = fmap WebKitAnimationEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitAnimationEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitAnimationEvent where+  makeObject = makeObject . unWebKitAnimationEvent++instance IsEvent WebKitAnimationEvent+instance IsGObject WebKitAnimationEvent where+  typeGType _ = gTypeWebKitAnimationEvent+  {-# INLINE typeGType #-}++gTypeWebKitAnimationEvent :: JSM GType+gTypeWebKitAnimationEvent = GType . Object <$> jsg "WebKitAnimationEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitCSSFilterValue".+-- Base interface functions are in:+--+--     * "JSDOM.CSSValueList"+--     * "JSDOM.CSSValue"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue Mozilla WebKitCSSFilterValue documentation>+newtype WebKitCSSFilterValue = WebKitCSSFilterValue { unWebKitCSSFilterValue :: JSVal }++instance PToJSVal WebKitCSSFilterValue where+  pToJSVal = unWebKitCSSFilterValue+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitCSSFilterValue where+  pFromJSVal = WebKitCSSFilterValue+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitCSSFilterValue where+  toJSVal = return . unWebKitCSSFilterValue+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitCSSFilterValue where+  fromJSVal v = fmap WebKitCSSFilterValue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitCSSFilterValue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitCSSFilterValue where+  makeObject = makeObject . unWebKitCSSFilterValue++instance IsCSSValueList WebKitCSSFilterValue+instance IsCSSValue WebKitCSSFilterValue+instance IsGObject WebKitCSSFilterValue where+  typeGType _ = gTypeWebKitCSSFilterValue+  {-# INLINE typeGType #-}++gTypeWebKitCSSFilterValue :: JSM GType+gTypeWebKitCSSFilterValue = GType . Object <$> jsg "WebKitCSSFilterValue"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitCSSMatrix".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix Mozilla WebKitCSSMatrix documentation>+newtype WebKitCSSMatrix = WebKitCSSMatrix { unWebKitCSSMatrix :: JSVal }++instance PToJSVal WebKitCSSMatrix where+  pToJSVal = unWebKitCSSMatrix+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitCSSMatrix where+  pFromJSVal = WebKitCSSMatrix+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitCSSMatrix where+  toJSVal = return . unWebKitCSSMatrix+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitCSSMatrix where+  fromJSVal v = fmap WebKitCSSMatrix <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitCSSMatrix+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitCSSMatrix where+  makeObject = makeObject . unWebKitCSSMatrix++instance IsGObject WebKitCSSMatrix where+  typeGType _ = gTypeWebKitCSSMatrix+  {-# INLINE typeGType #-}++gTypeWebKitCSSMatrix :: JSM GType+gTypeWebKitCSSMatrix = GType . Object <$> jsg "WebKitCSSMatrix"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitCSSRegionRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule Mozilla WebKitCSSRegionRule documentation>+newtype WebKitCSSRegionRule = WebKitCSSRegionRule { unWebKitCSSRegionRule :: JSVal }++instance PToJSVal WebKitCSSRegionRule where+  pToJSVal = unWebKitCSSRegionRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitCSSRegionRule where+  pFromJSVal = WebKitCSSRegionRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitCSSRegionRule where+  toJSVal = return . unWebKitCSSRegionRule+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitCSSRegionRule where+  fromJSVal v = fmap WebKitCSSRegionRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitCSSRegionRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitCSSRegionRule where+  makeObject = makeObject . unWebKitCSSRegionRule++instance IsCSSRule WebKitCSSRegionRule+instance IsGObject WebKitCSSRegionRule where+  typeGType _ = gTypeWebKitCSSRegionRule+  {-# INLINE typeGType #-}++gTypeWebKitCSSRegionRule :: JSM GType+gTypeWebKitCSSRegionRule = GType . Object <$> jsg "WebKitCSSRegionRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitCSSTransformValue".+-- Base interface functions are in:+--+--     * "JSDOM.CSSValueList"+--     * "JSDOM.CSSValue"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue Mozilla WebKitCSSTransformValue documentation>+newtype WebKitCSSTransformValue = WebKitCSSTransformValue { unWebKitCSSTransformValue :: JSVal }++instance PToJSVal WebKitCSSTransformValue where+  pToJSVal = unWebKitCSSTransformValue+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitCSSTransformValue where+  pFromJSVal = WebKitCSSTransformValue+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitCSSTransformValue where+  toJSVal = return . unWebKitCSSTransformValue+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitCSSTransformValue where+  fromJSVal v = fmap WebKitCSSTransformValue <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitCSSTransformValue+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitCSSTransformValue where+  makeObject = makeObject . unWebKitCSSTransformValue++instance IsCSSValueList WebKitCSSTransformValue+instance IsCSSValue WebKitCSSTransformValue+instance IsGObject WebKitCSSTransformValue where+  typeGType _ = gTypeWebKitCSSTransformValue+  {-# INLINE typeGType #-}++gTypeWebKitCSSTransformValue :: JSM GType+gTypeWebKitCSSTransformValue = GType . Object <$> jsg "WebKitCSSTransformValue"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitCSSViewportRule".+-- Base interface functions are in:+--+--     * "JSDOM.CSSRule"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule Mozilla WebKitCSSViewportRule documentation>+newtype WebKitCSSViewportRule = WebKitCSSViewportRule { unWebKitCSSViewportRule :: JSVal }++instance PToJSVal WebKitCSSViewportRule where+  pToJSVal = unWebKitCSSViewportRule+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitCSSViewportRule where+  pFromJSVal = WebKitCSSViewportRule+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitCSSViewportRule where+  toJSVal = return . unWebKitCSSViewportRule+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitCSSViewportRule where+  fromJSVal v = fmap WebKitCSSViewportRule <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitCSSViewportRule+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitCSSViewportRule where+  makeObject = makeObject . unWebKitCSSViewportRule++instance IsCSSRule WebKitCSSViewportRule+instance IsGObject WebKitCSSViewportRule where+  typeGType _ = gTypeWebKitCSSViewportRule+  {-# INLINE typeGType #-}++gTypeWebKitCSSViewportRule :: JSM GType+gTypeWebKitCSSViewportRule = GType . Object <$> jsg "WebKitCSSViewportRule"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitNamedFlow".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow Mozilla WebKitNamedFlow documentation>+newtype WebKitNamedFlow = WebKitNamedFlow { unWebKitNamedFlow :: JSVal }++instance PToJSVal WebKitNamedFlow where+  pToJSVal = unWebKitNamedFlow+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitNamedFlow where+  pFromJSVal = WebKitNamedFlow+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitNamedFlow where+  toJSVal = return . unWebKitNamedFlow+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitNamedFlow where+  fromJSVal v = fmap WebKitNamedFlow <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitNamedFlow+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitNamedFlow where+  makeObject = makeObject . unWebKitNamedFlow++instance IsEventTarget WebKitNamedFlow+instance IsGObject WebKitNamedFlow where+  typeGType _ = gTypeWebKitNamedFlow+  {-# INLINE typeGType #-}++gTypeWebKitNamedFlow :: JSM GType+gTypeWebKitNamedFlow = GType . Object <$> jsg "WebKitNamedFlow"+#else+type IsWebKitNamedFlow o = WebKitNamedFlowClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitNamespace".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace Mozilla WebKitNamespace documentation>+newtype WebKitNamespace = WebKitNamespace { unWebKitNamespace :: JSVal }++instance PToJSVal WebKitNamespace where+  pToJSVal = unWebKitNamespace+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitNamespace where+  pFromJSVal = WebKitNamespace+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitNamespace where+  toJSVal = return . unWebKitNamespace+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitNamespace where+  fromJSVal v = fmap WebKitNamespace <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitNamespace+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitNamespace where+  makeObject = makeObject . unWebKitNamespace++instance IsGObject WebKitNamespace where+  typeGType _ = gTypeWebKitNamespace+  {-# INLINE typeGType #-}++gTypeWebKitNamespace :: JSM GType+gTypeWebKitNamespace = GType . Object <$> jsg "WebKitNamespace"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitPlaybackTargetAvailabilityEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPlaybackTargetAvailabilityEvent Mozilla WebKitPlaybackTargetAvailabilityEvent documentation>+newtype WebKitPlaybackTargetAvailabilityEvent = WebKitPlaybackTargetAvailabilityEvent { unWebKitPlaybackTargetAvailabilityEvent :: JSVal }++instance PToJSVal WebKitPlaybackTargetAvailabilityEvent where+  pToJSVal = unWebKitPlaybackTargetAvailabilityEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitPlaybackTargetAvailabilityEvent where+  pFromJSVal = WebKitPlaybackTargetAvailabilityEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitPlaybackTargetAvailabilityEvent where+  toJSVal = return . unWebKitPlaybackTargetAvailabilityEvent+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitPlaybackTargetAvailabilityEvent where+  fromJSVal v = fmap WebKitPlaybackTargetAvailabilityEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitPlaybackTargetAvailabilityEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitPlaybackTargetAvailabilityEvent where+  makeObject = makeObject . unWebKitPlaybackTargetAvailabilityEvent++instance IsEvent WebKitPlaybackTargetAvailabilityEvent+instance IsGObject WebKitPlaybackTargetAvailabilityEvent where+  typeGType _ = gTypeWebKitPlaybackTargetAvailabilityEvent+  {-# INLINE typeGType #-}++gTypeWebKitPlaybackTargetAvailabilityEvent :: JSM GType+gTypeWebKitPlaybackTargetAvailabilityEvent = GType . Object <$> jsg "WebKitPlaybackTargetAvailabilityEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitPoint".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint Mozilla WebKitPoint documentation>+newtype WebKitPoint = WebKitPoint { unWebKitPoint :: JSVal }++instance PToJSVal WebKitPoint where+  pToJSVal = unWebKitPoint+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitPoint where+  pFromJSVal = WebKitPoint+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitPoint where+  toJSVal = return . unWebKitPoint+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitPoint where+  fromJSVal v = fmap WebKitPoint <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitPoint+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitPoint where+  makeObject = makeObject . unWebKitPoint++instance IsGObject WebKitPoint where+  typeGType _ = gTypeWebKitPoint+  {-# INLINE typeGType #-}++gTypeWebKitPoint :: JSM GType+gTypeWebKitPoint = GType . Object <$> jsg "WebKitPoint"+#else+type IsWebKitPoint o = WebKitPointClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebKitTransitionEvent".+-- Base interface functions are in:+--+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEvent Mozilla WebKitTransitionEvent documentation>+newtype WebKitTransitionEvent = WebKitTransitionEvent { unWebKitTransitionEvent :: JSVal }++instance PToJSVal WebKitTransitionEvent where+  pToJSVal = unWebKitTransitionEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebKitTransitionEvent where+  pFromJSVal = WebKitTransitionEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebKitTransitionEvent where+  toJSVal = return . unWebKitTransitionEvent+  {-# INLINE toJSVal #-}++instance FromJSVal WebKitTransitionEvent where+  fromJSVal v = fmap WebKitTransitionEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebKitTransitionEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebKitTransitionEvent where+  makeObject = makeObject . unWebKitTransitionEvent++instance IsEvent WebKitTransitionEvent+instance IsGObject WebKitTransitionEvent where+  typeGType _ = gTypeWebKitTransitionEvent+  {-# INLINE typeGType #-}++gTypeWebKitTransitionEvent :: JSM GType+gTypeWebKitTransitionEvent = GType . Object <$> jsg "WebKitTransitionEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WebSocket".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket Mozilla WebSocket documentation>+newtype WebSocket = WebSocket { unWebSocket :: JSVal }++instance PToJSVal WebSocket where+  pToJSVal = unWebSocket+  {-# INLINE pToJSVal #-}++instance PFromJSVal WebSocket where+  pFromJSVal = WebSocket+  {-# INLINE pFromJSVal #-}++instance ToJSVal WebSocket where+  toJSVal = return . unWebSocket+  {-# INLINE toJSVal #-}++instance FromJSVal WebSocket where+  fromJSVal v = fmap WebSocket <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WebSocket+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WebSocket where+  makeObject = makeObject . unWebSocket++instance IsEventTarget WebSocket+instance IsGObject WebSocket where+  typeGType _ = gTypeWebSocket+  {-# INLINE typeGType #-}++gTypeWebSocket :: JSM GType+gTypeWebSocket = GType . Object <$> jsg "WebSocket"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WheelEvent".+-- Base interface functions are in:+--+--     * "JSDOM.MouseEvent"+--     * "JSDOM.UIEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent Mozilla WheelEvent documentation>+newtype WheelEvent = WheelEvent { unWheelEvent :: JSVal }++instance PToJSVal WheelEvent where+  pToJSVal = unWheelEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal WheelEvent where+  pFromJSVal = WheelEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal WheelEvent where+  toJSVal = return . unWheelEvent+  {-# INLINE toJSVal #-}++instance FromJSVal WheelEvent where+  fromJSVal v = fmap WheelEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WheelEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WheelEvent where+  makeObject = makeObject . unWheelEvent++instance IsMouseEvent WheelEvent+instance IsUIEvent WheelEvent+instance IsEvent WheelEvent+instance IsGObject WheelEvent where+  typeGType _ = gTypeWheelEvent+  {-# INLINE typeGType #-}++gTypeWheelEvent :: JSM GType+gTypeWheelEvent = GType . Object <$> jsg "WheelEvent"+#else+#ifndef USE_OLD_WEBKIT+type IsWheelEvent o = WheelEventClass o+#endif+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Window".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Window Mozilla Window documentation>+newtype Window = Window { unWindow :: JSVal }++instance PToJSVal Window where+  pToJSVal = unWindow+  {-# INLINE pToJSVal #-}++instance PFromJSVal Window where+  pFromJSVal = Window+  {-# INLINE pFromJSVal #-}++instance ToJSVal Window where+  toJSVal = return . unWindow+  {-# INLINE toJSVal #-}++instance FromJSVal Window where+  fromJSVal v = fmap Window <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Window+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Window where+  makeObject = makeObject . unWindow++instance IsEventTarget Window+instance IsGObject Window where+  typeGType _ = gTypeWindow+  {-# INLINE typeGType #-}++gTypeWindow :: JSM GType+gTypeWindow = GType . Object <$> jsg "Window"+#else+type IsWindow o = WindowClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WindowBase64".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64 Mozilla WindowBase64 documentation>+newtype WindowBase64 = WindowBase64 { unWindowBase64 :: JSVal }++instance PToJSVal WindowBase64 where+  pToJSVal = unWindowBase64+  {-# INLINE pToJSVal #-}++instance PFromJSVal WindowBase64 where+  pFromJSVal = WindowBase64+  {-# INLINE pFromJSVal #-}++instance ToJSVal WindowBase64 where+  toJSVal = return . unWindowBase64+  {-# INLINE toJSVal #-}++instance FromJSVal WindowBase64 where+  fromJSVal v = fmap WindowBase64 <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WindowBase64+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WindowBase64 where+  makeObject = makeObject . unWindowBase64++instance IsGObject WindowBase64 where+  typeGType _ = gTypeWindowBase64+  {-# INLINE typeGType #-}++gTypeWindowBase64 :: JSM GType+gTypeWindowBase64 = GType . Object <$> jsg "WindowBase64"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WindowTimers".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers Mozilla WindowTimers documentation>+newtype WindowTimers = WindowTimers { unWindowTimers :: JSVal }++instance PToJSVal WindowTimers where+  pToJSVal = unWindowTimers+  {-# INLINE pToJSVal #-}++instance PFromJSVal WindowTimers where+  pFromJSVal = WindowTimers+  {-# INLINE pFromJSVal #-}++instance ToJSVal WindowTimers where+  toJSVal = return . unWindowTimers+  {-# INLINE toJSVal #-}++instance FromJSVal WindowTimers where+  fromJSVal v = fmap WindowTimers <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WindowTimers+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WindowTimers where+  makeObject = makeObject . unWindowTimers++instance IsGObject WindowTimers where+  typeGType _ = gTypeWindowTimers+  {-# INLINE typeGType #-}++gTypeWindowTimers :: JSM GType+gTypeWindowTimers = GType . Object <$> jsg "WindowTimers"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.Worker".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/Worker Mozilla Worker documentation>+newtype Worker = Worker { unWorker :: JSVal }++instance PToJSVal Worker where+  pToJSVal = unWorker+  {-# INLINE pToJSVal #-}++instance PFromJSVal Worker where+  pFromJSVal = Worker+  {-# INLINE pFromJSVal #-}++instance ToJSVal Worker where+  toJSVal = return . unWorker+  {-# INLINE toJSVal #-}++instance FromJSVal Worker where+  fromJSVal v = fmap Worker <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . Worker+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject Worker where+  makeObject = makeObject . unWorker++instance IsEventTarget Worker+instance IsGObject Worker where+  typeGType _ = gTypeWorker+  {-# INLINE typeGType #-}++gTypeWorker :: JSM GType+gTypeWorker = GType . Object <$> jsg "Worker"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WorkerGlobalScope".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope Mozilla WorkerGlobalScope documentation>+newtype WorkerGlobalScope = WorkerGlobalScope { unWorkerGlobalScope :: JSVal }++instance PToJSVal WorkerGlobalScope where+  pToJSVal = unWorkerGlobalScope+  {-# INLINE pToJSVal #-}++instance PFromJSVal WorkerGlobalScope where+  pFromJSVal = WorkerGlobalScope+  {-# INLINE pFromJSVal #-}++instance ToJSVal WorkerGlobalScope where+  toJSVal = return . unWorkerGlobalScope+  {-# INLINE toJSVal #-}++instance FromJSVal WorkerGlobalScope where+  fromJSVal v = fmap WorkerGlobalScope <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WorkerGlobalScope+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WorkerGlobalScope where+  makeObject = makeObject . unWorkerGlobalScope++class IsEventTarget o => IsWorkerGlobalScope o+toWorkerGlobalScope :: IsWorkerGlobalScope o => o -> WorkerGlobalScope+toWorkerGlobalScope = WorkerGlobalScope . coerce++instance IsWorkerGlobalScope WorkerGlobalScope+instance IsEventTarget WorkerGlobalScope+instance IsGObject WorkerGlobalScope where+  typeGType _ = gTypeWorkerGlobalScope+  {-# INLINE typeGType #-}++gTypeWorkerGlobalScope :: JSM GType+gTypeWorkerGlobalScope = GType . Object <$> jsg "WorkerGlobalScope"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WorkerLocation".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation Mozilla WorkerLocation documentation>+newtype WorkerLocation = WorkerLocation { unWorkerLocation :: JSVal }++instance PToJSVal WorkerLocation where+  pToJSVal = unWorkerLocation+  {-# INLINE pToJSVal #-}++instance PFromJSVal WorkerLocation where+  pFromJSVal = WorkerLocation+  {-# INLINE pFromJSVal #-}++instance ToJSVal WorkerLocation where+  toJSVal = return . unWorkerLocation+  {-# INLINE toJSVal #-}++instance FromJSVal WorkerLocation where+  fromJSVal v = fmap WorkerLocation <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WorkerLocation+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WorkerLocation where+  makeObject = makeObject . unWorkerLocation++instance IsGObject WorkerLocation where+  typeGType _ = gTypeWorkerLocation+  {-# INLINE typeGType #-}++gTypeWorkerLocation :: JSM GType+gTypeWorkerLocation = GType . Object <$> jsg "WorkerLocation"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.WorkerNavigator".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator Mozilla WorkerNavigator documentation>+newtype WorkerNavigator = WorkerNavigator { unWorkerNavigator :: JSVal }++instance PToJSVal WorkerNavigator where+  pToJSVal = unWorkerNavigator+  {-# INLINE pToJSVal #-}++instance PFromJSVal WorkerNavigator where+  pFromJSVal = WorkerNavigator+  {-# INLINE pFromJSVal #-}++instance ToJSVal WorkerNavigator where+  toJSVal = return . unWorkerNavigator+  {-# INLINE toJSVal #-}++instance FromJSVal WorkerNavigator where+  fromJSVal v = fmap WorkerNavigator <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . WorkerNavigator+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject WorkerNavigator where+  makeObject = makeObject . unWorkerNavigator++instance IsGObject WorkerNavigator where+  typeGType _ = gTypeWorkerNavigator+  {-# INLINE typeGType #-}++gTypeWorkerNavigator :: JSM GType+gTypeWorkerNavigator = GType . Object <$> jsg "WorkerNavigator"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XMLHttpRequest".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest Mozilla XMLHttpRequest documentation>+newtype XMLHttpRequest = XMLHttpRequest { unXMLHttpRequest :: JSVal }++instance PToJSVal XMLHttpRequest where+  pToJSVal = unXMLHttpRequest+  {-# INLINE pToJSVal #-}++instance PFromJSVal XMLHttpRequest where+  pFromJSVal = XMLHttpRequest+  {-# INLINE pFromJSVal #-}++instance ToJSVal XMLHttpRequest where+  toJSVal = return . unXMLHttpRequest+  {-# INLINE toJSVal #-}++instance FromJSVal XMLHttpRequest where+  fromJSVal v = fmap XMLHttpRequest <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XMLHttpRequest+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XMLHttpRequest where+  makeObject = makeObject . unXMLHttpRequest++instance IsEventTarget XMLHttpRequest+instance IsGObject XMLHttpRequest where+  typeGType _ = gTypeXMLHttpRequest+  {-# INLINE typeGType #-}++gTypeXMLHttpRequest :: JSM GType+gTypeXMLHttpRequest = GType . Object <$> jsg "XMLHttpRequest"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XMLHttpRequestProgressEvent".+-- Base interface functions are in:+--+--     * "JSDOM.ProgressEvent"+--     * "JSDOM.Event"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestProgressEvent Mozilla XMLHttpRequestProgressEvent documentation>+newtype XMLHttpRequestProgressEvent = XMLHttpRequestProgressEvent { unXMLHttpRequestProgressEvent :: JSVal }++instance PToJSVal XMLHttpRequestProgressEvent where+  pToJSVal = unXMLHttpRequestProgressEvent+  {-# INLINE pToJSVal #-}++instance PFromJSVal XMLHttpRequestProgressEvent where+  pFromJSVal = XMLHttpRequestProgressEvent+  {-# INLINE pFromJSVal #-}++instance ToJSVal XMLHttpRequestProgressEvent where+  toJSVal = return . unXMLHttpRequestProgressEvent+  {-# INLINE toJSVal #-}++instance FromJSVal XMLHttpRequestProgressEvent where+  fromJSVal v = fmap XMLHttpRequestProgressEvent <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XMLHttpRequestProgressEvent+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XMLHttpRequestProgressEvent where+  makeObject = makeObject . unXMLHttpRequestProgressEvent++instance IsProgressEvent XMLHttpRequestProgressEvent+instance IsEvent XMLHttpRequestProgressEvent+instance IsGObject XMLHttpRequestProgressEvent where+  typeGType _ = gTypeXMLHttpRequestProgressEvent+  {-# INLINE typeGType #-}++gTypeXMLHttpRequestProgressEvent :: JSM GType+gTypeXMLHttpRequestProgressEvent = GType . Object <$> jsg "XMLHttpRequestProgressEvent"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XMLHttpRequestUpload".+-- Base interface functions are in:+--+--     * "JSDOM.EventTarget"+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload Mozilla XMLHttpRequestUpload documentation>+newtype XMLHttpRequestUpload = XMLHttpRequestUpload { unXMLHttpRequestUpload :: JSVal }++instance PToJSVal XMLHttpRequestUpload where+  pToJSVal = unXMLHttpRequestUpload+  {-# INLINE pToJSVal #-}++instance PFromJSVal XMLHttpRequestUpload where+  pFromJSVal = XMLHttpRequestUpload+  {-# INLINE pFromJSVal #-}++instance ToJSVal XMLHttpRequestUpload where+  toJSVal = return . unXMLHttpRequestUpload+  {-# INLINE toJSVal #-}++instance FromJSVal XMLHttpRequestUpload where+  fromJSVal v = fmap XMLHttpRequestUpload <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XMLHttpRequestUpload+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XMLHttpRequestUpload where+  makeObject = makeObject . unXMLHttpRequestUpload++instance IsEventTarget XMLHttpRequestUpload+instance IsGObject XMLHttpRequestUpload where+  typeGType _ = gTypeXMLHttpRequestUpload+  {-# INLINE typeGType #-}++gTypeXMLHttpRequestUpload :: JSM GType+gTypeXMLHttpRequestUpload = GType . Object <$> jsg "XMLHttpRequestUpload"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XMLSerializer".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer Mozilla XMLSerializer documentation>+newtype XMLSerializer = XMLSerializer { unXMLSerializer :: JSVal }++instance PToJSVal XMLSerializer where+  pToJSVal = unXMLSerializer+  {-# INLINE pToJSVal #-}++instance PFromJSVal XMLSerializer where+  pFromJSVal = XMLSerializer+  {-# INLINE pFromJSVal #-}++instance ToJSVal XMLSerializer where+  toJSVal = return . unXMLSerializer+  {-# INLINE toJSVal #-}++instance FromJSVal XMLSerializer where+  fromJSVal v = fmap XMLSerializer <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XMLSerializer+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XMLSerializer where+  makeObject = makeObject . unXMLSerializer++instance IsGObject XMLSerializer where+  typeGType _ = gTypeXMLSerializer+  {-# INLINE typeGType #-}++gTypeXMLSerializer :: JSM GType+gTypeXMLSerializer = GType . Object <$> jsg "XMLSerializer"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XPathEvaluator".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator Mozilla XPathEvaluator documentation>+newtype XPathEvaluator = XPathEvaluator { unXPathEvaluator :: JSVal }++instance PToJSVal XPathEvaluator where+  pToJSVal = unXPathEvaluator+  {-# INLINE pToJSVal #-}++instance PFromJSVal XPathEvaluator where+  pFromJSVal = XPathEvaluator+  {-# INLINE pFromJSVal #-}++instance ToJSVal XPathEvaluator where+  toJSVal = return . unXPathEvaluator+  {-# INLINE toJSVal #-}++instance FromJSVal XPathEvaluator where+  fromJSVal v = fmap XPathEvaluator <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XPathEvaluator+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XPathEvaluator where+  makeObject = makeObject . unXPathEvaluator++instance IsGObject XPathEvaluator where+  typeGType _ = gTypeXPathEvaluator+  {-# INLINE typeGType #-}++gTypeXPathEvaluator :: JSM GType+gTypeXPathEvaluator = GType . Object <$> jsg "XPathEvaluator"+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XPathExpression".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression Mozilla XPathExpression documentation>+newtype XPathExpression = XPathExpression { unXPathExpression :: JSVal }++instance PToJSVal XPathExpression where+  pToJSVal = unXPathExpression+  {-# INLINE pToJSVal #-}++instance PFromJSVal XPathExpression where+  pFromJSVal = XPathExpression+  {-# INLINE pFromJSVal #-}++instance ToJSVal XPathExpression where+  toJSVal = return . unXPathExpression+  {-# INLINE toJSVal #-}++instance FromJSVal XPathExpression where+  fromJSVal v = fmap XPathExpression <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XPathExpression+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XPathExpression where+  makeObject = makeObject . unXPathExpression++instance IsGObject XPathExpression where+  typeGType _ = gTypeXPathExpression+  {-# INLINE typeGType #-}++gTypeXPathExpression :: JSM GType+gTypeXPathExpression = GType . Object <$> jsg "XPathExpression"+#else+type IsXPathExpression o = XPathExpressionClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XPathNSResolver".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver Mozilla XPathNSResolver documentation>+newtype XPathNSResolver = XPathNSResolver { unXPathNSResolver :: JSVal }++instance PToJSVal XPathNSResolver where+  pToJSVal = unXPathNSResolver+  {-# INLINE pToJSVal #-}++instance PFromJSVal XPathNSResolver where+  pFromJSVal = XPathNSResolver+  {-# INLINE pFromJSVal #-}++instance ToJSVal XPathNSResolver where+  toJSVal = return . unXPathNSResolver+  {-# INLINE toJSVal #-}++instance FromJSVal XPathNSResolver where+  fromJSVal v = fmap XPathNSResolver <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XPathNSResolver+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XPathNSResolver where+  makeObject = makeObject . unXPathNSResolver++instance IsGObject XPathNSResolver where+  typeGType _ = gTypeXPathNSResolver+  {-# INLINE typeGType #-}++gTypeXPathNSResolver :: JSM GType+gTypeXPathNSResolver = GType . Object <$> jsg "XPathNSResolver"+#else+type IsXPathNSResolver o = XPathNSResolverClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XPathResult".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult Mozilla XPathResult documentation>+newtype XPathResult = XPathResult { unXPathResult :: JSVal }++instance PToJSVal XPathResult where+  pToJSVal = unXPathResult+  {-# INLINE pToJSVal #-}++instance PFromJSVal XPathResult where+  pFromJSVal = XPathResult+  {-# INLINE pFromJSVal #-}++instance ToJSVal XPathResult where+  toJSVal = return . unXPathResult+  {-# INLINE toJSVal #-}++instance FromJSVal XPathResult where+  fromJSVal v = fmap XPathResult <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XPathResult+  {-# INLINE fromJSValUnchecked #-}++instance MakeObject XPathResult where+  makeObject = makeObject . unXPathResult++instance IsGObject XPathResult where+  typeGType _ = gTypeXPathResult+  {-# INLINE typeGType #-}++gTypeXPathResult :: JSM GType+gTypeXPathResult = GType . Object <$> jsg "XPathResult"+#else+type IsXPathResult o = XPathResultClass o+#endif+++#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)+-- | Functions for this inteface are in "JSDOM.XSLTProcessor".+--+-- <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor Mozilla XSLTProcessor documentation>+newtype XSLTProcessor = XSLTProcessor { unXSLTProcessor :: JSVal }++instance PToJSVal XSLTProcessor where+  pToJSVal = unXSLTProcessor+  {-# INLINE pToJSVal #-}++instance PFromJSVal XSLTProcessor where+  pFromJSVal = XSLTProcessor+  {-# INLINE pFromJSVal #-}++instance ToJSVal XSLTProcessor where+  toJSVal = return . unXSLTProcessor+  {-# INLINE toJSVal #-}++instance FromJSVal XSLTProcessor where+  fromJSVal v = fmap XSLTProcessor <$> maybeNullOrUndefined v+  {-# INLINE fromJSVal #-}+  fromJSValUnchecked = return . XSLTProcessor+  {-# INLINE fromJSValUnchecked #-}  instance MakeObject XSLTProcessor where   makeObject = makeObject . unXSLTProcessor