packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/Types.hs

{-# LANGUAGE CPP, JavaScriptFFI, ForeignFunctionInterface, ConstraintKinds, FlexibleInstances, RankNTypes, FlexibleContexts, ScopedTypeVariables #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, KindSignatures #-}
module GHCJS.DOM.Types (

  -- * JavaScript Context and Monad
    JSContextRef(..), JSM, askJSM, runJSM, MonadJSM(..), liftJSM

  -- * DOM Context and Monad
  , DOMContext(..), DOM, askDOM, runDOM, MonadDOM(..), liftDOM

  -- * JavaScript Value
  , JSVal(..), ToJSVal(..), FromJSVal(..), PToJSVal(..), PFromJSVal(..)

  -- * JavaScript String
  , JSString(..), ToJSString(..), FromJSString(..)
  , toJSString, fromJSString, toMaybeJSString, fromMaybeJSString
  , noJSString

  -- * Nullable
  , Nullable(..), nullableToMaybe, maybeToNullable

  -- * Optional
  , Optional(..), maybeToOptional, toOptionalJSString

  -- * DOM String
  , DOMString(..), ToDOMString(..), FromDOMString(..), IsDOMString, noDOMString
  , USVString(..), IsUSVString, noUSVString
  , ByteString(..), IsByteString, noByteString
  , CSSOMString(..), IsCSSOMString, noCSSOMString

  -- * Object
  , maybeJSNullOrUndefined, GType(..)
  , GObject(..), noGObject, IsGObject, toGObject, gTypeGObject, isA, objectToString
  , castTo, unsafeCastTo, uncheckedCastTo
  , js_eq, strictEqual

  -- * TypedArray
  , RawTypedArray(RawTypedArray), unRawTypedArray, IsRawTypedArray, toRawTypedArray, noRawTypedArray

  , Function(Function), unFunction, IsFunction, toFunction, noFunction

  , PromiseRejected(..), noPromiseRejected, maybeThrowPromiseRejected, checkPromiseResult

  -- * Custom Types
  , DOMHighResTimeStamp, noDOMHighResTimeStamp
  , PerformanceEntryList, noPerformanceEntryList

  -- * Record Type
  , Record(Record), unRecord

  -- * Dictionaries
  , Dictionary(Dictionary), unDictionary, IsDictionary, toDictionary, noDictionary

  -- * History state
  , SerializedScriptValue(SerializedScriptValue), unSerializedScriptValue, IsSerializedScriptValue, toSerializedScriptValue, noSerializedScriptValue

  -- * Date
  , Date(Date), unDate, IsDate, toDate, gTypeDate, noDate

  -- * Arrays
  , Array(Array), unArray, IsArray, toArray, gTypeArray, noArray
  , ObjectArray(ObjectArray), unObjectArray, IsObjectArray, toObjectArray, noObjectArray
  , ArrayBuffer(ArrayBuffer), unArrayBuffer, IsArrayBuffer, toArrayBuffer, gTypeArrayBuffer, noArrayBuffer
  , ArrayBufferView(ArrayBufferView), unArrayBufferView, IsArrayBufferView, toArrayBufferView, noArrayBufferView
  , Float32Array(Float32Array), unFloat32Array, IsFloat32Array, toFloat32Array, gTypeFloat32Array, noFloat32Array
  , Float64Array(Float64Array), unFloat64Array, IsFloat64Array, toFloat64Array, gTypeFloat64Array, noFloat64Array
  , Uint8Array(Uint8Array), unUint8Array, IsUint8Array, toUint8Array, gTypeUint8Array, noUint8Array
  , Uint8ClampedArray(Uint8ClampedArray), unUint8ClampedArray, IsUint8ClampedArray, toUint8ClampedArray, gTypeUint8ClampedArray, noUint8ClampedArray
  , Uint16Array(Uint16Array), unUint16Array, IsUint16Array, toUint16Array, gTypeUint16Array, noUint16Array
  , Uint32Array(Uint32Array), unUint32Array, IsUint32Array, toUint32Array, gTypeUint32Array, noUint32Array
  , Int8Array(Int8Array), unInt8Array, IsInt8Array, toInt8Array, gTypeInt8Array, noInt8Array
  , Int16Array(Int16Array), unInt16Array, IsInt16Array, toInt16Array, gTypeInt16Array, noInt16Array
  , Int32Array(Int32Array), unInt32Array, IsInt32Array, toInt32Array, gTypeInt32Array, noInt32Array

  -- * WebGL typedefs
  , GLenum(..), GLboolean(..), GLbitfield(..), GLbyte(..), GLshort(..), GLint(..), GLsizei(..)
  , GLintptr(..), GLsizeiptr(..), GLubyte(..), GLushort(..), GLuint(..), GLfloat(..), GLclampf(..)
  , GLint64, GLuint64
  , noGLenum, noGLboolean, noGLbitfield, noGLbyte, noGLshort, noGLint, noGLsizei
  , noGLintptr, noGLsizeiptr, noGLubyte, noGLushort, noGLuint, noGLfloat, noGLclampf
  , noGLint64, noGLuint64

  -- * Integers exact in a JavaScript Number (Web IDL long long / unsigned long long)
  , Int53, int53, toInt53, clampInt53, fromInt53, minInt53, maxInt53
  , Word53, word53, toWord53, clampWord53, fromWord53, maxWord53

  -- * Used for better error messages
  , HasCallStack

  , GlobalThis(GlobalThis), unGlobalThis, noGlobalThis

  -- * Interface types from IDL files

-- AUTO GENERATION STARTS HERE
  , AddEventListenerOptionsOrBool(AddEventListenerOptionsOrBool), unAddEventListenerOptionsOrBool, IsAddEventListenerOptionsOrBool, toAddEventListenerOptionsOrBool
  , AlgorithmIdentifier(AlgorithmIdentifier), unAlgorithmIdentifier, IsAlgorithmIdentifier, toAlgorithmIdentifier
  , AllowSharedBufferSource(AllowSharedBufferSource), unAllowSharedBufferSource, IsAllowSharedBufferSource, toAllowSharedBufferSource
  , ArrayBufferOrJsonWebKey(ArrayBufferOrJsonWebKey), unArrayBufferOrJsonWebKey, IsArrayBufferOrJsonWebKey, toArrayBufferOrJsonWebKey
  , AudioContextLatencyCategoryOrDouble(AudioContextLatencyCategoryOrDouble), unAudioContextLatencyCategoryOrDouble, IsAudioContextLatencyCategoryOrDouble, toAudioContextLatencyCategoryOrDouble
  , AudioContextRenderSizeCategoryOrWord(AudioContextRenderSizeCategoryOrWord), unAudioContextRenderSizeCategoryOrWord, IsAudioContextRenderSizeCategoryOrWord, toAudioContextRenderSizeCategoryOrWord
  , BlobOrMediaSource(BlobOrMediaSource), unBlobOrMediaSource, IsBlobOrMediaSource, toBlobOrMediaSource
  , BlobPart(BlobPart), unBlobPart, IsBlobPart, toBlobPart
  , BluetoothServiceUUID(BluetoothServiceUUID), unBluetoothServiceUUID, IsBluetoothServiceUUID, toBluetoothServiceUUID
  , BodyInit(BodyInit), unBodyInit, IsBodyInit, toBodyInit
  , BoolOrConstrainDouble(BoolOrConstrainDouble), unBoolOrConstrainDouble, IsBoolOrConstrainDouble, toBoolOrConstrainDouble
  , BoolOrDoubleOrString(BoolOrDoubleOrString), unBoolOrDoubleOrString, IsBoolOrDoubleOrString, toBoolOrDoubleOrString
  , BoolOrImportNodeOptions(BoolOrImportNodeOptions), unBoolOrImportNodeOptions, IsBoolOrImportNodeOptions, toBoolOrImportNodeOptions
  , BoolOrMediaTrackConstraints(BoolOrMediaTrackConstraints), unBoolOrMediaTrackConstraints, IsBoolOrMediaTrackConstraints, toBoolOrMediaTrackConstraints
  , BoolOrScrollIntoViewOptions(BoolOrScrollIntoViewOptions), unBoolOrScrollIntoViewOptions, IsBoolOrScrollIntoViewOptions, toBoolOrScrollIntoViewOptions
  , BoolOrString(BoolOrString), unBoolOrString, IsBoolOrString, toBoolOrString
  , BufferSource(BufferSource), unBufferSource, IsBufferSource, toBufferSource
  , BufferSourceOrBlobOrString(BufferSourceOrBlobOrString), unBufferSourceOrBlobOrString, IsBufferSourceOrBlobOrString, toBufferSourceOrBlobOrString
  , BufferSourceOrJsonWebKey(BufferSourceOrJsonWebKey), unBufferSourceOrJsonWebKey, IsBufferSourceOrJsonWebKey, toBufferSourceOrJsonWebKey
  , BufferSourceOrString(BufferSourceOrString), unBufferSourceOrString, IsBufferSourceOrString, toBufferSourceOrString
  , CSSNumberish(CSSNumberish), unCSSNumberish, IsCSSNumberish, toCSSNumberish
  , CSSNumericValueOrCSSKeywordValue(CSSNumericValueOrCSSKeywordValue), unCSSNumericValueOrCSSKeywordValue, IsCSSNumericValueOrCSSKeywordValue, toCSSNumericValueOrCSSKeywordValue
  , CSSPerspectiveValue(CSSPerspectiveValue), unCSSPerspectiveValue, IsCSSPerspectiveValue, toCSSPerspectiveValue
  , CSSStyleValueOrString(CSSStyleValueOrString), unCSSStyleValueOrString, IsCSSStyleValueOrString, toCSSStyleValueOrString
  , CSSUnparsedSegment(CSSUnparsedSegment), unCSSUnparsedSegment, IsCSSUnparsedSegment, toCSSUnparsedSegment
  , CanvasImageSource(CanvasImageSource), unCanvasImageSource, IsCanvasImageSource, toCanvasImageSource
  , ClientOrServiceWorkerOrMessagePort(ClientOrServiceWorkerOrMessagePort), unClientOrServiceWorkerOrMessagePort, IsClientOrServiceWorkerOrMessagePort, toClientOrServiceWorkerOrMessagePort
  , ClientOrUndefined(ClientOrUndefined), unClientOrUndefined, IsClientOrUndefined, toClientOrUndefined
  , ConstrainBoolean(ConstrainBoolean), unConstrainBoolean, IsConstrainBoolean, toConstrainBoolean
  , ConstrainBooleanOrDOMString(ConstrainBooleanOrDOMString), unConstrainBooleanOrDOMString, IsConstrainBooleanOrDOMString, toConstrainBooleanOrDOMString
  , ConstrainDOMString(ConstrainDOMString), unConstrainDOMString, IsConstrainDOMString, toConstrainDOMString
  , ConstrainDouble(ConstrainDouble), unConstrainDouble, IsConstrainDouble, toConstrainDouble
  , ConstrainPoint2D(ConstrainPoint2D), unConstrainPoint2D, IsConstrainPoint2D, toConstrainPoint2D
  , ConstrainULong(ConstrainULong), unConstrainULong, IsConstrainULong, toConstrainULong
  , CryptoKeyOrCryptoKeyPair(CryptoKeyOrCryptoKeyPair), unCryptoKeyOrCryptoKeyPair, IsCryptoKeyOrCryptoKeyPair, toCryptoKeyOrCryptoKeyPair
  , CustomElementConstructorOrUndefined(CustomElementConstructorOrUndefined), unCustomElementConstructorOrUndefined, IsCustomElementConstructorOrUndefined, toCustomElementConstructorOrUndefined
  , DigitalCredentialProtocol(DigitalCredentialProtocol), unDigitalCredentialProtocol, IsDigitalCredentialProtocol, toDigitalCredentialProtocol
  , DocumentOrXMLHttpRequestBodyInit(DocumentOrXMLHttpRequestBodyInit), unDocumentOrXMLHttpRequestBodyInit, IsDocumentOrXMLHttpRequestBodyInit, toDocumentOrXMLHttpRequestBodyInit
  , DoubleOrCSSNumericValueOrString(DoubleOrCSSNumericValueOrString), unDoubleOrCSSNumericValueOrString, IsDoubleOrCSSNumericValueOrString, toDoubleOrCSSNumericValueOrString
  , DoubleOrDOMPointInit(DoubleOrDOMPointInit), unDoubleOrDOMPointInit, IsDoubleOrDOMPointInit, toDoubleOrDOMPointInit
  , DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit(DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit), unDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit, IsDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit, toDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
  , DoubleOrKeyframeAnimationOptions(DoubleOrKeyframeAnimationOptions), unDoubleOrKeyframeAnimationOptions, IsDoubleOrKeyframeAnimationOptions, toDoubleOrKeyframeAnimationOptions
  , DoubleOrKeyframeEffectOptions(DoubleOrKeyframeEffectOptions), unDoubleOrKeyframeEffectOptions, IsDoubleOrKeyframeEffectOptions, toDoubleOrKeyframeEffectOptions
  , DoubleOrSequenceDouble(DoubleOrSequenceDouble), unDoubleOrSequenceDouble, IsDoubleOrSequenceDouble, toDoubleOrSequenceDouble
  , DoubleOrString(DoubleOrString), unDoubleOrString, IsDoubleOrString, toDoubleOrString
  , ElementOrDocument(ElementOrDocument), unElementOrDocument, IsElementOrDocument, toElementOrDocument
  , ElementOrProcessingInstruction(ElementOrProcessingInstruction), unElementOrProcessingInstruction, IsElementOrProcessingInstruction, toElementOrProcessingInstruction
  , ElementOrText(ElementOrText), unElementOrText, IsElementOrText, toElementOrText
  , EventListenerOptionsOrBool(EventListenerOptionsOrBool), unEventListenerOptionsOrBool, IsEventListenerOptionsOrBool, toEventListenerOptionsOrBool
  , EventOrUndefined(EventOrUndefined), unEventOrUndefined, IsEventOrUndefined, toEventOrUndefined
  , FileOrStringOrFormData(FileOrStringOrFormData), unFileOrStringOrFormData, IsFileOrStringOrFormData, toFileOrStringOrFormData
  , FileSystemWriteChunkType(FileSystemWriteChunkType), unFileSystemWriteChunkType, IsFileSystemWriteChunkType, toFileSystemWriteChunkType
  , Float32List(Float32List), unFloat32List, IsFloat32List, toFloat32List
  , FormDataEntryValue(FormDataEntryValue), unFormDataEntryValue, IsFormDataEntryValue, toFormDataEntryValue
  , GPUBindingResource(GPUBindingResource), unGPUBindingResource, IsGPUBindingResource, toGPUBindingResource
  , GPUColor(GPUColor), unGPUColor, IsGPUColor, toGPUColor
  , GPUCopyExternalImageSource(GPUCopyExternalImageSource), unGPUCopyExternalImageSource, IsGPUCopyExternalImageSource, toGPUCopyExternalImageSource
  , GPUExtent3D(GPUExtent3D), unGPUExtent3D, IsGPUExtent3D, toGPUExtent3D
  , GPUOrigin2D(GPUOrigin2D), unGPUOrigin2D, IsGPUOrigin2D, toGPUOrigin2D
  , GPUOrigin3D(GPUOrigin3D), unGPUOrigin3D, IsGPUOrigin3D, toGPUOrigin3D
  , GPUPipelineLayoutOrGPUAutoLayoutMode(GPUPipelineLayoutOrGPUAutoLayoutMode), unGPUPipelineLayoutOrGPUAutoLayoutMode, IsGPUPipelineLayoutOrGPUAutoLayoutMode, toGPUPipelineLayoutOrGPUAutoLayoutMode
  , GPUSize64OrUndefined(GPUSize64OrUndefined), unGPUSize64OrUndefined, IsGPUSize64OrUndefined, toGPUSize64OrUndefined
  , GPUTextureOrGPUTextureView(GPUTextureOrGPUTextureView), unGPUTextureOrGPUTextureView, IsGPUTextureOrGPUTextureView, toGPUTextureOrGPUTextureView
  , HTMLCanvasElementOrOffscreenCanvas(HTMLCanvasElementOrOffscreenCanvas), unHTMLCanvasElementOrOffscreenCanvas, IsHTMLCanvasElementOrOffscreenCanvas, toHTMLCanvasElementOrOffscreenCanvas
  , HTMLCollectionOrElement(HTMLCollectionOrElement), unHTMLCollectionOrElement, IsHTMLCollectionOrElement, toHTMLCollectionOrElement
  , HTMLElementOrInt(HTMLElementOrInt), unHTMLElementOrInt, IsHTMLElementOrInt, toHTMLElementOrInt
  , HTMLOptionElementOrHTMLOptGroupElement(HTMLOptionElementOrHTMLOptGroupElement), unHTMLOptionElementOrHTMLOptGroupElement, IsHTMLOptionElementOrHTMLOptGroupElement, toHTMLOptionElementOrHTMLOptGroupElement
  , HTMLOrSVGScriptElement(HTMLOrSVGScriptElement), unHTMLOrSVGScriptElement, IsHTMLOrSVGScriptElement, toHTMLOrSVGScriptElement
  , HTMLVideoElementOrVideoFrame(HTMLVideoElementOrVideoFrame), unHTMLVideoElementOrVideoFrame, IsHTMLVideoElementOrVideoFrame, toHTMLVideoElementOrVideoFrame
  , HeadersInit(HeadersInit), unHeadersInit, IsHeadersInit, toHeadersInit
  , IDBObjectStoreOrIDBIndex(IDBObjectStoreOrIDBIndex), unIDBObjectStoreOrIDBIndex, IsIDBObjectStoreOrIDBIndex, toIDBObjectStoreOrIDBIndex
  , IDBObjectStoreOrIDBIndexOrIDBCursor(IDBObjectStoreOrIDBIndexOrIDBCursor), unIDBObjectStoreOrIDBIndexOrIDBCursor, IsIDBObjectStoreOrIDBIndexOrIDBCursor, toIDBObjectStoreOrIDBIndexOrIDBCursor
  , ImageBufferSource(ImageBufferSource), unImageBufferSource, IsImageBufferSource, toImageBufferSource
  , ImageDataArray(ImageDataArray), unImageDataArray, IsImageDataArray, toImageDataArray
  , Int32ArrayOrSequenceGLint(Int32ArrayOrSequenceGLint), unInt32ArrayOrSequenceGLint, IsInt32ArrayOrSequenceGLint, toInt32ArrayOrSequenceGLint
  , Int32ArrayOrSequenceGLsizei(Int32ArrayOrSequenceGLsizei), unInt32ArrayOrSequenceGLsizei, IsInt32ArrayOrSequenceGLsizei, toInt32ArrayOrSequenceGLsizei
  , Int32List(Int32List), unInt32List, IsInt32List, toInt32List
  , LineAndPositionSetting(LineAndPositionSetting), unLineAndPositionSetting, IsLineAndPositionSetting, toLineAndPositionSetting
  , MediaKeyStatusOrUndefined(MediaKeyStatusOrUndefined), unMediaKeyStatusOrUndefined, IsMediaKeyStatusOrUndefined, toMediaKeyStatusOrUndefined
  , MediaListOrString(MediaListOrString), unMediaListOrString, IsMediaListOrString, toMediaListOrString
  , MediaProvider(MediaProvider), unMediaProvider, IsMediaProvider, toMediaProvider
  , MediaStreamTrackOrHandle(MediaStreamTrackOrHandle), unMediaStreamTrackOrHandle, IsMediaStreamTrackOrHandle, toMediaStreamTrackOrHandle
  , MediaStreamTrackOrString(MediaStreamTrackOrString), unMediaStreamTrackOrString, IsMediaStreamTrackOrString, toMediaStreamTrackOrString
  , MessageEventSource(MessageEventSource), unMessageEventSource, IsMessageEventSource, toMessageEventSource
  , NodeOrString(NodeOrString), unNodeOrString, IsNodeOrString, toNodeOrString
  , OffscreenRenderingContext(OffscreenRenderingContext), unOffscreenRenderingContext, IsOffscreenRenderingContext, toOffscreenRenderingContext
  , ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions(ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions), unParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions, IsParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions, toParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  , PasswordCredentialInit(PasswordCredentialInit), unPasswordCredentialInit, IsPasswordCredentialInit, toPasswordCredentialInit
  , Path2DOrString(Path2DOrString), unPath2DOrString, IsPath2DOrString, toPath2DOrString
  , PushMessageDataInit(PushMessageDataInit), unPushMessageDataInit, IsPushMessageDataInit, toPushMessageDataInit
  , RTCRtpReceiverTransform(RTCRtpReceiverTransform), unRTCRtpReceiverTransform, IsRTCRtpReceiverTransform, toRTCRtpReceiverTransform
  , RTCRtpSenderTransform(RTCRtpSenderTransform), unRTCRtpSenderTransform, IsRTCRtpSenderTransform, toRTCRtpSenderTransform
  , RadioNodeListOrElement(RadioNodeListOrElement), unRadioNodeListOrElement, IsRadioNodeListOrElement, toRadioNodeListOrElement
  , ReadableStreamReader(ReadableStreamReader), unReadableStreamReader, IsReadableStreamReader, toReadableStreamReader
  , RenderingContext(RenderingContext), unRenderingContext, IsRenderingContext, toRenderingContext
  , RequestInfo(RequestInfo), unRequestInfo, IsRequestInfo, toRequestInfo
  , ResponseOrUndefined(ResponseOrUndefined), unResponseOrUndefined, IsResponseOrUndefined, toResponseOrUndefined
  , RouterRuleOrSequenceRouterRule(RouterRuleOrSequenceRouterRule), unRouterRuleOrSequenceRouterRule, IsRouterRuleOrSequenceRouterRule, toRouterRuleOrSequenceRouterRule
  , RouterSource(RouterSource), unRouterSource, IsRouterSource, toRouterSource
  , SanitizerAttribute(SanitizerAttribute), unSanitizerAttribute, IsSanitizerAttribute, toSanitizerAttribute
  , SanitizerConfigOrSanitizerPresets(SanitizerConfigOrSanitizerPresets), unSanitizerConfigOrSanitizerPresets, IsSanitizerConfigOrSanitizerPresets, toSanitizerConfigOrSanitizerPresets
  , SanitizerElement(SanitizerElement), unSanitizerElement, IsSanitizerElement, toSanitizerElement
  , SanitizerElementWithAttributes(SanitizerElementWithAttributes), unSanitizerElementWithAttributes, IsSanitizerElementWithAttributes, toSanitizerElementWithAttributes
  , SanitizerOrSanitizerConfigOrSanitizerPresets(SanitizerOrSanitizerConfigOrSanitizerPresets), unSanitizerOrSanitizerConfigOrSanitizerPresets, IsSanitizerOrSanitizerConfigOrSanitizerPresets, toSanitizerOrSanitizerConfigOrSanitizerPresets
  , SanitizerPI(SanitizerPI), unSanitizerPI, IsSanitizerPI, toSanitizerPI
  , SequenceSequenceStringOrRecordStringStringOrString(SequenceSequenceStringOrRecordStringStringOrString), unSequenceSequenceStringOrRecordStringStringOrString, IsSequenceSequenceStringOrRecordStringStringOrString, toSequenceSequenceStringOrRecordStringStringOrString
  , ServiceWorkerRegistrationOrUndefined(ServiceWorkerRegistrationOrUndefined), unServiceWorkerRegistrationOrUndefined, IsServiceWorkerRegistrationOrUndefined, toServiceWorkerRegistrationOrUndefined
  , SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions(SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions), unSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions, IsSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions, toSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  , StringOrArrayBuffer(StringOrArrayBuffer), unStringOrArrayBuffer, IsStringOrArrayBuffer, toStringOrArrayBuffer
  , StringOrAudioSinkOptions(StringOrAudioSinkOptions), unStringOrAudioSinkOptions, IsStringOrAudioSinkOptions, toStringOrAudioSinkOptions
  , StringOrBufferSource(StringOrBufferSource), unStringOrBufferSource, IsStringOrBufferSource, toStringOrBufferSource
  , StringOrCanvasGradientOrCanvasPattern(StringOrCanvasGradientOrCanvasPattern), unStringOrCanvasGradientOrCanvasPattern, IsStringOrCanvasGradientOrCanvasPattern, toStringOrCanvasGradientOrCanvasPattern
  , StringOrDOMHighResTimeStamp(StringOrDOMHighResTimeStamp), unStringOrDOMHighResTimeStamp, IsStringOrDOMHighResTimeStamp, toStringOrDOMHighResTimeStamp
  , StringOrElementCreationOptions(StringOrElementCreationOptions), unStringOrElementCreationOptions, IsStringOrElementCreationOptions, toStringOrElementCreationOptions
  , StringOrPerformanceMeasureOptions(StringOrPerformanceMeasureOptions), unStringOrPerformanceMeasureOptions, IsStringOrPerformanceMeasureOptions, toStringOrPerformanceMeasureOptions
  , StringOrSequenceCSSNumericValueOrCSSKeywordValue(StringOrSequenceCSSNumericValueOrCSSKeywordValue), unStringOrSequenceCSSNumericValueOrCSSKeywordValue, IsStringOrSequenceCSSNumericValueOrCSSKeywordValue, toStringOrSequenceCSSNumericValueOrCSSKeywordValue
  , StringOrSequenceDouble(StringOrSequenceDouble), unStringOrSequenceDouble, IsStringOrSequenceDouble, toStringOrSequenceDouble
  , StringOrSequenceString(StringOrSequenceString), unStringOrSequenceString, IsStringOrSequenceString, toStringOrSequenceString
  , StringOrSharedWorkerOptions(StringOrSharedWorkerOptions), unStringOrSharedWorkerOptions, IsStringOrSharedWorkerOptions, toStringOrSharedWorkerOptions
  , StringOrTrustedScriptURL(StringOrTrustedScriptURL), unStringOrTrustedScriptURL, IsStringOrTrustedScriptURL, toStringOrTrustedScriptURL
  , StringOrUndefined(StringOrUndefined), unStringOrUndefined, IsStringOrUndefined, toStringOrUndefined
  , TaskPriorityOrTaskSignal(TaskPriorityOrTaskSignal), unTaskPriorityOrTaskSignal, IsTaskPriorityOrTaskSignal, toTaskPriorityOrTaskSignal
  , TexImageSource(TexImageSource), unTexImageSource, IsTexImageSource, toTexImageSource
  , TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString(TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString), unTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString, IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString, toTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
  , TimerHandler(TimerHandler), unTimerHandler, IsTimerHandler, toTimerHandler
  , TogglePopoverOptionsOrBool(TogglePopoverOptionsOrBool), unTogglePopoverOptionsOrBool, IsTogglePopoverOptionsOrBool, toTogglePopoverOptionsOrBool
  , TrustedHTMLOrString(TrustedHTMLOrString), unTrustedHTMLOrString, IsTrustedHTMLOrString, toTrustedHTMLOrString
  , TrustedScriptOrString(TrustedScriptOrString), unTrustedScriptOrString, IsTrustedScriptOrString, toTrustedScriptOrString
  , TrustedScriptURLOrString(TrustedScriptURLOrString), unTrustedScriptURLOrString, IsTrustedScriptURLOrString, toTrustedScriptURLOrString
  , TrustedTypeOrString(TrustedTypeOrString), unTrustedTypeOrString, IsTrustedTypeOrString, toTrustedTypeOrString
  , URLPatternCompatible(URLPatternCompatible), unURLPatternCompatible, IsURLPatternCompatible, toURLPatternCompatible
  , URLPatternInput(URLPatternInput), unURLPatternInput, IsURLPatternInput, toURLPatternInput
  , Uint32List(Uint32List), unUint32List, IsUint32List, toUint32List
  , UndefinedOrCSSStyleValue(UndefinedOrCSSStyleValue), unUndefinedOrCSSStyleValue, IsUndefinedOrCSSStyleValue, toUndefinedOrCSSStyleValue
  , VibratePattern(VibratePattern), unVibratePattern, IsVibratePattern, toVibratePattern
  , VideoTrackOrAudioTrackOrTextTrack(VideoTrackOrAudioTrackOrTextTrack), unVideoTrackOrAudioTrackOrTextTrack, IsVideoTrackOrAudioTrackOrTextTrack, toVideoTrackOrAudioTrackOrTextTrack
  , ViewTransitionUpdateCallbackOrStartViewTransitionOptions(ViewTransitionUpdateCallbackOrStartViewTransitionOptions), unViewTransitionUpdateCallbackOrStartViewTransitionOptions, IsViewTransitionUpdateCallbackOrStartViewTransitionOptions, toViewTransitionUpdateCallbackOrStartViewTransitionOptions
  , WorkerOrWorkerAndParameters(WorkerOrWorkerAndParameters), unWorkerOrWorkerAndParameters, IsWorkerOrWorkerAndParameters, toWorkerOrWorkerAndParameters
  , AudioDataOutputCallback(..), noAudioDataOutputCallback
  , AudioWorkletProcessorConstructor(..), noAudioWorkletProcessorConstructor
  , BlobCallback(..), noBlobCallback
  , CreateHTMLCallback(..), noCreateHTMLCallback
  , CreateParserOptionsCallback(..), noCreateParserOptionsCallback
  , CreateScriptCallback(..), noCreateScriptCallback
  , CreateScriptURLCallback(..), noCreateScriptURLCallback
  , CustomElementConstructor(..), noCustomElementConstructor
  , DecodeErrorCallback(..), noDecodeErrorCallback
  , DecodeSuccessCallback(..), noDecodeSuccessCallback
  , EncodedAudioChunkOutputCallback(..), noEncodedAudioChunkOutputCallback
  , EncodedVideoChunkOutputCallback(..), noEncodedVideoChunkOutputCallback
  , ErrorCallback(..), noErrorCallback
  , FileCallback(..), noFileCallback
  , FileSystemEntriesCallback(..), noFileSystemEntriesCallback
  , FileSystemEntryCallback(..), noFileSystemEntryCallback
  , FrameRequestCallback(..), noFrameRequestCallback
  , FunctionStringCallback(..), noFunctionStringCallback
  , IdleRequestCallback(..), noIdleRequestCallback
  , IntersectionObserverCallback(..), noIntersectionObserverCallback
  , LockGrantedCallback(..), noLockGrantedCallback
  , MediaSessionActionHandler(..), noMediaSessionActionHandler
  , MutationCallback(..), noMutationCallback
  , NavigationInterceptHandler(..), noNavigationInterceptHandler
  , NavigationPrecommitHandler(..), noNavigationPrecommitHandler
  , NodeFilter(..), noNodeFilter
  , NotificationPermissionCallback(..), noNotificationPermissionCallback
  , PerformanceObserverCallback(..), noPerformanceObserverCallback
  , PositionCallback(..), noPositionCallback
  , PositionErrorCallback(..), noPositionErrorCallback
  , QueuingStrategySize(..), noQueuingStrategySize
  , RTCPeerConnectionErrorCallback(..), noRTCPeerConnectionErrorCallback
  , RTCSessionDescriptionCallback(..), noRTCSessionDescriptionCallback
  , RemotePlaybackAvailabilityCallback(..), noRemotePlaybackAvailabilityCallback
  , ReportingObserverCallback(..), noReportingObserverCallback
  , ResizeObserverCallback(..), noResizeObserverCallback
  , SchedulerPostTaskCallback(..), noSchedulerPostTaskCallback
  , VideoFrameOutputCallback(..), noVideoFrameOutputCallback
  , VideoFrameRequestCallback(..), noVideoFrameRequestCallback
  , ViewTransitionUpdateCallback(..), noViewTransitionUpdateCallback
  , VoidFunction(..), noVoidFunction
  , WebCodecsErrorCallback(..), noWebCodecsErrorCallback
  , XPathNSResolver(..), noXPathNSResolver
  , ANGLE_instanced_arrays(ANGLE_instanced_arrays), unANGLE_instanced_arrays, noANGLE_instanced_arrays, gTypeANGLE_instanced_arrays
  , ARIAMixin(ARIAMixin), unARIAMixin, IsARIAMixin, toARIAMixin, noARIAMixin, gTypeARIAMixin
  , ARIANotifyMixin(ARIANotifyMixin), unARIANotifyMixin, IsARIANotifyMixin, toARIANotifyMixin, noARIANotifyMixin, gTypeARIANotifyMixin
  , AacEncoderConfig(AacEncoderConfig), unAacEncoderConfig, noAacEncoderConfig, gTypeAacEncoderConfig
  , AbortController(AbortController), unAbortController, IsAbortController, toAbortController, noAbortController, gTypeAbortController
  , AbortSignal(AbortSignal), unAbortSignal, IsAbortSignal, toAbortSignal, noAbortSignal, gTypeAbortSignal
  , AbstractRange(AbstractRange), unAbstractRange, IsAbstractRange, toAbstractRange, noAbstractRange, gTypeAbstractRange
  , AbstractWorker(AbstractWorker), unAbstractWorker, IsAbstractWorker, toAbstractWorker, noAbstractWorker, gTypeAbstractWorker
  , AddEventListenerOptions(AddEventListenerOptions), unAddEventListenerOptions, noAddEventListenerOptions, gTypeAddEventListenerOptions
  , AddressErrors(AddressErrors), unAddressErrors, noAddressErrors, gTypeAddressErrors
  , AllAcceptedCredentialsOptions(AllAcceptedCredentialsOptions), unAllAcceptedCredentialsOptions, noAllAcceptedCredentialsOptions, gTypeAllAcceptedCredentialsOptions
  , AnalyserNode(AnalyserNode), unAnalyserNode, noAnalyserNode, gTypeAnalyserNode
  , AnalyserOptions(AnalyserOptions), unAnalyserOptions, noAnalyserOptions, gTypeAnalyserOptions
  , Animatable(Animatable), unAnimatable, IsAnimatable, toAnimatable, noAnimatable, gTypeAnimatable
  , Animation(Animation), unAnimation, IsAnimation, toAnimation, noAnimation, gTypeAnimation
  , AnimationEffect(AnimationEffect), unAnimationEffect, IsAnimationEffect, toAnimationEffect, noAnimationEffect, gTypeAnimationEffect
  , AnimationEvent(AnimationEvent), unAnimationEvent, noAnimationEvent, gTypeAnimationEvent
  , AnimationEventInit(AnimationEventInit), unAnimationEventInit, noAnimationEventInit, gTypeAnimationEventInit
  , AnimationFrameProvider(AnimationFrameProvider), unAnimationFrameProvider, IsAnimationFrameProvider, toAnimationFrameProvider, noAnimationFrameProvider, gTypeAnimationFrameProvider
  , AnimationPlaybackEvent(AnimationPlaybackEvent), unAnimationPlaybackEvent, noAnimationPlaybackEvent, gTypeAnimationPlaybackEvent
  , AnimationPlaybackEventInit(AnimationPlaybackEventInit), unAnimationPlaybackEventInit, noAnimationPlaybackEventInit, gTypeAnimationPlaybackEventInit
  , AnimationTimeline(AnimationTimeline), unAnimationTimeline, IsAnimationTimeline, toAnimationTimeline, noAnimationTimeline, gTypeAnimationTimeline
  , AnimationTrigger(AnimationTrigger), unAnimationTrigger, noAnimationTrigger, gTypeAnimationTrigger
  , AriaNotificationOptions(AriaNotificationOptions), unAriaNotificationOptions, noAriaNotificationOptions, gTypeAriaNotificationOptions
  , AssignedNodesOptions(AssignedNodesOptions), unAssignedNodesOptions, noAssignedNodesOptions, gTypeAssignedNodesOptions
  , Attr(Attr), unAttr, noAttr, gTypeAttr
  , AudioBuffer(AudioBuffer), unAudioBuffer, noAudioBuffer, gTypeAudioBuffer
  , AudioBufferOptions(AudioBufferOptions), unAudioBufferOptions, noAudioBufferOptions, gTypeAudioBufferOptions
  , AudioBufferSourceNode(AudioBufferSourceNode), unAudioBufferSourceNode, noAudioBufferSourceNode, gTypeAudioBufferSourceNode
  , AudioBufferSourceOptions(AudioBufferSourceOptions), unAudioBufferSourceOptions, noAudioBufferSourceOptions, gTypeAudioBufferSourceOptions
  , AudioConfiguration(AudioConfiguration), unAudioConfiguration, noAudioConfiguration, gTypeAudioConfiguration
  , AudioContext(AudioContext), unAudioContext, noAudioContext, gTypeAudioContext
  , AudioContextOptions(AudioContextOptions), unAudioContextOptions, noAudioContextOptions, gTypeAudioContextOptions
  , AudioData(AudioData), unAudioData, noAudioData, gTypeAudioData
  , AudioDataCopyToOptions(AudioDataCopyToOptions), unAudioDataCopyToOptions, noAudioDataCopyToOptions, gTypeAudioDataCopyToOptions
  , AudioDataInit(AudioDataInit), unAudioDataInit, noAudioDataInit, gTypeAudioDataInit
  , AudioDecoder(AudioDecoder), unAudioDecoder, noAudioDecoder, gTypeAudioDecoder
  , AudioDecoderConfig(AudioDecoderConfig), unAudioDecoderConfig, noAudioDecoderConfig, gTypeAudioDecoderConfig
  , AudioDecoderInit(AudioDecoderInit), unAudioDecoderInit, noAudioDecoderInit, gTypeAudioDecoderInit
  , AudioDecoderSupport(AudioDecoderSupport), unAudioDecoderSupport, noAudioDecoderSupport, gTypeAudioDecoderSupport
  , AudioDestinationNode(AudioDestinationNode), unAudioDestinationNode, noAudioDestinationNode, gTypeAudioDestinationNode
  , AudioEncoder(AudioEncoder), unAudioEncoder, noAudioEncoder, gTypeAudioEncoder
  , AudioEncoderConfig(AudioEncoderConfig), unAudioEncoderConfig, noAudioEncoderConfig, gTypeAudioEncoderConfig
  , AudioEncoderInit(AudioEncoderInit), unAudioEncoderInit, noAudioEncoderInit, gTypeAudioEncoderInit
  , AudioEncoderSupport(AudioEncoderSupport), unAudioEncoderSupport, noAudioEncoderSupport, gTypeAudioEncoderSupport
  , AudioListener(AudioListener), unAudioListener, noAudioListener, gTypeAudioListener
  , AudioNode(AudioNode), unAudioNode, IsAudioNode, toAudioNode, noAudioNode, gTypeAudioNode
  , AudioNodeOptions(AudioNodeOptions), unAudioNodeOptions, IsAudioNodeOptions, toAudioNodeOptions, noAudioNodeOptions, gTypeAudioNodeOptions
  , AudioParam(AudioParam), unAudioParam, noAudioParam, gTypeAudioParam
  , AudioParamMap(AudioParamMap), unAudioParamMap, noAudioParamMap, gTypeAudioParamMap
  , AudioProcessingEvent(AudioProcessingEvent), unAudioProcessingEvent, noAudioProcessingEvent, gTypeAudioProcessingEvent
  , AudioProcessingEventInit(AudioProcessingEventInit), unAudioProcessingEventInit, noAudioProcessingEventInit, gTypeAudioProcessingEventInit
  , AudioScheduledSourceNode(AudioScheduledSourceNode), unAudioScheduledSourceNode, IsAudioScheduledSourceNode, toAudioScheduledSourceNode, noAudioScheduledSourceNode, gTypeAudioScheduledSourceNode
  , AudioSinkOptions(AudioSinkOptions), unAudioSinkOptions, noAudioSinkOptions, gTypeAudioSinkOptions
  , AudioTimestamp(AudioTimestamp), unAudioTimestamp, noAudioTimestamp, gTypeAudioTimestamp
  , AudioTrack(AudioTrack), unAudioTrack, noAudioTrack, gTypeAudioTrack
  , AudioTrackList(AudioTrackList), unAudioTrackList, noAudioTrackList, gTypeAudioTrackList
  , AudioWorklet(AudioWorklet), unAudioWorklet, noAudioWorklet, gTypeAudioWorklet
  , AudioWorkletGlobalScope(AudioWorkletGlobalScope), unAudioWorkletGlobalScope, noAudioWorkletGlobalScope, gTypeAudioWorkletGlobalScope
  , AudioWorkletNode(AudioWorkletNode), unAudioWorkletNode, noAudioWorkletNode, gTypeAudioWorkletNode
  , AudioWorkletNodeOptions(AudioWorkletNodeOptions), unAudioWorkletNodeOptions, noAudioWorkletNodeOptions, gTypeAudioWorkletNodeOptions
  , AudioWorkletProcessor(AudioWorkletProcessor), unAudioWorkletProcessor, noAudioWorkletProcessor, gTypeAudioWorkletProcessor
  , AuthenticationExtensionsClientInputs(AuthenticationExtensionsClientInputs), unAuthenticationExtensionsClientInputs, noAuthenticationExtensionsClientInputs, gTypeAuthenticationExtensionsClientInputs
  , AuthenticationExtensionsClientInputsJSON(AuthenticationExtensionsClientInputsJSON), unAuthenticationExtensionsClientInputsJSON, noAuthenticationExtensionsClientInputsJSON, gTypeAuthenticationExtensionsClientInputsJSON
  , AuthenticationExtensionsClientOutputs(AuthenticationExtensionsClientOutputs), unAuthenticationExtensionsClientOutputs, noAuthenticationExtensionsClientOutputs, gTypeAuthenticationExtensionsClientOutputs
  , AuthenticationExtensionsLargeBlobInputs(AuthenticationExtensionsLargeBlobInputs), unAuthenticationExtensionsLargeBlobInputs, noAuthenticationExtensionsLargeBlobInputs, gTypeAuthenticationExtensionsLargeBlobInputs
  , AuthenticationExtensionsLargeBlobInputsJSON(AuthenticationExtensionsLargeBlobInputsJSON), unAuthenticationExtensionsLargeBlobInputsJSON, noAuthenticationExtensionsLargeBlobInputsJSON, gTypeAuthenticationExtensionsLargeBlobInputsJSON
  , AuthenticationExtensionsLargeBlobOutputs(AuthenticationExtensionsLargeBlobOutputs), unAuthenticationExtensionsLargeBlobOutputs, noAuthenticationExtensionsLargeBlobOutputs, gTypeAuthenticationExtensionsLargeBlobOutputs
  , AuthenticationExtensionsPRFInputs(AuthenticationExtensionsPRFInputs), unAuthenticationExtensionsPRFInputs, noAuthenticationExtensionsPRFInputs, gTypeAuthenticationExtensionsPRFInputs
  , AuthenticationExtensionsPRFInputsJSON(AuthenticationExtensionsPRFInputsJSON), unAuthenticationExtensionsPRFInputsJSON, noAuthenticationExtensionsPRFInputsJSON, gTypeAuthenticationExtensionsPRFInputsJSON
  , AuthenticationExtensionsPRFOutputs(AuthenticationExtensionsPRFOutputs), unAuthenticationExtensionsPRFOutputs, noAuthenticationExtensionsPRFOutputs, gTypeAuthenticationExtensionsPRFOutputs
  , AuthenticationExtensionsPRFValues(AuthenticationExtensionsPRFValues), unAuthenticationExtensionsPRFValues, noAuthenticationExtensionsPRFValues, gTypeAuthenticationExtensionsPRFValues
  , AuthenticationExtensionsPRFValuesJSON(AuthenticationExtensionsPRFValuesJSON), unAuthenticationExtensionsPRFValuesJSON, noAuthenticationExtensionsPRFValuesJSON, gTypeAuthenticationExtensionsPRFValuesJSON
  , AuthenticationExtensionsPaymentInputs(AuthenticationExtensionsPaymentInputs), unAuthenticationExtensionsPaymentInputs, noAuthenticationExtensionsPaymentInputs, gTypeAuthenticationExtensionsPaymentInputs
  , AuthenticationExtensionsPaymentOutputs(AuthenticationExtensionsPaymentOutputs), unAuthenticationExtensionsPaymentOutputs, noAuthenticationExtensionsPaymentOutputs, gTypeAuthenticationExtensionsPaymentOutputs
  , AuthenticatorAssertionResponse(AuthenticatorAssertionResponse), unAuthenticatorAssertionResponse, noAuthenticatorAssertionResponse, gTypeAuthenticatorAssertionResponse
  , AuthenticatorAttestationResponse(AuthenticatorAttestationResponse), unAuthenticatorAttestationResponse, noAuthenticatorAttestationResponse, gTypeAuthenticatorAttestationResponse
  , AuthenticatorResponse(AuthenticatorResponse), unAuthenticatorResponse, IsAuthenticatorResponse, toAuthenticatorResponse, noAuthenticatorResponse, gTypeAuthenticatorResponse
  , AuthenticatorSelectionCriteria(AuthenticatorSelectionCriteria), unAuthenticatorSelectionCriteria, noAuthenticatorSelectionCriteria, gTypeAuthenticatorSelectionCriteria
  , AutofillEvent(AutofillEvent), unAutofillEvent, noAutofillEvent, gTypeAutofillEvent
  , AvcEncoderConfig(AvcEncoderConfig), unAvcEncoderConfig, noAvcEncoderConfig, gTypeAvcEncoderConfig
  , BackgroundBlur(BackgroundBlur), unBackgroundBlur, noBackgroundBlur, gTypeBackgroundBlur
  , BarProp(BarProp), unBarProp, noBarProp, gTypeBarProp
  , BaseAudioContext(BaseAudioContext), unBaseAudioContext, IsBaseAudioContext, toBaseAudioContext, noBaseAudioContext, gTypeBaseAudioContext
  , BeforeUnloadEvent(BeforeUnloadEvent), unBeforeUnloadEvent, noBeforeUnloadEvent, gTypeBeforeUnloadEvent
  , BigInt64Array(BigInt64Array), unBigInt64Array, noBigInt64Array, gTypeBigInt64Array
  , BigUint64Array(BigUint64Array), unBigUint64Array, noBigUint64Array, gTypeBigUint64Array
  , BiquadFilterNode(BiquadFilterNode), unBiquadFilterNode, noBiquadFilterNode, gTypeBiquadFilterNode
  , BiquadFilterOptions(BiquadFilterOptions), unBiquadFilterOptions, noBiquadFilterOptions, gTypeBiquadFilterOptions
  , Blob(Blob), unBlob, IsBlob, toBlob, noBlob, gTypeBlob
  , BlobEvent(BlobEvent), unBlobEvent, noBlobEvent, gTypeBlobEvent
  , BlobEventInit(BlobEventInit), unBlobEventInit, noBlobEventInit, gTypeBlobEventInit
  , BlobPropertyBag(BlobPropertyBag), unBlobPropertyBag, IsBlobPropertyBag, toBlobPropertyBag, noBlobPropertyBag, gTypeBlobPropertyBag
  , Body(Body), unBody, IsBody, toBody, noBody, gTypeBody
  , BroadcastChannel(BroadcastChannel), unBroadcastChannel, noBroadcastChannel, gTypeBroadcastChannel
  , BrowserBoundSignature(BrowserBoundSignature), unBrowserBoundSignature, noBrowserBoundSignature, gTypeBrowserBoundSignature
  , ByteLengthQueuingStrategy(ByteLengthQueuingStrategy), unByteLengthQueuingStrategy, noByteLengthQueuingStrategy, gTypeByteLengthQueuingStrategy
  , CDATASection(CDATASection), unCDATASection, noCDATASection, gTypeCDATASection
  , CSSAnimation(CSSAnimation), unCSSAnimation, noCSSAnimation, gTypeCSSAnimation
  , CSSConditionRule(CSSConditionRule), unCSSConditionRule, IsCSSConditionRule, toCSSConditionRule, noCSSConditionRule, gTypeCSSConditionRule
  , CSSContainerCondition(CSSContainerCondition), unCSSContainerCondition, noCSSContainerCondition, gTypeCSSContainerCondition
  , CSSContainerRule(CSSContainerRule), unCSSContainerRule, noCSSContainerRule, gTypeCSSContainerRule
  , CSSCounterStyleRule(CSSCounterStyleRule), unCSSCounterStyleRule, noCSSCounterStyleRule, gTypeCSSCounterStyleRule
  , CSSFontFaceDescriptors(CSSFontFaceDescriptors), unCSSFontFaceDescriptors, noCSSFontFaceDescriptors, gTypeCSSFontFaceDescriptors
  , CSSFontFaceRule(CSSFontFaceRule), unCSSFontFaceRule, noCSSFontFaceRule, gTypeCSSFontFaceRule
  , CSSFontFeatureValuesRule(CSSFontFeatureValuesRule), unCSSFontFeatureValuesRule, noCSSFontFeatureValuesRule, gTypeCSSFontFeatureValuesRule
  , CSSFontPaletteValuesRule(CSSFontPaletteValuesRule), unCSSFontPaletteValuesRule, noCSSFontPaletteValuesRule, gTypeCSSFontPaletteValuesRule
  , CSSGroupingRule(CSSGroupingRule), unCSSGroupingRule, IsCSSGroupingRule, toCSSGroupingRule, noCSSGroupingRule, gTypeCSSGroupingRule
  , CSSImageValue(CSSImageValue), unCSSImageValue, noCSSImageValue, gTypeCSSImageValue
  , CSSImportRule(CSSImportRule), unCSSImportRule, noCSSImportRule, gTypeCSSImportRule
  , CSSKeyframeRule(CSSKeyframeRule), unCSSKeyframeRule, noCSSKeyframeRule, gTypeCSSKeyframeRule
  , CSSKeyframesRule(CSSKeyframesRule), unCSSKeyframesRule, noCSSKeyframesRule, gTypeCSSKeyframesRule
  , CSSKeywordValue(CSSKeywordValue), unCSSKeywordValue, noCSSKeywordValue, gTypeCSSKeywordValue
  , CSSLayerBlockRule(CSSLayerBlockRule), unCSSLayerBlockRule, noCSSLayerBlockRule, gTypeCSSLayerBlockRule
  , CSSLayerStatementRule(CSSLayerStatementRule), unCSSLayerStatementRule, noCSSLayerStatementRule, gTypeCSSLayerStatementRule
  , CSSMathClamp(CSSMathClamp), unCSSMathClamp, noCSSMathClamp, gTypeCSSMathClamp
  , CSSMathInvert(CSSMathInvert), unCSSMathInvert, noCSSMathInvert, gTypeCSSMathInvert
  , CSSMathMax(CSSMathMax), unCSSMathMax, noCSSMathMax, gTypeCSSMathMax
  , CSSMathMin(CSSMathMin), unCSSMathMin, noCSSMathMin, gTypeCSSMathMin
  , CSSMathNegate(CSSMathNegate), unCSSMathNegate, noCSSMathNegate, gTypeCSSMathNegate
  , CSSMathProduct(CSSMathProduct), unCSSMathProduct, noCSSMathProduct, gTypeCSSMathProduct
  , CSSMathSum(CSSMathSum), unCSSMathSum, noCSSMathSum, gTypeCSSMathSum
  , CSSMathValue(CSSMathValue), unCSSMathValue, IsCSSMathValue, toCSSMathValue, noCSSMathValue, gTypeCSSMathValue
  , CSSMatrixComponent(CSSMatrixComponent), unCSSMatrixComponent, noCSSMatrixComponent, gTypeCSSMatrixComponent
  , CSSMatrixComponentOptions(CSSMatrixComponentOptions), unCSSMatrixComponentOptions, noCSSMatrixComponentOptions, gTypeCSSMatrixComponentOptions
  , CSSMediaRule(CSSMediaRule), unCSSMediaRule, noCSSMediaRule, gTypeCSSMediaRule
  , CSSNamespaceRule(CSSNamespaceRule), unCSSNamespaceRule, noCSSNamespaceRule, gTypeCSSNamespaceRule
  , CSSNestedDeclarations(CSSNestedDeclarations), unCSSNestedDeclarations, noCSSNestedDeclarations, gTypeCSSNestedDeclarations
  , CSSNumericArray(CSSNumericArray), unCSSNumericArray, noCSSNumericArray, gTypeCSSNumericArray
  , CSSNumericType(CSSNumericType), unCSSNumericType, noCSSNumericType, gTypeCSSNumericType
  , CSSNumericValue(CSSNumericValue), unCSSNumericValue, IsCSSNumericValue, toCSSNumericValue, noCSSNumericValue, gTypeCSSNumericValue
  , CSSPageDescriptors(CSSPageDescriptors), unCSSPageDescriptors, noCSSPageDescriptors, gTypeCSSPageDescriptors
  , CSSPageRule(CSSPageRule), unCSSPageRule, noCSSPageRule, gTypeCSSPageRule
  , CSSPerspective(CSSPerspective), unCSSPerspective, noCSSPerspective, gTypeCSSPerspective
  , CSSPositionTryDescriptors(CSSPositionTryDescriptors), unCSSPositionTryDescriptors, noCSSPositionTryDescriptors, gTypeCSSPositionTryDescriptors
  , CSSPositionTryRule(CSSPositionTryRule), unCSSPositionTryRule, noCSSPositionTryRule, gTypeCSSPositionTryRule
  , CSSPropertyRule(CSSPropertyRule), unCSSPropertyRule, noCSSPropertyRule, gTypeCSSPropertyRule
  , CSSRotate(CSSRotate), unCSSRotate, noCSSRotate, gTypeCSSRotate
  , CSSRule(CSSRule), unCSSRule, IsCSSRule, toCSSRule, noCSSRule, gTypeCSSRule
  , CSSRuleList(CSSRuleList), unCSSRuleList, noCSSRuleList, gTypeCSSRuleList
  , CSSScale(CSSScale), unCSSScale, noCSSScale, gTypeCSSScale
  , CSSScopeRule(CSSScopeRule), unCSSScopeRule, noCSSScopeRule, gTypeCSSScopeRule
  , CSSSkew(CSSSkew), unCSSSkew, noCSSSkew, gTypeCSSSkew
  , CSSSkewX(CSSSkewX), unCSSSkewX, noCSSSkewX, gTypeCSSSkewX
  , CSSSkewY(CSSSkewY), unCSSSkewY, noCSSSkewY, gTypeCSSSkewY
  , CSSStartingStyleRule(CSSStartingStyleRule), unCSSStartingStyleRule, noCSSStartingStyleRule, gTypeCSSStartingStyleRule
  , CSSStyleDeclaration(CSSStyleDeclaration), unCSSStyleDeclaration, IsCSSStyleDeclaration, toCSSStyleDeclaration, noCSSStyleDeclaration, gTypeCSSStyleDeclaration
  , CSSStyleProperties(CSSStyleProperties), unCSSStyleProperties, noCSSStyleProperties, gTypeCSSStyleProperties
  , CSSStyleRule(CSSStyleRule), unCSSStyleRule, noCSSStyleRule, gTypeCSSStyleRule
  , CSSStyleSheet(CSSStyleSheet), unCSSStyleSheet, noCSSStyleSheet, gTypeCSSStyleSheet
  , CSSStyleSheetInit(CSSStyleSheetInit), unCSSStyleSheetInit, noCSSStyleSheetInit, gTypeCSSStyleSheetInit
  , CSSStyleValue(CSSStyleValue), unCSSStyleValue, IsCSSStyleValue, toCSSStyleValue, noCSSStyleValue, gTypeCSSStyleValue
  , CSSSupportsRule(CSSSupportsRule), unCSSSupportsRule, noCSSSupportsRule, gTypeCSSSupportsRule
  , CSSTransformComponent(CSSTransformComponent), unCSSTransformComponent, IsCSSTransformComponent, toCSSTransformComponent, noCSSTransformComponent, gTypeCSSTransformComponent
  , CSSTransformValue(CSSTransformValue), unCSSTransformValue, noCSSTransformValue, gTypeCSSTransformValue
  , CSSTransition(CSSTransition), unCSSTransition, noCSSTransition, gTypeCSSTransition
  , CSSTranslate(CSSTranslate), unCSSTranslate, noCSSTranslate, gTypeCSSTranslate
  , CSSUnitValue(CSSUnitValue), unCSSUnitValue, noCSSUnitValue, gTypeCSSUnitValue
  , CSSUnparsedValue(CSSUnparsedValue), unCSSUnparsedValue, noCSSUnparsedValue, gTypeCSSUnparsedValue
  , CSSVariableReferenceValue(CSSVariableReferenceValue), unCSSVariableReferenceValue, noCSSVariableReferenceValue, gTypeCSSVariableReferenceValue
  , CSSViewTransitionRule(CSSViewTransitionRule), unCSSViewTransitionRule, noCSSViewTransitionRule, gTypeCSSViewTransitionRule
  , Cache(Cache), unCache, noCache, gTypeCache
  , CacheQueryOptions(CacheQueryOptions), unCacheQueryOptions, IsCacheQueryOptions, toCacheQueryOptions, noCacheQueryOptions, gTypeCacheQueryOptions
  , CacheStorage(CacheStorage), unCacheStorage, noCacheStorage, gTypeCacheStorage
  , CanvasCaptureMediaStreamTrack(CanvasCaptureMediaStreamTrack), unCanvasCaptureMediaStreamTrack, noCanvasCaptureMediaStreamTrack, gTypeCanvasCaptureMediaStreamTrack
  , CanvasCompositing(CanvasCompositing), unCanvasCompositing, IsCanvasCompositing, toCanvasCompositing, noCanvasCompositing, gTypeCanvasCompositing
  , CanvasDrawImage(CanvasDrawImage), unCanvasDrawImage, IsCanvasDrawImage, toCanvasDrawImage, noCanvasDrawImage, gTypeCanvasDrawImage
  , CanvasDrawPath(CanvasDrawPath), unCanvasDrawPath, IsCanvasDrawPath, toCanvasDrawPath, noCanvasDrawPath, gTypeCanvasDrawPath
  , CanvasFillStrokeStyles(CanvasFillStrokeStyles), unCanvasFillStrokeStyles, IsCanvasFillStrokeStyles, toCanvasFillStrokeStyles, noCanvasFillStrokeStyles, gTypeCanvasFillStrokeStyles
  , CanvasFilters(CanvasFilters), unCanvasFilters, IsCanvasFilters, toCanvasFilters, noCanvasFilters, gTypeCanvasFilters
  , CanvasGradient(CanvasGradient), unCanvasGradient, noCanvasGradient, gTypeCanvasGradient
  , CanvasImageData(CanvasImageData), unCanvasImageData, IsCanvasImageData, toCanvasImageData, noCanvasImageData, gTypeCanvasImageData
  , CanvasImageSmoothing(CanvasImageSmoothing), unCanvasImageSmoothing, IsCanvasImageSmoothing, toCanvasImageSmoothing, noCanvasImageSmoothing, gTypeCanvasImageSmoothing
  , CanvasPath(CanvasPath), unCanvasPath, IsCanvasPath, toCanvasPath, noCanvasPath, gTypeCanvasPath
  , CanvasPathDrawingStyles(CanvasPathDrawingStyles), unCanvasPathDrawingStyles, IsCanvasPathDrawingStyles, toCanvasPathDrawingStyles, noCanvasPathDrawingStyles, gTypeCanvasPathDrawingStyles
  , CanvasPattern(CanvasPattern), unCanvasPattern, noCanvasPattern, gTypeCanvasPattern
  , CanvasRect(CanvasRect), unCanvasRect, IsCanvasRect, toCanvasRect, noCanvasRect, gTypeCanvasRect
  , CanvasRenderingContext2D(CanvasRenderingContext2D), unCanvasRenderingContext2D, noCanvasRenderingContext2D, gTypeCanvasRenderingContext2D
  , CanvasRenderingContext2DSettings(CanvasRenderingContext2DSettings), unCanvasRenderingContext2DSettings, noCanvasRenderingContext2DSettings, gTypeCanvasRenderingContext2DSettings
  , CanvasSettings(CanvasSettings), unCanvasSettings, IsCanvasSettings, toCanvasSettings, noCanvasSettings, gTypeCanvasSettings
  , CanvasShadowStyles(CanvasShadowStyles), unCanvasShadowStyles, IsCanvasShadowStyles, toCanvasShadowStyles, noCanvasShadowStyles, gTypeCanvasShadowStyles
  , CanvasState(CanvasState), unCanvasState, IsCanvasState, toCanvasState, noCanvasState, gTypeCanvasState
  , CanvasText(CanvasText), unCanvasText, IsCanvasText, toCanvasText, noCanvasText, gTypeCanvasText
  , CanvasTextDrawingStyles(CanvasTextDrawingStyles), unCanvasTextDrawingStyles, IsCanvasTextDrawingStyles, toCanvasTextDrawingStyles, noCanvasTextDrawingStyles, gTypeCanvasTextDrawingStyles
  , CanvasTransform(CanvasTransform), unCanvasTransform, IsCanvasTransform, toCanvasTransform, noCanvasTransform, gTypeCanvasTransform
  , CanvasUserInterface(CanvasUserInterface), unCanvasUserInterface, IsCanvasUserInterface, toCanvasUserInterface, noCanvasUserInterface, gTypeCanvasUserInterface
  , CaptureController(CaptureController), unCaptureController, noCaptureController, gTypeCaptureController
  , CaretPosition(CaretPosition), unCaretPosition, noCaretPosition, gTypeCaretPosition
  , CaretPositionFromPointOptions(CaretPositionFromPointOptions), unCaretPositionFromPointOptions, noCaretPositionFromPointOptions, gTypeCaretPositionFromPointOptions
  , ChannelMergerNode(ChannelMergerNode), unChannelMergerNode, noChannelMergerNode, gTypeChannelMergerNode
  , ChannelMergerOptions(ChannelMergerOptions), unChannelMergerOptions, noChannelMergerOptions, gTypeChannelMergerOptions
  , ChannelSplitterNode(ChannelSplitterNode), unChannelSplitterNode, noChannelSplitterNode, gTypeChannelSplitterNode
  , ChannelSplitterOptions(ChannelSplitterOptions), unChannelSplitterOptions, noChannelSplitterOptions, gTypeChannelSplitterOptions
  , ChapterInformationInit(ChapterInformationInit), unChapterInformationInit, noChapterInformationInit, gTypeChapterInformationInit
  , CharacterData(CharacterData), unCharacterData, IsCharacterData, toCharacterData, noCharacterData, gTypeCharacterData
  , CheckVisibilityOptions(CheckVisibilityOptions), unCheckVisibilityOptions, noCheckVisibilityOptions, gTypeCheckVisibilityOptions
  , ChildNode(ChildNode), unChildNode, IsChildNode, toChildNode, noChildNode, gTypeChildNode
  , Client(Client), unClient, IsClient, toClient, noClient, gTypeClient
  , ClientQueryOptions(ClientQueryOptions), unClientQueryOptions, noClientQueryOptions, gTypeClientQueryOptions
  , Clients(Clients), unClients, noClients, gTypeClients
  , Clipboard(Clipboard), unClipboard, noClipboard, gTypeClipboard
  , ClipboardChangeEvent(ClipboardChangeEvent), unClipboardChangeEvent, noClipboardChangeEvent, gTypeClipboardChangeEvent
  , ClipboardEvent(ClipboardEvent), unClipboardEvent, noClipboardEvent, gTypeClipboardEvent
  , ClipboardEventInit(ClipboardEventInit), unClipboardEventInit, noClipboardEventInit, gTypeClipboardEventInit
  , ClipboardItem(ClipboardItem), unClipboardItem, noClipboardItem, gTypeClipboardItem
  , ClipboardItemOptions(ClipboardItemOptions), unClipboardItemOptions, noClipboardItemOptions, gTypeClipboardItemOptions
  , ClipboardUnsanitizedFormats(ClipboardUnsanitizedFormats), unClipboardUnsanitizedFormats, noClipboardUnsanitizedFormats, gTypeClipboardUnsanitizedFormats
  , CloseEvent(CloseEvent), unCloseEvent, noCloseEvent, gTypeCloseEvent
  , CloseEventInit(CloseEventInit), unCloseEventInit, noCloseEventInit, gTypeCloseEventInit
  , CloseWatcher(CloseWatcher), unCloseWatcher, noCloseWatcher, gTypeCloseWatcher
  , CloseWatcherOptions(CloseWatcherOptions), unCloseWatcherOptions, noCloseWatcherOptions, gTypeCloseWatcherOptions
  , CommandEvent(CommandEvent), unCommandEvent, noCommandEvent, gTypeCommandEvent
  , CommandEventInit(CommandEventInit), unCommandEventInit, noCommandEventInit, gTypeCommandEventInit
  , Comment(Comment), unComment, noComment, gTypeComment
  , CompositionEvent(CompositionEvent), unCompositionEvent, noCompositionEvent, gTypeCompositionEvent
  , CompositionEventInit(CompositionEventInit), unCompositionEventInit, noCompositionEventInit, gTypeCompositionEventInit
  , CompressionStream(CompressionStream), unCompressionStream, noCompressionStream, gTypeCompressionStream
  , ComputedEffectTiming(ComputedEffectTiming), unComputedEffectTiming, noComputedEffectTiming, gTypeComputedEffectTiming
  , ConstantSourceNode(ConstantSourceNode), unConstantSourceNode, noConstantSourceNode, gTypeConstantSourceNode
  , ConstantSourceOptions(ConstantSourceOptions), unConstantSourceOptions, noConstantSourceOptions, gTypeConstantSourceOptions
  , ConstrainBooleanOrDOMStringParameters(ConstrainBooleanOrDOMStringParameters), unConstrainBooleanOrDOMStringParameters, noConstrainBooleanOrDOMStringParameters, gTypeConstrainBooleanOrDOMStringParameters
  , ConstrainBooleanParameters(ConstrainBooleanParameters), unConstrainBooleanParameters, noConstrainBooleanParameters, gTypeConstrainBooleanParameters
  , ConstrainDOMStringParameters(ConstrainDOMStringParameters), unConstrainDOMStringParameters, noConstrainDOMStringParameters, gTypeConstrainDOMStringParameters
  , ConstrainDoubleRange(ConstrainDoubleRange), unConstrainDoubleRange, noConstrainDoubleRange, gTypeConstrainDoubleRange
  , ConstrainPoint2DParameters(ConstrainPoint2DParameters), unConstrainPoint2DParameters, noConstrainPoint2DParameters, gTypeConstrainPoint2DParameters
  , ConstrainULongRange(ConstrainULongRange), unConstrainULongRange, noConstrainULongRange, gTypeConstrainULongRange
  , ContactAddress(ContactAddress), unContactAddress, noContactAddress, gTypeContactAddress
  , ContentVisibilityAutoStateChangeEvent(ContentVisibilityAutoStateChangeEvent), unContentVisibilityAutoStateChangeEvent, noContentVisibilityAutoStateChangeEvent, gTypeContentVisibilityAutoStateChangeEvent
  , ContentVisibilityAutoStateChangeEventInit(ContentVisibilityAutoStateChangeEventInit), unContentVisibilityAutoStateChangeEventInit, noContentVisibilityAutoStateChangeEventInit, gTypeContentVisibilityAutoStateChangeEventInit
  , ConvolverNode(ConvolverNode), unConvolverNode, noConvolverNode, gTypeConvolverNode
  , ConvolverOptions(ConvolverOptions), unConvolverOptions, noConvolverOptions, gTypeConvolverOptions
  , CookieChangeEvent(CookieChangeEvent), unCookieChangeEvent, noCookieChangeEvent, gTypeCookieChangeEvent
  , CookieChangeEventInit(CookieChangeEventInit), unCookieChangeEventInit, noCookieChangeEventInit, gTypeCookieChangeEventInit
  , CookieInit(CookieInit), unCookieInit, noCookieInit, gTypeCookieInit
  , CookieListItem(CookieListItem), unCookieListItem, noCookieListItem, gTypeCookieListItem
  , CookieStore(CookieStore), unCookieStore, noCookieStore, gTypeCookieStore
  , CookieStoreDeleteOptions(CookieStoreDeleteOptions), unCookieStoreDeleteOptions, noCookieStoreDeleteOptions, gTypeCookieStoreDeleteOptions
  , CookieStoreGetOptions(CookieStoreGetOptions), unCookieStoreGetOptions, noCookieStoreGetOptions, gTypeCookieStoreGetOptions
  , CookieStoreManager(CookieStoreManager), unCookieStoreManager, noCookieStoreManager, gTypeCookieStoreManager
  , CountQueuingStrategy(CountQueuingStrategy), unCountQueuingStrategy, noCountQueuingStrategy, gTypeCountQueuingStrategy
  , Credential(Credential), unCredential, IsCredential, toCredential, noCredential, gTypeCredential
  , CredentialCreationOptions(CredentialCreationOptions), unCredentialCreationOptions, noCredentialCreationOptions, gTypeCredentialCreationOptions
  , CredentialData(CredentialData), unCredentialData, IsCredentialData, toCredentialData, noCredentialData, gTypeCredentialData
  , CredentialPropertiesOutput(CredentialPropertiesOutput), unCredentialPropertiesOutput, noCredentialPropertiesOutput, gTypeCredentialPropertiesOutput
  , CredentialRequestOptions(CredentialRequestOptions), unCredentialRequestOptions, noCredentialRequestOptions, gTypeCredentialRequestOptions
  , CredentialsContainer(CredentialsContainer), unCredentialsContainer, noCredentialsContainer, gTypeCredentialsContainer
  , Crypto(Crypto), unCrypto, noCrypto, gTypeCrypto
  , CryptoKey(CryptoKey), unCryptoKey, noCryptoKey, gTypeCryptoKey
  , CryptoKeyPair(CryptoKeyPair), unCryptoKeyPair, noCryptoKeyPair, gTypeCryptoKeyPair
  , CurrentUserDetailsOptions(CurrentUserDetailsOptions), unCurrentUserDetailsOptions, noCurrentUserDetailsOptions, gTypeCurrentUserDetailsOptions
  , CustomElementRegistry(CustomElementRegistry), unCustomElementRegistry, noCustomElementRegistry, gTypeCustomElementRegistry
  , CustomEvent(CustomEvent), unCustomEvent, noCustomEvent, gTypeCustomEvent
  , CustomEventInit(CustomEventInit), unCustomEventInit, noCustomEventInit, gTypeCustomEventInit
  , CustomStateSet(CustomStateSet), unCustomStateSet, noCustomStateSet, gTypeCustomStateSet
  , DOMException(DOMException), unDOMException, IsDOMException, toDOMException, noDOMException, gTypeDOMException
  , DOMImplementation(DOMImplementation), unDOMImplementation, noDOMImplementation, gTypeDOMImplementation
  , DOMMatrix(DOMMatrix), unDOMMatrix, noDOMMatrix, gTypeDOMMatrix
  , DOMMatrix2DInit(DOMMatrix2DInit), unDOMMatrix2DInit, IsDOMMatrix2DInit, toDOMMatrix2DInit, noDOMMatrix2DInit, gTypeDOMMatrix2DInit
  , DOMMatrixInit(DOMMatrixInit), unDOMMatrixInit, noDOMMatrixInit, gTypeDOMMatrixInit
  , DOMMatrixReadOnly(DOMMatrixReadOnly), unDOMMatrixReadOnly, IsDOMMatrixReadOnly, toDOMMatrixReadOnly, noDOMMatrixReadOnly, gTypeDOMMatrixReadOnly
  , DOMParser(DOMParser), unDOMParser, noDOMParser, gTypeDOMParser
  , DOMPoint(DOMPoint), unDOMPoint, noDOMPoint, gTypeDOMPoint
  , DOMPointInit(DOMPointInit), unDOMPointInit, noDOMPointInit, gTypeDOMPointInit
  , DOMPointReadOnly(DOMPointReadOnly), unDOMPointReadOnly, IsDOMPointReadOnly, toDOMPointReadOnly, noDOMPointReadOnly, gTypeDOMPointReadOnly
  , DOMQuad(DOMQuad), unDOMQuad, noDOMQuad, gTypeDOMQuad
  , DOMQuadInit(DOMQuadInit), unDOMQuadInit, noDOMQuadInit, gTypeDOMQuadInit
  , DOMRect(DOMRect), unDOMRect, noDOMRect, gTypeDOMRect
  , DOMRectInit(DOMRectInit), unDOMRectInit, noDOMRectInit, gTypeDOMRectInit
  , DOMRectList(DOMRectList), unDOMRectList, noDOMRectList, gTypeDOMRectList
  , DOMRectReadOnly(DOMRectReadOnly), unDOMRectReadOnly, IsDOMRectReadOnly, toDOMRectReadOnly, noDOMRectReadOnly, gTypeDOMRectReadOnly
  , DOMStringList(DOMStringList), unDOMStringList, noDOMStringList, gTypeDOMStringList
  , DOMStringMap(DOMStringMap), unDOMStringMap, noDOMStringMap, gTypeDOMStringMap
  , DOMTokenList(DOMTokenList), unDOMTokenList, noDOMTokenList, gTypeDOMTokenList
  , DataCue(DataCue), unDataCue, noDataCue, gTypeDataCue
  , DataTransfer(DataTransfer), unDataTransfer, noDataTransfer, gTypeDataTransfer
  , DataTransferItem(DataTransferItem), unDataTransferItem, noDataTransferItem, gTypeDataTransferItem
  , DataTransferItemList(DataTransferItemList), unDataTransferItemList, noDataTransferItemList, gTypeDataTransferItemList
  , DataView(DataView), unDataView, noDataView, gTypeDataView
  , DecompressionStream(DecompressionStream), unDecompressionStream, noDecompressionStream, gTypeDecompressionStream
  , DedicatedWorkerGlobalScope(DedicatedWorkerGlobalScope), unDedicatedWorkerGlobalScope, noDedicatedWorkerGlobalScope, gTypeDedicatedWorkerGlobalScope
  , DelayNode(DelayNode), unDelayNode, noDelayNode, gTypeDelayNode
  , DelayOptions(DelayOptions), unDelayOptions, noDelayOptions, gTypeDelayOptions
  , DeviceChangeEvent(DeviceChangeEvent), unDeviceChangeEvent, noDeviceChangeEvent, gTypeDeviceChangeEvent
  , DeviceMotionEvent(DeviceMotionEvent), unDeviceMotionEvent, noDeviceMotionEvent, gTypeDeviceMotionEvent
  , DeviceMotionEventAcceleration(DeviceMotionEventAcceleration), unDeviceMotionEventAcceleration, noDeviceMotionEventAcceleration, gTypeDeviceMotionEventAcceleration
  , DeviceMotionEventAccelerationInit(DeviceMotionEventAccelerationInit), unDeviceMotionEventAccelerationInit, noDeviceMotionEventAccelerationInit, gTypeDeviceMotionEventAccelerationInit
  , DeviceMotionEventInit(DeviceMotionEventInit), unDeviceMotionEventInit, noDeviceMotionEventInit, gTypeDeviceMotionEventInit
  , DeviceMotionEventRotationRate(DeviceMotionEventRotationRate), unDeviceMotionEventRotationRate, noDeviceMotionEventRotationRate, gTypeDeviceMotionEventRotationRate
  , DeviceMotionEventRotationRateInit(DeviceMotionEventRotationRateInit), unDeviceMotionEventRotationRateInit, noDeviceMotionEventRotationRateInit, gTypeDeviceMotionEventRotationRateInit
  , DeviceOrientationEvent(DeviceOrientationEvent), unDeviceOrientationEvent, noDeviceOrientationEvent, gTypeDeviceOrientationEvent
  , DeviceOrientationEventInit(DeviceOrientationEventInit), unDeviceOrientationEventInit, noDeviceOrientationEventInit, gTypeDeviceOrientationEventInit
  , DigitalCredential(DigitalCredential), unDigitalCredential, noDigitalCredential, gTypeDigitalCredential
  , DigitalCredentialCreateRequest(DigitalCredentialCreateRequest), unDigitalCredentialCreateRequest, noDigitalCredentialCreateRequest, gTypeDigitalCredentialCreateRequest
  , DigitalCredentialCreationOptions(DigitalCredentialCreationOptions), unDigitalCredentialCreationOptions, noDigitalCredentialCreationOptions, gTypeDigitalCredentialCreationOptions
  , DigitalCredentialGetRequest(DigitalCredentialGetRequest), unDigitalCredentialGetRequest, noDigitalCredentialGetRequest, gTypeDigitalCredentialGetRequest
  , DigitalCredentialRequestOptions(DigitalCredentialRequestOptions), unDigitalCredentialRequestOptions, noDigitalCredentialRequestOptions, gTypeDigitalCredentialRequestOptions
  , DisplayMediaStreamOptions(DisplayMediaStreamOptions), unDisplayMediaStreamOptions, noDisplayMediaStreamOptions, gTypeDisplayMediaStreamOptions
  , Document(Document), unDocument, IsDocument, toDocument, noDocument, gTypeDocument
  , DocumentFragment(DocumentFragment), unDocumentFragment, IsDocumentFragment, toDocumentFragment, noDocumentFragment, gTypeDocumentFragment
  , DocumentOrShadowRoot(DocumentOrShadowRoot), unDocumentOrShadowRoot, IsDocumentOrShadowRoot, toDocumentOrShadowRoot, noDocumentOrShadowRoot, gTypeDocumentOrShadowRoot
  , DocumentPictureInPicture(DocumentPictureInPicture), unDocumentPictureInPicture, noDocumentPictureInPicture, gTypeDocumentPictureInPicture
  , DocumentPictureInPictureEvent(DocumentPictureInPictureEvent), unDocumentPictureInPictureEvent, noDocumentPictureInPictureEvent, gTypeDocumentPictureInPictureEvent
  , DocumentPictureInPictureEventInit(DocumentPictureInPictureEventInit), unDocumentPictureInPictureEventInit, noDocumentPictureInPictureEventInit, gTypeDocumentPictureInPictureEventInit
  , DocumentPictureInPictureOptions(DocumentPictureInPictureOptions), unDocumentPictureInPictureOptions, noDocumentPictureInPictureOptions, gTypeDocumentPictureInPictureOptions
  , DocumentTimeline(DocumentTimeline), unDocumentTimeline, noDocumentTimeline, gTypeDocumentTimeline
  , DocumentTimelineOptions(DocumentTimelineOptions), unDocumentTimelineOptions, noDocumentTimelineOptions, gTypeDocumentTimelineOptions
  , DocumentType(DocumentType), unDocumentType, noDocumentType, gTypeDocumentType
  , DoubleRange(DoubleRange), unDoubleRange, IsDoubleRange, toDoubleRange, noDoubleRange, gTypeDoubleRange
  , DragEvent(DragEvent), unDragEvent, noDragEvent, gTypeDragEvent
  , DragEventInit(DragEventInit), unDragEventInit, noDragEventInit, gTypeDragEventInit
  , DynamicsCompressorNode(DynamicsCompressorNode), unDynamicsCompressorNode, noDynamicsCompressorNode, gTypeDynamicsCompressorNode
  , DynamicsCompressorOptions(DynamicsCompressorOptions), unDynamicsCompressorOptions, noDynamicsCompressorOptions, gTypeDynamicsCompressorOptions
  , EXT_blend_minmax(EXT_blend_minmax), unEXT_blend_minmax, noEXT_blend_minmax, gTypeEXT_blend_minmax
  , EXT_clip_control(EXT_clip_control), unEXT_clip_control, noEXT_clip_control, gTypeEXT_clip_control
  , EXT_color_buffer_float(EXT_color_buffer_float), unEXT_color_buffer_float, noEXT_color_buffer_float, gTypeEXT_color_buffer_float
  , EXT_color_buffer_half_float(EXT_color_buffer_half_float), unEXT_color_buffer_half_float, noEXT_color_buffer_half_float, gTypeEXT_color_buffer_half_float
  , EXT_float_blend(EXT_float_blend), unEXT_float_blend, noEXT_float_blend, gTypeEXT_float_blend
  , EXT_frag_depth(EXT_frag_depth), unEXT_frag_depth, noEXT_frag_depth, gTypeEXT_frag_depth
  , EXT_polygon_offset_clamp(EXT_polygon_offset_clamp), unEXT_polygon_offset_clamp, noEXT_polygon_offset_clamp, gTypeEXT_polygon_offset_clamp
  , EXT_sRGB(EXT_sRGB), unEXT_sRGB, noEXT_sRGB, gTypeEXT_sRGB
  , EXT_shader_texture_lod(EXT_shader_texture_lod), unEXT_shader_texture_lod, noEXT_shader_texture_lod, gTypeEXT_shader_texture_lod
  , EXT_texture_compression_bptc(EXT_texture_compression_bptc), unEXT_texture_compression_bptc, noEXT_texture_compression_bptc, gTypeEXT_texture_compression_bptc
  , EXT_texture_compression_rgtc(EXT_texture_compression_rgtc), unEXT_texture_compression_rgtc, noEXT_texture_compression_rgtc, gTypeEXT_texture_compression_rgtc
  , EXT_texture_filter_anisotropic(EXT_texture_filter_anisotropic), unEXT_texture_filter_anisotropic, noEXT_texture_filter_anisotropic, gTypeEXT_texture_filter_anisotropic
  , EXT_texture_mirror_clamp_to_edge(EXT_texture_mirror_clamp_to_edge), unEXT_texture_mirror_clamp_to_edge, noEXT_texture_mirror_clamp_to_edge, gTypeEXT_texture_mirror_clamp_to_edge
  , EXT_texture_norm16(EXT_texture_norm16), unEXT_texture_norm16, noEXT_texture_norm16, gTypeEXT_texture_norm16
  , EffectTiming(EffectTiming), unEffectTiming, IsEffectTiming, toEffectTiming, noEffectTiming, gTypeEffectTiming
  , Element(Element), unElement, IsElement, toElement, noElement, gTypeElement
  , ElementCSSInlineStyle(ElementCSSInlineStyle), unElementCSSInlineStyle, IsElementCSSInlineStyle, toElementCSSInlineStyle, noElementCSSInlineStyle, gTypeElementCSSInlineStyle
  , ElementContentEditable(ElementContentEditable), unElementContentEditable, IsElementContentEditable, toElementContentEditable, noElementContentEditable, gTypeElementContentEditable
  , ElementCreationOptions(ElementCreationOptions), unElementCreationOptions, noElementCreationOptions, gTypeElementCreationOptions
  , ElementDefinitionOptions(ElementDefinitionOptions), unElementDefinitionOptions, noElementDefinitionOptions, gTypeElementDefinitionOptions
  , ElementInternals(ElementInternals), unElementInternals, noElementInternals, gTypeElementInternals
  , EncodedAudioChunk(EncodedAudioChunk), unEncodedAudioChunk, noEncodedAudioChunk, gTypeEncodedAudioChunk
  , EncodedAudioChunkInit(EncodedAudioChunkInit), unEncodedAudioChunkInit, noEncodedAudioChunkInit, gTypeEncodedAudioChunkInit
  , EncodedAudioChunkMetadata(EncodedAudioChunkMetadata), unEncodedAudioChunkMetadata, noEncodedAudioChunkMetadata, gTypeEncodedAudioChunkMetadata
  , EncodedVideoChunk(EncodedVideoChunk), unEncodedVideoChunk, noEncodedVideoChunk, gTypeEncodedVideoChunk
  , EncodedVideoChunkInit(EncodedVideoChunkInit), unEncodedVideoChunkInit, noEncodedVideoChunkInit, gTypeEncodedVideoChunkInit
  , EncodedVideoChunkMetadata(EncodedVideoChunkMetadata), unEncodedVideoChunkMetadata, noEncodedVideoChunkMetadata, gTypeEncodedVideoChunkMetadata
  , ErrorEvent(ErrorEvent), unErrorEvent, noErrorEvent, gTypeErrorEvent
  , ErrorEventInit(ErrorEventInit), unErrorEventInit, noErrorEventInit, gTypeErrorEventInit
  , Event(Event), unEvent, IsEvent, toEvent, noEvent, gTypeEvent
  , EventCounts(EventCounts), unEventCounts, noEventCounts, gTypeEventCounts
  , EventInit(EventInit), unEventInit, IsEventInit, toEventInit, noEventInit, gTypeEventInit
  , EventListener(EventListener), unEventListener, noEventListener, gTypeEventListener
  , EventListenerOptions(EventListenerOptions), unEventListenerOptions, IsEventListenerOptions, toEventListenerOptions, noEventListenerOptions, gTypeEventListenerOptions
  , EventModifierInit(EventModifierInit), unEventModifierInit, IsEventModifierInit, toEventModifierInit, noEventModifierInit, gTypeEventModifierInit
  , EventSource(EventSource), unEventSource, noEventSource, gTypeEventSource
  , EventSourceInit(EventSourceInit), unEventSourceInit, noEventSourceInit, gTypeEventSourceInit
  , EventTarget(EventTarget), unEventTarget, IsEventTarget, toEventTarget, noEventTarget, gTypeEventTarget
  , ExtendableCookieChangeEvent(ExtendableCookieChangeEvent), unExtendableCookieChangeEvent, noExtendableCookieChangeEvent, gTypeExtendableCookieChangeEvent
  , ExtendableCookieChangeEventInit(ExtendableCookieChangeEventInit), unExtendableCookieChangeEventInit, noExtendableCookieChangeEventInit, gTypeExtendableCookieChangeEventInit
  , ExtendableEvent(ExtendableEvent), unExtendableEvent, IsExtendableEvent, toExtendableEvent, noExtendableEvent, gTypeExtendableEvent
  , ExtendableEventInit(ExtendableEventInit), unExtendableEventInit, IsExtendableEventInit, toExtendableEventInit, noExtendableEventInit, gTypeExtendableEventInit
  , ExtendableMessageEvent(ExtendableMessageEvent), unExtendableMessageEvent, noExtendableMessageEvent, gTypeExtendableMessageEvent
  , ExtendableMessageEventInit(ExtendableMessageEventInit), unExtendableMessageEventInit, noExtendableMessageEventInit, gTypeExtendableMessageEventInit
  , External(External), unExternal, noExternal, gTypeExternal
  , FederatedCredentialInit(FederatedCredentialInit), unFederatedCredentialInit, noFederatedCredentialInit, gTypeFederatedCredentialInit
  , FederatedCredentialRequestOptions(FederatedCredentialRequestOptions), unFederatedCredentialRequestOptions, noFederatedCredentialRequestOptions, gTypeFederatedCredentialRequestOptions
  , FetchEvent(FetchEvent), unFetchEvent, noFetchEvent, gTypeFetchEvent
  , FetchEventInit(FetchEventInit), unFetchEventInit, noFetchEventInit, gTypeFetchEventInit
  , File(File), unFile, noFile, gTypeFile
  , FileList(FileList), unFileList, noFileList, gTypeFileList
  , FilePropertyBag(FilePropertyBag), unFilePropertyBag, noFilePropertyBag, gTypeFilePropertyBag
  , FileReader(FileReader), unFileReader, noFileReader, gTypeFileReader
  , FileReaderSync(FileReaderSync), unFileReaderSync, noFileReaderSync, gTypeFileReaderSync
  , FileSystem(FileSystem), unFileSystem, noFileSystem, gTypeFileSystem
  , FileSystemCreateWritableOptions(FileSystemCreateWritableOptions), unFileSystemCreateWritableOptions, noFileSystemCreateWritableOptions, gTypeFileSystemCreateWritableOptions
  , FileSystemDirectoryEntry(FileSystemDirectoryEntry), unFileSystemDirectoryEntry, noFileSystemDirectoryEntry, gTypeFileSystemDirectoryEntry
  , FileSystemDirectoryHandle(FileSystemDirectoryHandle), unFileSystemDirectoryHandle, noFileSystemDirectoryHandle, gTypeFileSystemDirectoryHandle
  , FileSystemDirectoryReader(FileSystemDirectoryReader), unFileSystemDirectoryReader, noFileSystemDirectoryReader, gTypeFileSystemDirectoryReader
  , FileSystemEntry(FileSystemEntry), unFileSystemEntry, IsFileSystemEntry, toFileSystemEntry, noFileSystemEntry, gTypeFileSystemEntry
  , FileSystemFileEntry(FileSystemFileEntry), unFileSystemFileEntry, noFileSystemFileEntry, gTypeFileSystemFileEntry
  , FileSystemFileHandle(FileSystemFileHandle), unFileSystemFileHandle, noFileSystemFileHandle, gTypeFileSystemFileHandle
  , FileSystemFlags(FileSystemFlags), unFileSystemFlags, noFileSystemFlags, gTypeFileSystemFlags
  , FileSystemGetDirectoryOptions(FileSystemGetDirectoryOptions), unFileSystemGetDirectoryOptions, noFileSystemGetDirectoryOptions, gTypeFileSystemGetDirectoryOptions
  , FileSystemGetFileOptions(FileSystemGetFileOptions), unFileSystemGetFileOptions, noFileSystemGetFileOptions, gTypeFileSystemGetFileOptions
  , FileSystemHandle(FileSystemHandle), unFileSystemHandle, IsFileSystemHandle, toFileSystemHandle, noFileSystemHandle, gTypeFileSystemHandle
  , FileSystemReadWriteOptions(FileSystemReadWriteOptions), unFileSystemReadWriteOptions, noFileSystemReadWriteOptions, gTypeFileSystemReadWriteOptions
  , FileSystemRemoveOptions(FileSystemRemoveOptions), unFileSystemRemoveOptions, noFileSystemRemoveOptions, gTypeFileSystemRemoveOptions
  , FileSystemSyncAccessHandle(FileSystemSyncAccessHandle), unFileSystemSyncAccessHandle, noFileSystemSyncAccessHandle, gTypeFileSystemSyncAccessHandle
  , FileSystemWritableFileStream(FileSystemWritableFileStream), unFileSystemWritableFileStream, noFileSystemWritableFileStream, gTypeFileSystemWritableFileStream
  , FlacEncoderConfig(FlacEncoderConfig), unFlacEncoderConfig, noFlacEncoderConfig, gTypeFlacEncoderConfig
  , Float16Array(Float16Array), unFloat16Array, noFloat16Array, gTypeFloat16Array
  , FocusEvent(FocusEvent), unFocusEvent, noFocusEvent, gTypeFocusEvent
  , FocusEventInit(FocusEventInit), unFocusEventInit, noFocusEventInit, gTypeFocusEventInit
  , FocusOptions(FocusOptions), unFocusOptions, noFocusOptions, gTypeFocusOptions
  , FontFace(FontFace), unFontFace, noFontFace, gTypeFontFace
  , FontFaceDescriptors(FontFaceDescriptors), unFontFaceDescriptors, noFontFaceDescriptors, gTypeFontFaceDescriptors
  , FontFaceSet(FontFaceSet), unFontFaceSet, noFontFaceSet, gTypeFontFaceSet
  , FontFaceSetLoadEvent(FontFaceSetLoadEvent), unFontFaceSetLoadEvent, noFontFaceSetLoadEvent, gTypeFontFaceSetLoadEvent
  , FontFaceSetLoadEventInit(FontFaceSetLoadEventInit), unFontFaceSetLoadEventInit, noFontFaceSetLoadEventInit, gTypeFontFaceSetLoadEventInit
  , FontFaceSource(FontFaceSource), unFontFaceSource, IsFontFaceSource, toFontFaceSource, noFontFaceSource, gTypeFontFaceSource
  , FormData(FormData), unFormData, noFormData, gTypeFormData
  , FormDataEvent(FormDataEvent), unFormDataEvent, noFormDataEvent, gTypeFormDataEvent
  , FormDataEventInit(FormDataEventInit), unFormDataEventInit, noFormDataEventInit, gTypeFormDataEventInit
  , FragmentDirective(FragmentDirective), unFragmentDirective, noFragmentDirective, gTypeFragmentDirective
  , FullscreenOptions(FullscreenOptions), unFullscreenOptions, noFullscreenOptions, gTypeFullscreenOptions
  , GPU(GPU), unGPU, noGPU, gTypeGPU
  , GPUAdapter(GPUAdapter), unGPUAdapter, noGPUAdapter, gTypeGPUAdapter
  , GPUAdapterInfo(GPUAdapterInfo), unGPUAdapterInfo, noGPUAdapterInfo, gTypeGPUAdapterInfo
  , GPUBindGroup(GPUBindGroup), unGPUBindGroup, noGPUBindGroup, gTypeGPUBindGroup
  , GPUBindGroupDescriptor(GPUBindGroupDescriptor), unGPUBindGroupDescriptor, noGPUBindGroupDescriptor, gTypeGPUBindGroupDescriptor
  , GPUBindGroupEntry(GPUBindGroupEntry), unGPUBindGroupEntry, noGPUBindGroupEntry, gTypeGPUBindGroupEntry
  , GPUBindGroupLayout(GPUBindGroupLayout), unGPUBindGroupLayout, noGPUBindGroupLayout, gTypeGPUBindGroupLayout
  , GPUBindGroupLayoutDescriptor(GPUBindGroupLayoutDescriptor), unGPUBindGroupLayoutDescriptor, noGPUBindGroupLayoutDescriptor, gTypeGPUBindGroupLayoutDescriptor
  , GPUBindGroupLayoutEntry(GPUBindGroupLayoutEntry), unGPUBindGroupLayoutEntry, noGPUBindGroupLayoutEntry, gTypeGPUBindGroupLayoutEntry
  , GPUBindingCommandsMixin(GPUBindingCommandsMixin), unGPUBindingCommandsMixin, IsGPUBindingCommandsMixin, toGPUBindingCommandsMixin, noGPUBindingCommandsMixin, gTypeGPUBindingCommandsMixin
  , GPUBlendComponent(GPUBlendComponent), unGPUBlendComponent, noGPUBlendComponent, gTypeGPUBlendComponent
  , GPUBlendState(GPUBlendState), unGPUBlendState, noGPUBlendState, gTypeGPUBlendState
  , GPUBuffer(GPUBuffer), unGPUBuffer, noGPUBuffer, gTypeGPUBuffer
  , GPUBufferBinding(GPUBufferBinding), unGPUBufferBinding, noGPUBufferBinding, gTypeGPUBufferBinding
  , GPUBufferBindingLayout(GPUBufferBindingLayout), unGPUBufferBindingLayout, noGPUBufferBindingLayout, gTypeGPUBufferBindingLayout
  , GPUBufferDescriptor(GPUBufferDescriptor), unGPUBufferDescriptor, noGPUBufferDescriptor, gTypeGPUBufferDescriptor
  , GPUCanvasConfiguration(GPUCanvasConfiguration), unGPUCanvasConfiguration, noGPUCanvasConfiguration, gTypeGPUCanvasConfiguration
  , GPUCanvasContext(GPUCanvasContext), unGPUCanvasContext, noGPUCanvasContext, gTypeGPUCanvasContext
  , GPUCanvasToneMapping(GPUCanvasToneMapping), unGPUCanvasToneMapping, noGPUCanvasToneMapping, gTypeGPUCanvasToneMapping
  , GPUColorDict(GPUColorDict), unGPUColorDict, noGPUColorDict, gTypeGPUColorDict
  , GPUColorTargetState(GPUColorTargetState), unGPUColorTargetState, noGPUColorTargetState, gTypeGPUColorTargetState
  , GPUCommandBuffer(GPUCommandBuffer), unGPUCommandBuffer, noGPUCommandBuffer, gTypeGPUCommandBuffer
  , GPUCommandBufferDescriptor(GPUCommandBufferDescriptor), unGPUCommandBufferDescriptor, noGPUCommandBufferDescriptor, gTypeGPUCommandBufferDescriptor
  , GPUCommandEncoder(GPUCommandEncoder), unGPUCommandEncoder, noGPUCommandEncoder, gTypeGPUCommandEncoder
  , GPUCommandEncoderDescriptor(GPUCommandEncoderDescriptor), unGPUCommandEncoderDescriptor, noGPUCommandEncoderDescriptor, gTypeGPUCommandEncoderDescriptor
  , GPUCompilationInfo(GPUCompilationInfo), unGPUCompilationInfo, noGPUCompilationInfo, gTypeGPUCompilationInfo
  , GPUCompilationMessage(GPUCompilationMessage), unGPUCompilationMessage, noGPUCompilationMessage, gTypeGPUCompilationMessage
  , GPUComputePassDescriptor(GPUComputePassDescriptor), unGPUComputePassDescriptor, noGPUComputePassDescriptor, gTypeGPUComputePassDescriptor
  , GPUComputePassEncoder(GPUComputePassEncoder), unGPUComputePassEncoder, noGPUComputePassEncoder, gTypeGPUComputePassEncoder
  , GPUComputePassTimestampWrites(GPUComputePassTimestampWrites), unGPUComputePassTimestampWrites, noGPUComputePassTimestampWrites, gTypeGPUComputePassTimestampWrites
  , GPUComputePipeline(GPUComputePipeline), unGPUComputePipeline, noGPUComputePipeline, gTypeGPUComputePipeline
  , GPUComputePipelineDescriptor(GPUComputePipelineDescriptor), unGPUComputePipelineDescriptor, noGPUComputePipelineDescriptor, gTypeGPUComputePipelineDescriptor
  , GPUCopyExternalImageDestInfo(GPUCopyExternalImageDestInfo), unGPUCopyExternalImageDestInfo, noGPUCopyExternalImageDestInfo, gTypeGPUCopyExternalImageDestInfo
  , GPUCopyExternalImageSourceInfo(GPUCopyExternalImageSourceInfo), unGPUCopyExternalImageSourceInfo, noGPUCopyExternalImageSourceInfo, gTypeGPUCopyExternalImageSourceInfo
  , GPUDebugCommandsMixin(GPUDebugCommandsMixin), unGPUDebugCommandsMixin, IsGPUDebugCommandsMixin, toGPUDebugCommandsMixin, noGPUDebugCommandsMixin, gTypeGPUDebugCommandsMixin
  , GPUDepthStencilState(GPUDepthStencilState), unGPUDepthStencilState, noGPUDepthStencilState, gTypeGPUDepthStencilState
  , GPUDevice(GPUDevice), unGPUDevice, noGPUDevice, gTypeGPUDevice
  , GPUDeviceDescriptor(GPUDeviceDescriptor), unGPUDeviceDescriptor, noGPUDeviceDescriptor, gTypeGPUDeviceDescriptor
  , GPUDeviceLostInfo(GPUDeviceLostInfo), unGPUDeviceLostInfo, noGPUDeviceLostInfo, gTypeGPUDeviceLostInfo
  , GPUError(GPUError), unGPUError, IsGPUError, toGPUError, noGPUError, gTypeGPUError
  , GPUExtent3DDict(GPUExtent3DDict), unGPUExtent3DDict, noGPUExtent3DDict, gTypeGPUExtent3DDict
  , GPUExternalTexture(GPUExternalTexture), unGPUExternalTexture, noGPUExternalTexture, gTypeGPUExternalTexture
  , GPUExternalTextureBindingLayout(GPUExternalTextureBindingLayout), unGPUExternalTextureBindingLayout, noGPUExternalTextureBindingLayout, gTypeGPUExternalTextureBindingLayout
  , GPUExternalTextureDescriptor(GPUExternalTextureDescriptor), unGPUExternalTextureDescriptor, noGPUExternalTextureDescriptor, gTypeGPUExternalTextureDescriptor
  , GPUFragmentState(GPUFragmentState), unGPUFragmentState, noGPUFragmentState, gTypeGPUFragmentState
  , GPUInternalError(GPUInternalError), unGPUInternalError, noGPUInternalError, gTypeGPUInternalError
  , GPUMultisampleState(GPUMultisampleState), unGPUMultisampleState, noGPUMultisampleState, gTypeGPUMultisampleState
  , GPUObjectBase(GPUObjectBase), unGPUObjectBase, IsGPUObjectBase, toGPUObjectBase, noGPUObjectBase, gTypeGPUObjectBase
  , GPUObjectDescriptorBase(GPUObjectDescriptorBase), unGPUObjectDescriptorBase, IsGPUObjectDescriptorBase, toGPUObjectDescriptorBase, noGPUObjectDescriptorBase, gTypeGPUObjectDescriptorBase
  , GPUOrigin2DDict(GPUOrigin2DDict), unGPUOrigin2DDict, noGPUOrigin2DDict, gTypeGPUOrigin2DDict
  , GPUOrigin3DDict(GPUOrigin3DDict), unGPUOrigin3DDict, noGPUOrigin3DDict, gTypeGPUOrigin3DDict
  , GPUOutOfMemoryError(GPUOutOfMemoryError), unGPUOutOfMemoryError, noGPUOutOfMemoryError, gTypeGPUOutOfMemoryError
  , GPUPipelineBase(GPUPipelineBase), unGPUPipelineBase, IsGPUPipelineBase, toGPUPipelineBase, noGPUPipelineBase, gTypeGPUPipelineBase
  , GPUPipelineDescriptorBase(GPUPipelineDescriptorBase), unGPUPipelineDescriptorBase, IsGPUPipelineDescriptorBase, toGPUPipelineDescriptorBase, noGPUPipelineDescriptorBase, gTypeGPUPipelineDescriptorBase
  , GPUPipelineError(GPUPipelineError), unGPUPipelineError, noGPUPipelineError, gTypeGPUPipelineError
  , GPUPipelineErrorInit(GPUPipelineErrorInit), unGPUPipelineErrorInit, noGPUPipelineErrorInit, gTypeGPUPipelineErrorInit
  , GPUPipelineLayout(GPUPipelineLayout), unGPUPipelineLayout, noGPUPipelineLayout, gTypeGPUPipelineLayout
  , GPUPipelineLayoutDescriptor(GPUPipelineLayoutDescriptor), unGPUPipelineLayoutDescriptor, noGPUPipelineLayoutDescriptor, gTypeGPUPipelineLayoutDescriptor
  , GPUPrimitiveState(GPUPrimitiveState), unGPUPrimitiveState, noGPUPrimitiveState, gTypeGPUPrimitiveState
  , GPUProgrammableStage(GPUProgrammableStage), unGPUProgrammableStage, IsGPUProgrammableStage, toGPUProgrammableStage, noGPUProgrammableStage, gTypeGPUProgrammableStage
  , GPUQuerySet(GPUQuerySet), unGPUQuerySet, noGPUQuerySet, gTypeGPUQuerySet
  , GPUQuerySetDescriptor(GPUQuerySetDescriptor), unGPUQuerySetDescriptor, noGPUQuerySetDescriptor, gTypeGPUQuerySetDescriptor
  , GPUQueue(GPUQueue), unGPUQueue, noGPUQueue, gTypeGPUQueue
  , GPUQueueDescriptor(GPUQueueDescriptor), unGPUQueueDescriptor, noGPUQueueDescriptor, gTypeGPUQueueDescriptor
  , GPURenderBundle(GPURenderBundle), unGPURenderBundle, noGPURenderBundle, gTypeGPURenderBundle
  , GPURenderBundleDescriptor(GPURenderBundleDescriptor), unGPURenderBundleDescriptor, noGPURenderBundleDescriptor, gTypeGPURenderBundleDescriptor
  , GPURenderBundleEncoder(GPURenderBundleEncoder), unGPURenderBundleEncoder, noGPURenderBundleEncoder, gTypeGPURenderBundleEncoder
  , GPURenderBundleEncoderDescriptor(GPURenderBundleEncoderDescriptor), unGPURenderBundleEncoderDescriptor, noGPURenderBundleEncoderDescriptor, gTypeGPURenderBundleEncoderDescriptor
  , GPURenderCommandsMixin(GPURenderCommandsMixin), unGPURenderCommandsMixin, IsGPURenderCommandsMixin, toGPURenderCommandsMixin, noGPURenderCommandsMixin, gTypeGPURenderCommandsMixin
  , GPURenderPassColorAttachment(GPURenderPassColorAttachment), unGPURenderPassColorAttachment, noGPURenderPassColorAttachment, gTypeGPURenderPassColorAttachment
  , GPURenderPassDepthStencilAttachment(GPURenderPassDepthStencilAttachment), unGPURenderPassDepthStencilAttachment, noGPURenderPassDepthStencilAttachment, gTypeGPURenderPassDepthStencilAttachment
  , GPURenderPassDescriptor(GPURenderPassDescriptor), unGPURenderPassDescriptor, noGPURenderPassDescriptor, gTypeGPURenderPassDescriptor
  , GPURenderPassEncoder(GPURenderPassEncoder), unGPURenderPassEncoder, noGPURenderPassEncoder, gTypeGPURenderPassEncoder
  , GPURenderPassLayout(GPURenderPassLayout), unGPURenderPassLayout, IsGPURenderPassLayout, toGPURenderPassLayout, noGPURenderPassLayout, gTypeGPURenderPassLayout
  , GPURenderPassTimestampWrites(GPURenderPassTimestampWrites), unGPURenderPassTimestampWrites, noGPURenderPassTimestampWrites, gTypeGPURenderPassTimestampWrites
  , GPURenderPipeline(GPURenderPipeline), unGPURenderPipeline, noGPURenderPipeline, gTypeGPURenderPipeline
  , GPURenderPipelineDescriptor(GPURenderPipelineDescriptor), unGPURenderPipelineDescriptor, noGPURenderPipelineDescriptor, gTypeGPURenderPipelineDescriptor
  , GPURequestAdapterOptions(GPURequestAdapterOptions), unGPURequestAdapterOptions, noGPURequestAdapterOptions, gTypeGPURequestAdapterOptions
  , GPUSampler(GPUSampler), unGPUSampler, noGPUSampler, gTypeGPUSampler
  , GPUSamplerBindingLayout(GPUSamplerBindingLayout), unGPUSamplerBindingLayout, noGPUSamplerBindingLayout, gTypeGPUSamplerBindingLayout
  , GPUSamplerDescriptor(GPUSamplerDescriptor), unGPUSamplerDescriptor, noGPUSamplerDescriptor, gTypeGPUSamplerDescriptor
  , GPUShaderModule(GPUShaderModule), unGPUShaderModule, noGPUShaderModule, gTypeGPUShaderModule
  , GPUShaderModuleCompilationHint(GPUShaderModuleCompilationHint), unGPUShaderModuleCompilationHint, noGPUShaderModuleCompilationHint, gTypeGPUShaderModuleCompilationHint
  , GPUShaderModuleDescriptor(GPUShaderModuleDescriptor), unGPUShaderModuleDescriptor, noGPUShaderModuleDescriptor, gTypeGPUShaderModuleDescriptor
  , GPUStencilFaceState(GPUStencilFaceState), unGPUStencilFaceState, noGPUStencilFaceState, gTypeGPUStencilFaceState
  , GPUStorageTextureBindingLayout(GPUStorageTextureBindingLayout), unGPUStorageTextureBindingLayout, noGPUStorageTextureBindingLayout, gTypeGPUStorageTextureBindingLayout
  , GPUSupportedFeatures(GPUSupportedFeatures), unGPUSupportedFeatures, noGPUSupportedFeatures, gTypeGPUSupportedFeatures
  , GPUSupportedLimits(GPUSupportedLimits), unGPUSupportedLimits, noGPUSupportedLimits, gTypeGPUSupportedLimits
  , GPUTexelCopyBufferInfo(GPUTexelCopyBufferInfo), unGPUTexelCopyBufferInfo, noGPUTexelCopyBufferInfo, gTypeGPUTexelCopyBufferInfo
  , GPUTexelCopyBufferLayout(GPUTexelCopyBufferLayout), unGPUTexelCopyBufferLayout, IsGPUTexelCopyBufferLayout, toGPUTexelCopyBufferLayout, noGPUTexelCopyBufferLayout, gTypeGPUTexelCopyBufferLayout
  , GPUTexelCopyTextureInfo(GPUTexelCopyTextureInfo), unGPUTexelCopyTextureInfo, IsGPUTexelCopyTextureInfo, toGPUTexelCopyTextureInfo, noGPUTexelCopyTextureInfo, gTypeGPUTexelCopyTextureInfo
  , GPUTexture(GPUTexture), unGPUTexture, noGPUTexture, gTypeGPUTexture
  , GPUTextureBindingLayout(GPUTextureBindingLayout), unGPUTextureBindingLayout, noGPUTextureBindingLayout, gTypeGPUTextureBindingLayout
  , GPUTextureDescriptor(GPUTextureDescriptor), unGPUTextureDescriptor, noGPUTextureDescriptor, gTypeGPUTextureDescriptor
  , GPUTextureView(GPUTextureView), unGPUTextureView, noGPUTextureView, gTypeGPUTextureView
  , GPUTextureViewDescriptor(GPUTextureViewDescriptor), unGPUTextureViewDescriptor, noGPUTextureViewDescriptor, gTypeGPUTextureViewDescriptor
  , GPUUncapturedErrorEvent(GPUUncapturedErrorEvent), unGPUUncapturedErrorEvent, noGPUUncapturedErrorEvent, gTypeGPUUncapturedErrorEvent
  , GPUUncapturedErrorEventInit(GPUUncapturedErrorEventInit), unGPUUncapturedErrorEventInit, noGPUUncapturedErrorEventInit, gTypeGPUUncapturedErrorEventInit
  , GPUValidationError(GPUValidationError), unGPUValidationError, noGPUValidationError, gTypeGPUValidationError
  , GPUVertexAttribute(GPUVertexAttribute), unGPUVertexAttribute, noGPUVertexAttribute, gTypeGPUVertexAttribute
  , GPUVertexBufferLayout(GPUVertexBufferLayout), unGPUVertexBufferLayout, noGPUVertexBufferLayout, gTypeGPUVertexBufferLayout
  , GPUVertexState(GPUVertexState), unGPUVertexState, noGPUVertexState, gTypeGPUVertexState
  , GainNode(GainNode), unGainNode, noGainNode, gTypeGainNode
  , GainOptions(GainOptions), unGainOptions, noGainOptions, gTypeGainOptions
  , Gamepad(Gamepad), unGamepad, noGamepad, gTypeGamepad
  , GamepadButton(GamepadButton), unGamepadButton, noGamepadButton, gTypeGamepadButton
  , GamepadEffectParameters(GamepadEffectParameters), unGamepadEffectParameters, noGamepadEffectParameters, gTypeGamepadEffectParameters
  , GamepadEvent(GamepadEvent), unGamepadEvent, noGamepadEvent, gTypeGamepadEvent
  , GamepadEventInit(GamepadEventInit), unGamepadEventInit, noGamepadEventInit, gTypeGamepadEventInit
  , GamepadHapticActuator(GamepadHapticActuator), unGamepadHapticActuator, noGamepadHapticActuator, gTypeGamepadHapticActuator
  , GenericTransformStream(GenericTransformStream), unGenericTransformStream, IsGenericTransformStream, toGenericTransformStream, noGenericTransformStream, gTypeGenericTransformStream
  , Geolocation(Geolocation), unGeolocation, noGeolocation, gTypeGeolocation
  , GeolocationCoordinates(GeolocationCoordinates), unGeolocationCoordinates, noGeolocationCoordinates, gTypeGeolocationCoordinates
  , GeolocationPosition(GeolocationPosition), unGeolocationPosition, noGeolocationPosition, gTypeGeolocationPosition
  , GeolocationPositionError(GeolocationPositionError), unGeolocationPositionError, noGeolocationPositionError, gTypeGeolocationPositionError
  , GetAnimationsOptions(GetAnimationsOptions), unGetAnimationsOptions, noGetAnimationsOptions, gTypeGetAnimationsOptions
  , GetComposedRangesOptions(GetComposedRangesOptions), unGetComposedRangesOptions, noGetComposedRangesOptions, gTypeGetComposedRangesOptions
  , GetHTMLOptions(GetHTMLOptions), unGetHTMLOptions, noGetHTMLOptions, gTypeGetHTMLOptions
  , GetNotificationOptions(GetNotificationOptions), unGetNotificationOptions, noGetNotificationOptions, gTypeGetNotificationOptions
  , GetRootNodeOptions(GetRootNodeOptions), unGetRootNodeOptions, noGetRootNodeOptions, gTypeGetRootNodeOptions
  , GlobalEventHandlers(GlobalEventHandlers), unGlobalEventHandlers, IsGlobalEventHandlers, toGlobalEventHandlers, noGlobalEventHandlers, gTypeGlobalEventHandlers
  , HMACGetSecretInput(HMACGetSecretInput), unHMACGetSecretInput, noHMACGetSecretInput, gTypeHMACGetSecretInput
  , HMACGetSecretOutput(HMACGetSecretOutput), unHMACGetSecretOutput, noHMACGetSecretOutput, gTypeHMACGetSecretOutput
  , HTMLAllCollection(HTMLAllCollection), unHTMLAllCollection, noHTMLAllCollection, gTypeHTMLAllCollection
  , HTMLAnchorElement(HTMLAnchorElement), unHTMLAnchorElement, noHTMLAnchorElement, gTypeHTMLAnchorElement
  , HTMLAreaElement(HTMLAreaElement), unHTMLAreaElement, noHTMLAreaElement, gTypeHTMLAreaElement
  , HTMLAudioElement(HTMLAudioElement), unHTMLAudioElement, noHTMLAudioElement, gTypeHTMLAudioElement
  , HTMLBRElement(HTMLBRElement), unHTMLBRElement, noHTMLBRElement, gTypeHTMLBRElement
  , HTMLBaseElement(HTMLBaseElement), unHTMLBaseElement, noHTMLBaseElement, gTypeHTMLBaseElement
  , HTMLBodyElement(HTMLBodyElement), unHTMLBodyElement, noHTMLBodyElement, gTypeHTMLBodyElement
  , HTMLButtonElement(HTMLButtonElement), unHTMLButtonElement, noHTMLButtonElement, gTypeHTMLButtonElement
  , HTMLCanvasElement(HTMLCanvasElement), unHTMLCanvasElement, noHTMLCanvasElement, gTypeHTMLCanvasElement
  , HTMLCollection(HTMLCollection), unHTMLCollection, IsHTMLCollection, toHTMLCollection, noHTMLCollection, gTypeHTMLCollection
  , HTMLDListElement(HTMLDListElement), unHTMLDListElement, noHTMLDListElement, gTypeHTMLDListElement
  , HTMLDataElement(HTMLDataElement), unHTMLDataElement, noHTMLDataElement, gTypeHTMLDataElement
  , HTMLDataListElement(HTMLDataListElement), unHTMLDataListElement, noHTMLDataListElement, gTypeHTMLDataListElement
  , HTMLDetailsElement(HTMLDetailsElement), unHTMLDetailsElement, noHTMLDetailsElement, gTypeHTMLDetailsElement
  , HTMLDialogElement(HTMLDialogElement), unHTMLDialogElement, noHTMLDialogElement, gTypeHTMLDialogElement
  , HTMLDirectoryElement(HTMLDirectoryElement), unHTMLDirectoryElement, noHTMLDirectoryElement, gTypeHTMLDirectoryElement
  , HTMLDivElement(HTMLDivElement), unHTMLDivElement, noHTMLDivElement, gTypeHTMLDivElement
  , HTMLElement(HTMLElement), unHTMLElement, IsHTMLElement, toHTMLElement, noHTMLElement, gTypeHTMLElement
  , HTMLEmbedElement(HTMLEmbedElement), unHTMLEmbedElement, noHTMLEmbedElement, gTypeHTMLEmbedElement
  , HTMLFieldSetElement(HTMLFieldSetElement), unHTMLFieldSetElement, noHTMLFieldSetElement, gTypeHTMLFieldSetElement
  , HTMLFontElement(HTMLFontElement), unHTMLFontElement, noHTMLFontElement, gTypeHTMLFontElement
  , HTMLFormControlsCollection(HTMLFormControlsCollection), unHTMLFormControlsCollection, noHTMLFormControlsCollection, gTypeHTMLFormControlsCollection
  , HTMLFormElement(HTMLFormElement), unHTMLFormElement, noHTMLFormElement, gTypeHTMLFormElement
  , HTMLFrameElement(HTMLFrameElement), unHTMLFrameElement, noHTMLFrameElement, gTypeHTMLFrameElement
  , HTMLFrameSetElement(HTMLFrameSetElement), unHTMLFrameSetElement, noHTMLFrameSetElement, gTypeHTMLFrameSetElement
  , HTMLHRElement(HTMLHRElement), unHTMLHRElement, noHTMLHRElement, gTypeHTMLHRElement
  , HTMLHeadElement(HTMLHeadElement), unHTMLHeadElement, noHTMLHeadElement, gTypeHTMLHeadElement
  , HTMLHeadingElement(HTMLHeadingElement), unHTMLHeadingElement, noHTMLHeadingElement, gTypeHTMLHeadingElement
  , HTMLHtmlElement(HTMLHtmlElement), unHTMLHtmlElement, noHTMLHtmlElement, gTypeHTMLHtmlElement
  , HTMLHyperlinkElementUtils(HTMLHyperlinkElementUtils), unHTMLHyperlinkElementUtils, IsHTMLHyperlinkElementUtils, toHTMLHyperlinkElementUtils, noHTMLHyperlinkElementUtils, gTypeHTMLHyperlinkElementUtils
  , HTMLIFrameElement(HTMLIFrameElement), unHTMLIFrameElement, noHTMLIFrameElement, gTypeHTMLIFrameElement
  , HTMLImageElement(HTMLImageElement), unHTMLImageElement, noHTMLImageElement, gTypeHTMLImageElement
  , HTMLInputElement(HTMLInputElement), unHTMLInputElement, noHTMLInputElement, gTypeHTMLInputElement
  , HTMLLIElement(HTMLLIElement), unHTMLLIElement, noHTMLLIElement, gTypeHTMLLIElement
  , HTMLLabelElement(HTMLLabelElement), unHTMLLabelElement, noHTMLLabelElement, gTypeHTMLLabelElement
  , HTMLLegendElement(HTMLLegendElement), unHTMLLegendElement, noHTMLLegendElement, gTypeHTMLLegendElement
  , HTMLLinkElement(HTMLLinkElement), unHTMLLinkElement, noHTMLLinkElement, gTypeHTMLLinkElement
  , HTMLMapElement(HTMLMapElement), unHTMLMapElement, noHTMLMapElement, gTypeHTMLMapElement
  , HTMLMarqueeElement(HTMLMarqueeElement), unHTMLMarqueeElement, noHTMLMarqueeElement, gTypeHTMLMarqueeElement
  , HTMLMediaElement(HTMLMediaElement), unHTMLMediaElement, IsHTMLMediaElement, toHTMLMediaElement, noHTMLMediaElement, gTypeHTMLMediaElement
  , HTMLMenuElement(HTMLMenuElement), unHTMLMenuElement, noHTMLMenuElement, gTypeHTMLMenuElement
  , HTMLMetaElement(HTMLMetaElement), unHTMLMetaElement, noHTMLMetaElement, gTypeHTMLMetaElement
  , HTMLMeterElement(HTMLMeterElement), unHTMLMeterElement, noHTMLMeterElement, gTypeHTMLMeterElement
  , HTMLModElement(HTMLModElement), unHTMLModElement, noHTMLModElement, gTypeHTMLModElement
  , HTMLOListElement(HTMLOListElement), unHTMLOListElement, noHTMLOListElement, gTypeHTMLOListElement
  , HTMLObjectElement(HTMLObjectElement), unHTMLObjectElement, noHTMLObjectElement, gTypeHTMLObjectElement
  , HTMLOptGroupElement(HTMLOptGroupElement), unHTMLOptGroupElement, noHTMLOptGroupElement, gTypeHTMLOptGroupElement
  , HTMLOptionElement(HTMLOptionElement), unHTMLOptionElement, noHTMLOptionElement, gTypeHTMLOptionElement
  , HTMLOptionsCollection(HTMLOptionsCollection), unHTMLOptionsCollection, noHTMLOptionsCollection, gTypeHTMLOptionsCollection
  , HTMLOrSVGOrMathMLElement(HTMLOrSVGOrMathMLElement), unHTMLOrSVGOrMathMLElement, IsHTMLOrSVGOrMathMLElement, toHTMLOrSVGOrMathMLElement, noHTMLOrSVGOrMathMLElement, gTypeHTMLOrSVGOrMathMLElement
  , HTMLOutputElement(HTMLOutputElement), unHTMLOutputElement, noHTMLOutputElement, gTypeHTMLOutputElement
  , HTMLParagraphElement(HTMLParagraphElement), unHTMLParagraphElement, noHTMLParagraphElement, gTypeHTMLParagraphElement
  , HTMLParamElement(HTMLParamElement), unHTMLParamElement, noHTMLParamElement, gTypeHTMLParamElement
  , HTMLPictureElement(HTMLPictureElement), unHTMLPictureElement, noHTMLPictureElement, gTypeHTMLPictureElement
  , HTMLPreElement(HTMLPreElement), unHTMLPreElement, noHTMLPreElement, gTypeHTMLPreElement
  , HTMLProgressElement(HTMLProgressElement), unHTMLProgressElement, noHTMLProgressElement, gTypeHTMLProgressElement
  , HTMLQuoteElement(HTMLQuoteElement), unHTMLQuoteElement, noHTMLQuoteElement, gTypeHTMLQuoteElement
  , HTMLScriptElement(HTMLScriptElement), unHTMLScriptElement, noHTMLScriptElement, gTypeHTMLScriptElement
  , HTMLSelectElement(HTMLSelectElement), unHTMLSelectElement, noHTMLSelectElement, gTypeHTMLSelectElement
  , HTMLSelectedContentElement(HTMLSelectedContentElement), unHTMLSelectedContentElement, noHTMLSelectedContentElement, gTypeHTMLSelectedContentElement
  , HTMLSlotElement(HTMLSlotElement), unHTMLSlotElement, noHTMLSlotElement, gTypeHTMLSlotElement
  , HTMLSourceElement(HTMLSourceElement), unHTMLSourceElement, noHTMLSourceElement, gTypeHTMLSourceElement
  , HTMLSpanElement(HTMLSpanElement), unHTMLSpanElement, noHTMLSpanElement, gTypeHTMLSpanElement
  , HTMLStyleElement(HTMLStyleElement), unHTMLStyleElement, noHTMLStyleElement, gTypeHTMLStyleElement
  , HTMLTableCaptionElement(HTMLTableCaptionElement), unHTMLTableCaptionElement, noHTMLTableCaptionElement, gTypeHTMLTableCaptionElement
  , HTMLTableCellElement(HTMLTableCellElement), unHTMLTableCellElement, noHTMLTableCellElement, gTypeHTMLTableCellElement
  , HTMLTableColElement(HTMLTableColElement), unHTMLTableColElement, noHTMLTableColElement, gTypeHTMLTableColElement
  , HTMLTableElement(HTMLTableElement), unHTMLTableElement, noHTMLTableElement, gTypeHTMLTableElement
  , HTMLTableRowElement(HTMLTableRowElement), unHTMLTableRowElement, noHTMLTableRowElement, gTypeHTMLTableRowElement
  , HTMLTableSectionElement(HTMLTableSectionElement), unHTMLTableSectionElement, noHTMLTableSectionElement, gTypeHTMLTableSectionElement
  , HTMLTemplateElement(HTMLTemplateElement), unHTMLTemplateElement, noHTMLTemplateElement, gTypeHTMLTemplateElement
  , HTMLTextAreaElement(HTMLTextAreaElement), unHTMLTextAreaElement, noHTMLTextAreaElement, gTypeHTMLTextAreaElement
  , HTMLTimeElement(HTMLTimeElement), unHTMLTimeElement, noHTMLTimeElement, gTypeHTMLTimeElement
  , HTMLTitleElement(HTMLTitleElement), unHTMLTitleElement, noHTMLTitleElement, gTypeHTMLTitleElement
  , HTMLTrackElement(HTMLTrackElement), unHTMLTrackElement, noHTMLTrackElement, gTypeHTMLTrackElement
  , HTMLUListElement(HTMLUListElement), unHTMLUListElement, noHTMLUListElement, gTypeHTMLUListElement
  , HTMLUnknownElement(HTMLUnknownElement), unHTMLUnknownElement, noHTMLUnknownElement, gTypeHTMLUnknownElement
  , HTMLVideoElement(HTMLVideoElement), unHTMLVideoElement, noHTMLVideoElement, gTypeHTMLVideoElement
  , HashChangeEvent(HashChangeEvent), unHashChangeEvent, noHashChangeEvent, gTypeHashChangeEvent
  , HashChangeEventInit(HashChangeEventInit), unHashChangeEventInit, noHashChangeEventInit, gTypeHashChangeEventInit
  , Headers(Headers), unHeaders, noHeaders, gTypeHeaders
  , HevcEncoderConfig(HevcEncoderConfig), unHevcEncoderConfig, noHevcEncoderConfig, gTypeHevcEncoderConfig
  , Highlight(Highlight), unHighlight, noHighlight, gTypeHighlight
  , HighlightHitResult(HighlightHitResult), unHighlightHitResult, noHighlightHitResult, gTypeHighlightHitResult
  , HighlightRegistry(HighlightRegistry), unHighlightRegistry, noHighlightRegistry, gTypeHighlightRegistry
  , HighlightsFromPointOptions(HighlightsFromPointOptions), unHighlightsFromPointOptions, noHighlightsFromPointOptions, gTypeHighlightsFromPointOptions
  , History(History), unHistory, noHistory, gTypeHistory
  , HyperlinkElementUtils(HyperlinkElementUtils), unHyperlinkElementUtils, IsHyperlinkElementUtils, toHyperlinkElementUtils, noHyperlinkElementUtils, gTypeHyperlinkElementUtils
  , IDBCursor(IDBCursor), unIDBCursor, IsIDBCursor, toIDBCursor, noIDBCursor, gTypeIDBCursor
  , IDBCursorWithValue(IDBCursorWithValue), unIDBCursorWithValue, noIDBCursorWithValue, gTypeIDBCursorWithValue
  , IDBDatabase(IDBDatabase), unIDBDatabase, noIDBDatabase, gTypeIDBDatabase
  , IDBDatabaseInfo(IDBDatabaseInfo), unIDBDatabaseInfo, noIDBDatabaseInfo, gTypeIDBDatabaseInfo
  , IDBFactory(IDBFactory), unIDBFactory, noIDBFactory, gTypeIDBFactory
  , IDBGetAllOptions(IDBGetAllOptions), unIDBGetAllOptions, noIDBGetAllOptions, gTypeIDBGetAllOptions
  , IDBIndex(IDBIndex), unIDBIndex, noIDBIndex, gTypeIDBIndex
  , IDBIndexParameters(IDBIndexParameters), unIDBIndexParameters, noIDBIndexParameters, gTypeIDBIndexParameters
  , IDBKeyRange(IDBKeyRange), unIDBKeyRange, noIDBKeyRange, gTypeIDBKeyRange
  , IDBObjectStore(IDBObjectStore), unIDBObjectStore, noIDBObjectStore, gTypeIDBObjectStore
  , IDBObjectStoreParameters(IDBObjectStoreParameters), unIDBObjectStoreParameters, noIDBObjectStoreParameters, gTypeIDBObjectStoreParameters
  , IDBOpenDBRequest(IDBOpenDBRequest), unIDBOpenDBRequest, noIDBOpenDBRequest, gTypeIDBOpenDBRequest
  , IDBRecord(IDBRecord), unIDBRecord, noIDBRecord, gTypeIDBRecord
  , IDBRequest(IDBRequest), unIDBRequest, IsIDBRequest, toIDBRequest, noIDBRequest, gTypeIDBRequest
  , IDBTransaction(IDBTransaction), unIDBTransaction, noIDBTransaction, gTypeIDBTransaction
  , IDBTransactionOptions(IDBTransactionOptions), unIDBTransactionOptions, noIDBTransactionOptions, gTypeIDBTransactionOptions
  , IDBVersionChangeEvent(IDBVersionChangeEvent), unIDBVersionChangeEvent, noIDBVersionChangeEvent, gTypeIDBVersionChangeEvent
  , IDBVersionChangeEventInit(IDBVersionChangeEventInit), unIDBVersionChangeEventInit, noIDBVersionChangeEventInit, gTypeIDBVersionChangeEventInit
  , IIRFilterNode(IIRFilterNode), unIIRFilterNode, noIIRFilterNode, gTypeIIRFilterNode
  , IIRFilterOptions(IIRFilterOptions), unIIRFilterOptions, noIIRFilterOptions, gTypeIIRFilterOptions
  , IdentityCredentialRequestOptions(IdentityCredentialRequestOptions), unIdentityCredentialRequestOptions, noIdentityCredentialRequestOptions, gTypeIdentityCredentialRequestOptions
  , IdentityProviderConfig(IdentityProviderConfig), unIdentityProviderConfig, IsIdentityProviderConfig, toIdentityProviderConfig, noIdentityProviderConfig, gTypeIdentityProviderConfig
  , IdentityProviderRequestOptions(IdentityProviderRequestOptions), unIdentityProviderRequestOptions, noIdentityProviderRequestOptions, gTypeIdentityProviderRequestOptions
  , IdleDeadline(IdleDeadline), unIdleDeadline, noIdleDeadline, gTypeIdleDeadline
  , IdleRequestOptions(IdleRequestOptions), unIdleRequestOptions, noIdleRequestOptions, gTypeIdleRequestOptions
  , ImageBitmap(ImageBitmap), unImageBitmap, noImageBitmap, gTypeImageBitmap
  , ImageBitmapRenderingContext(ImageBitmapRenderingContext), unImageBitmapRenderingContext, noImageBitmapRenderingContext, gTypeImageBitmapRenderingContext
  , ImageCapture(ImageCapture), unImageCapture, noImageCapture, gTypeImageCapture
  , ImageData(ImageData), unImageData, noImageData, gTypeImageData
  , ImageDataSettings(ImageDataSettings), unImageDataSettings, noImageDataSettings, gTypeImageDataSettings
  , ImageDecodeOptions(ImageDecodeOptions), unImageDecodeOptions, noImageDecodeOptions, gTypeImageDecodeOptions
  , ImageDecodeResult(ImageDecodeResult), unImageDecodeResult, noImageDecodeResult, gTypeImageDecodeResult
  , ImageDecoder(ImageDecoder), unImageDecoder, noImageDecoder, gTypeImageDecoder
  , ImageDecoderInit(ImageDecoderInit), unImageDecoderInit, noImageDecoderInit, gTypeImageDecoderInit
  , ImageEncodeOptions(ImageEncodeOptions), unImageEncodeOptions, noImageEncodeOptions, gTypeImageEncodeOptions
  , ImageTrack(ImageTrack), unImageTrack, noImageTrack, gTypeImageTrack
  , ImageTrackList(ImageTrackList), unImageTrackList, noImageTrackList, gTypeImageTrackList
  , ImportNodeOptions(ImportNodeOptions), unImportNodeOptions, noImportNodeOptions, gTypeImportNodeOptions
  , InputDeviceCapabilities(InputDeviceCapabilities), unInputDeviceCapabilities, noInputDeviceCapabilities, gTypeInputDeviceCapabilities
  , InputDeviceInfo(InputDeviceInfo), unInputDeviceInfo, noInputDeviceInfo, gTypeInputDeviceInfo
  , InputEvent(InputEvent), unInputEvent, noInputEvent, gTypeInputEvent
  , InputEventInit(InputEventInit), unInputEventInit, noInputEventInit, gTypeInputEventInit
  , InstallEvent(InstallEvent), unInstallEvent, noInstallEvent, gTypeInstallEvent
  , IntersectionObserver(IntersectionObserver), unIntersectionObserver, noIntersectionObserver, gTypeIntersectionObserver
  , IntersectionObserverEntry(IntersectionObserverEntry), unIntersectionObserverEntry, noIntersectionObserverEntry, gTypeIntersectionObserverEntry
  , IntersectionObserverEntryInit(IntersectionObserverEntryInit), unIntersectionObserverEntryInit, noIntersectionObserverEntryInit, gTypeIntersectionObserverEntryInit
  , IntersectionObserverInit(IntersectionObserverInit), unIntersectionObserverInit, noIntersectionObserverInit, gTypeIntersectionObserverInit
  , JsonWebKey(JsonWebKey), unJsonWebKey, noJsonWebKey, gTypeJsonWebKey
  , KHR_parallel_shader_compile(KHR_parallel_shader_compile), unKHR_parallel_shader_compile, noKHR_parallel_shader_compile, gTypeKHR_parallel_shader_compile
  , KeySystemTrackConfiguration(KeySystemTrackConfiguration), unKeySystemTrackConfiguration, noKeySystemTrackConfiguration, gTypeKeySystemTrackConfiguration
  , KeyboardEvent(KeyboardEvent), unKeyboardEvent, noKeyboardEvent, gTypeKeyboardEvent
  , KeyboardEventInit(KeyboardEventInit), unKeyboardEventInit, noKeyboardEventInit, gTypeKeyboardEventInit
  , KeyframeAnimationOptions(KeyframeAnimationOptions), unKeyframeAnimationOptions, noKeyframeAnimationOptions, gTypeKeyframeAnimationOptions
  , KeyframeEffect(KeyframeEffect), unKeyframeEffect, noKeyframeEffect, gTypeKeyframeEffect
  , KeyframeEffectOptions(KeyframeEffectOptions), unKeyframeEffectOptions, IsKeyframeEffectOptions, toKeyframeEffectOptions, noKeyframeEffectOptions, gTypeKeyframeEffectOptions
  , LargestContentfulPaint(LargestContentfulPaint), unLargestContentfulPaint, noLargestContentfulPaint, gTypeLargestContentfulPaint
  , LinkStyle(LinkStyle), unLinkStyle, IsLinkStyle, toLinkStyle, noLinkStyle, gTypeLinkStyle
  , Location(Location), unLocation, noLocation, gTypeLocation
  , Lock(Lock), unLock, noLock, gTypeLock
  , LockInfo(LockInfo), unLockInfo, noLockInfo, gTypeLockInfo
  , LockManager(LockManager), unLockManager, noLockManager, gTypeLockManager
  , LockManagerSnapshot(LockManagerSnapshot), unLockManagerSnapshot, noLockManagerSnapshot, gTypeLockManagerSnapshot
  , LockOptions(LockOptions), unLockOptions, noLockOptions, gTypeLockOptions
  , MIDIAccess(MIDIAccess), unMIDIAccess, noMIDIAccess, gTypeMIDIAccess
  , MIDIConnectionEvent(MIDIConnectionEvent), unMIDIConnectionEvent, noMIDIConnectionEvent, gTypeMIDIConnectionEvent
  , MIDIConnectionEventInit(MIDIConnectionEventInit), unMIDIConnectionEventInit, noMIDIConnectionEventInit, gTypeMIDIConnectionEventInit
  , MIDIInput(MIDIInput), unMIDIInput, noMIDIInput, gTypeMIDIInput
  , MIDIInputMap(MIDIInputMap), unMIDIInputMap, noMIDIInputMap, gTypeMIDIInputMap
  , MIDIMessageEvent(MIDIMessageEvent), unMIDIMessageEvent, noMIDIMessageEvent, gTypeMIDIMessageEvent
  , MIDIMessageEventInit(MIDIMessageEventInit), unMIDIMessageEventInit, noMIDIMessageEventInit, gTypeMIDIMessageEventInit
  , MIDIOptions(MIDIOptions), unMIDIOptions, noMIDIOptions, gTypeMIDIOptions
  , MIDIOutput(MIDIOutput), unMIDIOutput, noMIDIOutput, gTypeMIDIOutput
  , MIDIOutputMap(MIDIOutputMap), unMIDIOutputMap, noMIDIOutputMap, gTypeMIDIOutputMap
  , MIDIPort(MIDIPort), unMIDIPort, IsMIDIPort, toMIDIPort, noMIDIPort, gTypeMIDIPort
  , MathMLElement(MathMLElement), unMathMLElement, noMathMLElement, gTypeMathMLElement
  , MediaCapabilities(MediaCapabilities), unMediaCapabilities, noMediaCapabilities, gTypeMediaCapabilities
  , MediaCapabilitiesDecodingInfo(MediaCapabilitiesDecodingInfo), unMediaCapabilitiesDecodingInfo, noMediaCapabilitiesDecodingInfo, gTypeMediaCapabilitiesDecodingInfo
  , MediaCapabilitiesEncodingInfo(MediaCapabilitiesEncodingInfo), unMediaCapabilitiesEncodingInfo, noMediaCapabilitiesEncodingInfo, gTypeMediaCapabilitiesEncodingInfo
  , MediaCapabilitiesInfo(MediaCapabilitiesInfo), unMediaCapabilitiesInfo, IsMediaCapabilitiesInfo, toMediaCapabilitiesInfo, noMediaCapabilitiesInfo, gTypeMediaCapabilitiesInfo
  , MediaCapabilitiesKeySystemConfiguration(MediaCapabilitiesKeySystemConfiguration), unMediaCapabilitiesKeySystemConfiguration, noMediaCapabilitiesKeySystemConfiguration, gTypeMediaCapabilitiesKeySystemConfiguration
  , MediaConfiguration(MediaConfiguration), unMediaConfiguration, IsMediaConfiguration, toMediaConfiguration, noMediaConfiguration, gTypeMediaConfiguration
  , MediaDecodingConfiguration(MediaDecodingConfiguration), unMediaDecodingConfiguration, noMediaDecodingConfiguration, gTypeMediaDecodingConfiguration
  , MediaDeviceInfo(MediaDeviceInfo), unMediaDeviceInfo, IsMediaDeviceInfo, toMediaDeviceInfo, noMediaDeviceInfo, gTypeMediaDeviceInfo
  , MediaDevices(MediaDevices), unMediaDevices, noMediaDevices, gTypeMediaDevices
  , MediaEffectInfo(MediaEffectInfo), unMediaEffectInfo, IsMediaEffectInfo, toMediaEffectInfo, noMediaEffectInfo, gTypeMediaEffectInfo
  , MediaElementAudioSourceNode(MediaElementAudioSourceNode), unMediaElementAudioSourceNode, noMediaElementAudioSourceNode, gTypeMediaElementAudioSourceNode
  , MediaElementAudioSourceOptions(MediaElementAudioSourceOptions), unMediaElementAudioSourceOptions, noMediaElementAudioSourceOptions, gTypeMediaElementAudioSourceOptions
  , MediaEncodingConfiguration(MediaEncodingConfiguration), unMediaEncodingConfiguration, noMediaEncodingConfiguration, gTypeMediaEncodingConfiguration
  , MediaEncryptedEvent(MediaEncryptedEvent), unMediaEncryptedEvent, noMediaEncryptedEvent, gTypeMediaEncryptedEvent
  , MediaEncryptedEventInit(MediaEncryptedEventInit), unMediaEncryptedEventInit, noMediaEncryptedEventInit, gTypeMediaEncryptedEventInit
  , MediaError(MediaError), unMediaError, noMediaError, gTypeMediaError
  , MediaImage(MediaImage), unMediaImage, noMediaImage, gTypeMediaImage
  , MediaKeyMessageEvent(MediaKeyMessageEvent), unMediaKeyMessageEvent, noMediaKeyMessageEvent, gTypeMediaKeyMessageEvent
  , MediaKeyMessageEventInit(MediaKeyMessageEventInit), unMediaKeyMessageEventInit, noMediaKeyMessageEventInit, gTypeMediaKeyMessageEventInit
  , MediaKeySession(MediaKeySession), unMediaKeySession, noMediaKeySession, gTypeMediaKeySession
  , MediaKeyStatusMap(MediaKeyStatusMap), unMediaKeyStatusMap, noMediaKeyStatusMap, gTypeMediaKeyStatusMap
  , MediaKeySystemAccess(MediaKeySystemAccess), unMediaKeySystemAccess, noMediaKeySystemAccess, gTypeMediaKeySystemAccess
  , MediaKeySystemConfiguration(MediaKeySystemConfiguration), unMediaKeySystemConfiguration, noMediaKeySystemConfiguration, gTypeMediaKeySystemConfiguration
  , MediaKeySystemMediaCapability(MediaKeySystemMediaCapability), unMediaKeySystemMediaCapability, noMediaKeySystemMediaCapability, gTypeMediaKeySystemMediaCapability
  , MediaKeys(MediaKeys), unMediaKeys, noMediaKeys, gTypeMediaKeys
  , MediaKeysPolicy(MediaKeysPolicy), unMediaKeysPolicy, noMediaKeysPolicy, gTypeMediaKeysPolicy
  , MediaList(MediaList), unMediaList, noMediaList, gTypeMediaList
  , MediaMetadata(MediaMetadata), unMediaMetadata, noMediaMetadata, gTypeMediaMetadata
  , MediaMetadataInit(MediaMetadataInit), unMediaMetadataInit, noMediaMetadataInit, gTypeMediaMetadataInit
  , MediaPositionState(MediaPositionState), unMediaPositionState, noMediaPositionState, gTypeMediaPositionState
  , MediaQueryList(MediaQueryList), unMediaQueryList, noMediaQueryList, gTypeMediaQueryList
  , MediaQueryListEvent(MediaQueryListEvent), unMediaQueryListEvent, noMediaQueryListEvent, gTypeMediaQueryListEvent
  , MediaQueryListEventInit(MediaQueryListEventInit), unMediaQueryListEventInit, noMediaQueryListEventInit, gTypeMediaQueryListEventInit
  , MediaRecorder(MediaRecorder), unMediaRecorder, noMediaRecorder, gTypeMediaRecorder
  , MediaRecorderOptions(MediaRecorderOptions), unMediaRecorderOptions, noMediaRecorderOptions, gTypeMediaRecorderOptions
  , MediaSession(MediaSession), unMediaSession, noMediaSession, gTypeMediaSession
  , MediaSessionActionDetails(MediaSessionActionDetails), unMediaSessionActionDetails, noMediaSessionActionDetails, gTypeMediaSessionActionDetails
  , MediaSettingsRange(MediaSettingsRange), unMediaSettingsRange, noMediaSettingsRange, gTypeMediaSettingsRange
  , MediaSource(MediaSource), unMediaSource, noMediaSource, gTypeMediaSource
  , MediaSourceHandle(MediaSourceHandle), unMediaSourceHandle, noMediaSourceHandle, gTypeMediaSourceHandle
  , MediaStream(MediaStream), unMediaStream, noMediaStream, gTypeMediaStream
  , MediaStreamAudioDestinationNode(MediaStreamAudioDestinationNode), unMediaStreamAudioDestinationNode, noMediaStreamAudioDestinationNode, gTypeMediaStreamAudioDestinationNode
  , MediaStreamAudioSourceNode(MediaStreamAudioSourceNode), unMediaStreamAudioSourceNode, noMediaStreamAudioSourceNode, gTypeMediaStreamAudioSourceNode
  , MediaStreamAudioSourceOptions(MediaStreamAudioSourceOptions), unMediaStreamAudioSourceOptions, noMediaStreamAudioSourceOptions, gTypeMediaStreamAudioSourceOptions
  , MediaStreamConstraints(MediaStreamConstraints), unMediaStreamConstraints, noMediaStreamConstraints, gTypeMediaStreamConstraints
  , MediaStreamTrack(MediaStreamTrack), unMediaStreamTrack, IsMediaStreamTrack, toMediaStreamTrack, noMediaStreamTrack, gTypeMediaStreamTrack
  , MediaStreamTrackEvent(MediaStreamTrackEvent), unMediaStreamTrackEvent, noMediaStreamTrackEvent, gTypeMediaStreamTrackEvent
  , MediaStreamTrackEventInit(MediaStreamTrackEventInit), unMediaStreamTrackEventInit, noMediaStreamTrackEventInit, gTypeMediaStreamTrackEventInit
  , MediaStreamTrackHandle(MediaStreamTrackHandle), unMediaStreamTrackHandle, noMediaStreamTrackHandle, gTypeMediaStreamTrackHandle
  , MediaStreamTrackProcessor(MediaStreamTrackProcessor), unMediaStreamTrackProcessor, noMediaStreamTrackProcessor, gTypeMediaStreamTrackProcessor
  , MediaStreamTrackProcessorInit(MediaStreamTrackProcessorInit), unMediaStreamTrackProcessorInit, noMediaStreamTrackProcessorInit, gTypeMediaStreamTrackProcessorInit
  , MediaTrackCapabilities(MediaTrackCapabilities), unMediaTrackCapabilities, noMediaTrackCapabilities, gTypeMediaTrackCapabilities
  , MediaTrackConstraintSet(MediaTrackConstraintSet), unMediaTrackConstraintSet, IsMediaTrackConstraintSet, toMediaTrackConstraintSet, noMediaTrackConstraintSet, gTypeMediaTrackConstraintSet
  , MediaTrackConstraints(MediaTrackConstraints), unMediaTrackConstraints, noMediaTrackConstraints, gTypeMediaTrackConstraints
  , MediaTrackSettings(MediaTrackSettings), unMediaTrackSettings, noMediaTrackSettings, gTypeMediaTrackSettings
  , MediaTrackSupportedConstraints(MediaTrackSupportedConstraints), unMediaTrackSupportedConstraints, noMediaTrackSupportedConstraints, gTypeMediaTrackSupportedConstraints
  , MessageChannel(MessageChannel), unMessageChannel, noMessageChannel, gTypeMessageChannel
  , MessageEvent(MessageEvent), unMessageEvent, noMessageEvent, gTypeMessageEvent
  , MessageEventInit(MessageEventInit), unMessageEventInit, noMessageEventInit, gTypeMessageEventInit
  , MessageEventTarget(MessageEventTarget), unMessageEventTarget, IsMessageEventTarget, toMessageEventTarget, noMessageEventTarget, gTypeMessageEventTarget
  , MessagePort(MessagePort), unMessagePort, noMessagePort, gTypeMessagePort
  , MimeType(MimeType), unMimeType, noMimeType, gTypeMimeType
  , MimeTypeArray(MimeTypeArray), unMimeTypeArray, noMimeTypeArray, gTypeMimeTypeArray
  , MouseEvent(MouseEvent), unMouseEvent, IsMouseEvent, toMouseEvent, noMouseEvent, gTypeMouseEvent
  , MouseEventInit(MouseEventInit), unMouseEventInit, IsMouseEventInit, toMouseEventInit, noMouseEventInit, gTypeMouseEventInit
  , MultiCacheQueryOptions(MultiCacheQueryOptions), unMultiCacheQueryOptions, noMultiCacheQueryOptions, gTypeMultiCacheQueryOptions
  , MutationObserver(MutationObserver), unMutationObserver, noMutationObserver, gTypeMutationObserver
  , MutationObserverInit(MutationObserverInit), unMutationObserverInit, noMutationObserverInit, gTypeMutationObserverInit
  , MutationRecord(MutationRecord), unMutationRecord, noMutationRecord, gTypeMutationRecord
  , NamedNodeMap(NamedNodeMap), unNamedNodeMap, noNamedNodeMap, gTypeNamedNodeMap
  , NavigateEvent(NavigateEvent), unNavigateEvent, noNavigateEvent, gTypeNavigateEvent
  , NavigateEventInit(NavigateEventInit), unNavigateEventInit, noNavigateEventInit, gTypeNavigateEventInit
  , Navigation(Navigation), unNavigation, noNavigation, gTypeNavigation
  , NavigationActivation(NavigationActivation), unNavigationActivation, noNavigationActivation, gTypeNavigationActivation
  , NavigationCurrentEntryChangeEvent(NavigationCurrentEntryChangeEvent), unNavigationCurrentEntryChangeEvent, noNavigationCurrentEntryChangeEvent, gTypeNavigationCurrentEntryChangeEvent
  , NavigationCurrentEntryChangeEventInit(NavigationCurrentEntryChangeEventInit), unNavigationCurrentEntryChangeEventInit, noNavigationCurrentEntryChangeEventInit, gTypeNavigationCurrentEntryChangeEventInit
  , NavigationDestination(NavigationDestination), unNavigationDestination, noNavigationDestination, gTypeNavigationDestination
  , NavigationEvent(NavigationEvent), unNavigationEvent, noNavigationEvent, gTypeNavigationEvent
  , NavigationHistoryEntry(NavigationHistoryEntry), unNavigationHistoryEntry, noNavigationHistoryEntry, gTypeNavigationHistoryEntry
  , NavigationInterceptOptions(NavigationInterceptOptions), unNavigationInterceptOptions, noNavigationInterceptOptions, gTypeNavigationInterceptOptions
  , NavigationNavigateOptions(NavigationNavigateOptions), unNavigationNavigateOptions, noNavigationNavigateOptions, gTypeNavigationNavigateOptions
  , NavigationOptions(NavigationOptions), unNavigationOptions, IsNavigationOptions, toNavigationOptions, noNavigationOptions, gTypeNavigationOptions
  , NavigationPrecommitController(NavigationPrecommitController), unNavigationPrecommitController, noNavigationPrecommitController, gTypeNavigationPrecommitController
  , NavigationPreloadManager(NavigationPreloadManager), unNavigationPreloadManager, noNavigationPreloadManager, gTypeNavigationPreloadManager
  , NavigationPreloadState(NavigationPreloadState), unNavigationPreloadState, noNavigationPreloadState, gTypeNavigationPreloadState
  , NavigationReloadOptions(NavigationReloadOptions), unNavigationReloadOptions, noNavigationReloadOptions, gTypeNavigationReloadOptions
  , NavigationResult(NavigationResult), unNavigationResult, noNavigationResult, gTypeNavigationResult
  , NavigationTransition(NavigationTransition), unNavigationTransition, noNavigationTransition, gTypeNavigationTransition
  , NavigationUpdateCurrentEntryOptions(NavigationUpdateCurrentEntryOptions), unNavigationUpdateCurrentEntryOptions, noNavigationUpdateCurrentEntryOptions, gTypeNavigationUpdateCurrentEntryOptions
  , Navigator(Navigator), unNavigator, noNavigator, gTypeNavigator
  , NavigatorAutomationInformation(NavigatorAutomationInformation), unNavigatorAutomationInformation, IsNavigatorAutomationInformation, toNavigatorAutomationInformation, noNavigatorAutomationInformation, gTypeNavigatorAutomationInformation
  , NavigatorBadge(NavigatorBadge), unNavigatorBadge, IsNavigatorBadge, toNavigatorBadge, noNavigatorBadge, gTypeNavigatorBadge
  , NavigatorConcurrentHardware(NavigatorConcurrentHardware), unNavigatorConcurrentHardware, IsNavigatorConcurrentHardware, toNavigatorConcurrentHardware, noNavigatorConcurrentHardware, gTypeNavigatorConcurrentHardware
  , NavigatorContentUtils(NavigatorContentUtils), unNavigatorContentUtils, IsNavigatorContentUtils, toNavigatorContentUtils, noNavigatorContentUtils, gTypeNavigatorContentUtils
  , NavigatorCookies(NavigatorCookies), unNavigatorCookies, IsNavigatorCookies, toNavigatorCookies, noNavigatorCookies, gTypeNavigatorCookies
  , NavigatorGPU(NavigatorGPU), unNavigatorGPU, IsNavigatorGPU, toNavigatorGPU, noNavigatorGPU, gTypeNavigatorGPU
  , NavigatorID(NavigatorID), unNavigatorID, IsNavigatorID, toNavigatorID, noNavigatorID, gTypeNavigatorID
  , NavigatorLanguage(NavigatorLanguage), unNavigatorLanguage, IsNavigatorLanguage, toNavigatorLanguage, noNavigatorLanguage, gTypeNavigatorLanguage
  , NavigatorLocks(NavigatorLocks), unNavigatorLocks, IsNavigatorLocks, toNavigatorLocks, noNavigatorLocks, gTypeNavigatorLocks
  , NavigatorLogin(NavigatorLogin), unNavigatorLogin, noNavigatorLogin, gTypeNavigatorLogin
  , NavigatorOnLine(NavigatorOnLine), unNavigatorOnLine, IsNavigatorOnLine, toNavigatorOnLine, noNavigatorOnLine, gTypeNavigatorOnLine
  , NavigatorPlugins(NavigatorPlugins), unNavigatorPlugins, IsNavigatorPlugins, toNavigatorPlugins, noNavigatorPlugins, gTypeNavigatorPlugins
  , NavigatorStorage(NavigatorStorage), unNavigatorStorage, IsNavigatorStorage, toNavigatorStorage, noNavigatorStorage, gTypeNavigatorStorage
  , Node(Node), unNode, IsNode, toNode, noNode, gTypeNode
  , NodeIterator(NodeIterator), unNodeIterator, noNodeIterator, gTypeNodeIterator
  , NodeList(NodeList), unNodeList, IsNodeList, toNodeList, noNodeList, gTypeNodeList
  , NonDocumentTypeChildNode(NonDocumentTypeChildNode), unNonDocumentTypeChildNode, IsNonDocumentTypeChildNode, toNonDocumentTypeChildNode, noNonDocumentTypeChildNode, gTypeNonDocumentTypeChildNode
  , NonElementParentNode(NonElementParentNode), unNonElementParentNode, IsNonElementParentNode, toNonElementParentNode, noNonElementParentNode, gTypeNonElementParentNode
  , Notification(Notification), unNotification, noNotification, gTypeNotification
  , NotificationAction(NotificationAction), unNotificationAction, noNotificationAction, gTypeNotificationAction
  , NotificationEvent(NotificationEvent), unNotificationEvent, noNotificationEvent, gTypeNotificationEvent
  , NotificationEventInit(NotificationEventInit), unNotificationEventInit, noNotificationEventInit, gTypeNotificationEventInit
  , NotificationOptions(NotificationOptions), unNotificationOptions, noNotificationOptions, gTypeNotificationOptions
  , OES_draw_buffers_indexed(OES_draw_buffers_indexed), unOES_draw_buffers_indexed, noOES_draw_buffers_indexed, gTypeOES_draw_buffers_indexed
  , OES_element_index_uint(OES_element_index_uint), unOES_element_index_uint, noOES_element_index_uint, gTypeOES_element_index_uint
  , OES_fbo_render_mipmap(OES_fbo_render_mipmap), unOES_fbo_render_mipmap, noOES_fbo_render_mipmap, gTypeOES_fbo_render_mipmap
  , OES_standard_derivatives(OES_standard_derivatives), unOES_standard_derivatives, noOES_standard_derivatives, gTypeOES_standard_derivatives
  , OES_texture_float(OES_texture_float), unOES_texture_float, noOES_texture_float, gTypeOES_texture_float
  , OES_texture_float_linear(OES_texture_float_linear), unOES_texture_float_linear, noOES_texture_float_linear, gTypeOES_texture_float_linear
  , OES_texture_half_float(OES_texture_half_float), unOES_texture_half_float, noOES_texture_half_float, gTypeOES_texture_half_float
  , OES_texture_half_float_linear(OES_texture_half_float_linear), unOES_texture_half_float_linear, noOES_texture_half_float_linear, gTypeOES_texture_half_float_linear
  , OES_vertex_array_object(OES_vertex_array_object), unOES_vertex_array_object, noOES_vertex_array_object, gTypeOES_vertex_array_object
  , OTPCredentialRequestOptions(OTPCredentialRequestOptions), unOTPCredentialRequestOptions, noOTPCredentialRequestOptions, gTypeOTPCredentialRequestOptions
  , OVR_multiview2(OVR_multiview2), unOVR_multiview2, noOVR_multiview2, gTypeOVR_multiview2
  , OfflineAudioCompletionEvent(OfflineAudioCompletionEvent), unOfflineAudioCompletionEvent, noOfflineAudioCompletionEvent, gTypeOfflineAudioCompletionEvent
  , OfflineAudioCompletionEventInit(OfflineAudioCompletionEventInit), unOfflineAudioCompletionEventInit, noOfflineAudioCompletionEventInit, gTypeOfflineAudioCompletionEventInit
  , OfflineAudioContext(OfflineAudioContext), unOfflineAudioContext, noOfflineAudioContext, gTypeOfflineAudioContext
  , OfflineAudioContextOptions(OfflineAudioContextOptions), unOfflineAudioContextOptions, noOfflineAudioContextOptions, gTypeOfflineAudioContextOptions
  , OffscreenCanvas(OffscreenCanvas), unOffscreenCanvas, noOffscreenCanvas, gTypeOffscreenCanvas
  , OffscreenCanvasRenderingContext2D(OffscreenCanvasRenderingContext2D), unOffscreenCanvasRenderingContext2D, noOffscreenCanvasRenderingContext2D, gTypeOffscreenCanvasRenderingContext2D
  , OptionalEffectTiming(OptionalEffectTiming), unOptionalEffectTiming, noOptionalEffectTiming, gTypeOptionalEffectTiming
  , OpusEncoderConfig(OpusEncoderConfig), unOpusEncoderConfig, noOpusEncoderConfig, gTypeOpusEncoderConfig
  , Origin(Origin), unOrigin, noOrigin, gTypeOrigin
  , OscillatorNode(OscillatorNode), unOscillatorNode, noOscillatorNode, gTypeOscillatorNode
  , OscillatorOptions(OscillatorOptions), unOscillatorOptions, noOscillatorOptions, gTypeOscillatorOptions
  , OverconstrainedError(OverconstrainedError), unOverconstrainedError, noOverconstrainedError, gTypeOverconstrainedError
  , PageRevealEvent(PageRevealEvent), unPageRevealEvent, noPageRevealEvent, gTypePageRevealEvent
  , PageRevealEventInit(PageRevealEventInit), unPageRevealEventInit, noPageRevealEventInit, gTypePageRevealEventInit
  , PageSwapEvent(PageSwapEvent), unPageSwapEvent, noPageSwapEvent, gTypePageSwapEvent
  , PageSwapEventInit(PageSwapEventInit), unPageSwapEventInit, noPageSwapEventInit, gTypePageSwapEventInit
  , PageTransitionEvent(PageTransitionEvent), unPageTransitionEvent, noPageTransitionEvent, gTypePageTransitionEvent
  , PageTransitionEventInit(PageTransitionEventInit), unPageTransitionEventInit, noPageTransitionEventInit, gTypePageTransitionEventInit
  , PaintTimingMixin(PaintTimingMixin), unPaintTimingMixin, IsPaintTimingMixin, toPaintTimingMixin, noPaintTimingMixin, gTypePaintTimingMixin
  , PannerNode(PannerNode), unPannerNode, noPannerNode, gTypePannerNode
  , PannerOptions(PannerOptions), unPannerOptions, noPannerOptions, gTypePannerOptions
  , ParentNode(ParentNode), unParentNode, IsParentNode, toParentNode, noParentNode, gTypeParentNode
  , ParseHTMLUnsafeOptions(ParseHTMLUnsafeOptions), unParseHTMLUnsafeOptions, noParseHTMLUnsafeOptions, gTypeParseHTMLUnsafeOptions
  , PasswordCredential(PasswordCredential), unPasswordCredential, noPasswordCredential, gTypePasswordCredential
  , PasswordCredentialData(PasswordCredentialData), unPasswordCredentialData, noPasswordCredentialData, gTypePasswordCredentialData
  , Path2D(Path2D), unPath2D, noPath2D, gTypePath2D
  , PayerErrors(PayerErrors), unPayerErrors, noPayerErrors, gTypePayerErrors
  , PaymentCompleteDetails(PaymentCompleteDetails), unPaymentCompleteDetails, noPaymentCompleteDetails, gTypePaymentCompleteDetails
  , PaymentCredentialInstrument(PaymentCredentialInstrument), unPaymentCredentialInstrument, noPaymentCredentialInstrument, gTypePaymentCredentialInstrument
  , PaymentCurrencyAmount(PaymentCurrencyAmount), unPaymentCurrencyAmount, noPaymentCurrencyAmount, gTypePaymentCurrencyAmount
  , PaymentDetailsBase(PaymentDetailsBase), unPaymentDetailsBase, IsPaymentDetailsBase, toPaymentDetailsBase, noPaymentDetailsBase, gTypePaymentDetailsBase
  , PaymentDetailsInit(PaymentDetailsInit), unPaymentDetailsInit, noPaymentDetailsInit, gTypePaymentDetailsInit
  , PaymentDetailsModifier(PaymentDetailsModifier), unPaymentDetailsModifier, noPaymentDetailsModifier, gTypePaymentDetailsModifier
  , PaymentDetailsUpdate(PaymentDetailsUpdate), unPaymentDetailsUpdate, noPaymentDetailsUpdate, gTypePaymentDetailsUpdate
  , PaymentEntityLogo(PaymentEntityLogo), unPaymentEntityLogo, noPaymentEntityLogo, gTypePaymentEntityLogo
  , PaymentItem(PaymentItem), unPaymentItem, noPaymentItem, gTypePaymentItem
  , PaymentMethodChangeEvent(PaymentMethodChangeEvent), unPaymentMethodChangeEvent, noPaymentMethodChangeEvent, gTypePaymentMethodChangeEvent
  , PaymentMethodChangeEventInit(PaymentMethodChangeEventInit), unPaymentMethodChangeEventInit, noPaymentMethodChangeEventInit, gTypePaymentMethodChangeEventInit
  , PaymentMethodData(PaymentMethodData), unPaymentMethodData, noPaymentMethodData, gTypePaymentMethodData
  , PaymentOptions(PaymentOptions), unPaymentOptions, noPaymentOptions, gTypePaymentOptions
  , PaymentRequest(PaymentRequest), unPaymentRequest, noPaymentRequest, gTypePaymentRequest
  , PaymentRequestUpdateEvent(PaymentRequestUpdateEvent), unPaymentRequestUpdateEvent, IsPaymentRequestUpdateEvent, toPaymentRequestUpdateEvent, noPaymentRequestUpdateEvent, gTypePaymentRequestUpdateEvent
  , PaymentRequestUpdateEventInit(PaymentRequestUpdateEventInit), unPaymentRequestUpdateEventInit, IsPaymentRequestUpdateEventInit, toPaymentRequestUpdateEventInit, noPaymentRequestUpdateEventInit, gTypePaymentRequestUpdateEventInit
  , PaymentResponse(PaymentResponse), unPaymentResponse, noPaymentResponse, gTypePaymentResponse
  , PaymentShippingOption(PaymentShippingOption), unPaymentShippingOption, noPaymentShippingOption, gTypePaymentShippingOption
  , PaymentValidationErrors(PaymentValidationErrors), unPaymentValidationErrors, noPaymentValidationErrors, gTypePaymentValidationErrors
  , Performance(Performance), unPerformance, noPerformance, gTypePerformance
  , PerformanceEntry(PerformanceEntry), unPerformanceEntry, IsPerformanceEntry, toPerformanceEntry, noPerformanceEntry, gTypePerformanceEntry
  , PerformanceEventTiming(PerformanceEventTiming), unPerformanceEventTiming, noPerformanceEventTiming, gTypePerformanceEventTiming
  , PerformanceMark(PerformanceMark), unPerformanceMark, noPerformanceMark, gTypePerformanceMark
  , PerformanceMarkOptions(PerformanceMarkOptions), unPerformanceMarkOptions, noPerformanceMarkOptions, gTypePerformanceMarkOptions
  , PerformanceMeasure(PerformanceMeasure), unPerformanceMeasure, noPerformanceMeasure, gTypePerformanceMeasure
  , PerformanceMeasureOptions(PerformanceMeasureOptions), unPerformanceMeasureOptions, noPerformanceMeasureOptions, gTypePerformanceMeasureOptions
  , PerformanceNavigation(PerformanceNavigation), unPerformanceNavigation, noPerformanceNavigation, gTypePerformanceNavigation
  , PerformanceNavigationTiming(PerformanceNavigationTiming), unPerformanceNavigationTiming, noPerformanceNavigationTiming, gTypePerformanceNavigationTiming
  , PerformanceObserver(PerformanceObserver), unPerformanceObserver, noPerformanceObserver, gTypePerformanceObserver
  , PerformanceObserverCallbackOptions(PerformanceObserverCallbackOptions), unPerformanceObserverCallbackOptions, noPerformanceObserverCallbackOptions, gTypePerformanceObserverCallbackOptions
  , PerformanceObserverEntryList(PerformanceObserverEntryList), unPerformanceObserverEntryList, noPerformanceObserverEntryList, gTypePerformanceObserverEntryList
  , PerformanceObserverInit(PerformanceObserverInit), unPerformanceObserverInit, noPerformanceObserverInit, gTypePerformanceObserverInit
  , PerformancePaintTiming(PerformancePaintTiming), unPerformancePaintTiming, noPerformancePaintTiming, gTypePerformancePaintTiming
  , PerformanceResourceTiming(PerformanceResourceTiming), unPerformanceResourceTiming, IsPerformanceResourceTiming, toPerformanceResourceTiming, noPerformanceResourceTiming, gTypePerformanceResourceTiming
  , PerformanceServerTiming(PerformanceServerTiming), unPerformanceServerTiming, noPerformanceServerTiming, gTypePerformanceServerTiming
  , PerformanceTiming(PerformanceTiming), unPerformanceTiming, noPerformanceTiming, gTypePerformanceTiming
  , PeriodicWave(PeriodicWave), unPeriodicWave, noPeriodicWave, gTypePeriodicWave
  , PeriodicWaveConstraints(PeriodicWaveConstraints), unPeriodicWaveConstraints, IsPeriodicWaveConstraints, toPeriodicWaveConstraints, noPeriodicWaveConstraints, gTypePeriodicWaveConstraints
  , PeriodicWaveOptions(PeriodicWaveOptions), unPeriodicWaveOptions, noPeriodicWaveOptions, gTypePeriodicWaveOptions
  , PermissionStatus(PermissionStatus), unPermissionStatus, noPermissionStatus, gTypePermissionStatus
  , Permissions(Permissions), unPermissions, noPermissions, gTypePermissions
  , PhotoCapabilities(PhotoCapabilities), unPhotoCapabilities, noPhotoCapabilities, gTypePhotoCapabilities
  , PhotoSettings(PhotoSettings), unPhotoSettings, noPhotoSettings, gTypePhotoSettings
  , PictureInPictureEvent(PictureInPictureEvent), unPictureInPictureEvent, noPictureInPictureEvent, gTypePictureInPictureEvent
  , PictureInPictureEventInit(PictureInPictureEventInit), unPictureInPictureEventInit, noPictureInPictureEventInit, gTypePictureInPictureEventInit
  , PictureInPictureWindow(PictureInPictureWindow), unPictureInPictureWindow, noPictureInPictureWindow, gTypePictureInPictureWindow
  , PlaneLayout(PlaneLayout), unPlaneLayout, noPlaneLayout, gTypePlaneLayout
  , Plugin(Plugin), unPlugin, noPlugin, gTypePlugin
  , PluginArray(PluginArray), unPluginArray, noPluginArray, gTypePluginArray
  , Point2D(Point2D), unPoint2D, noPoint2D, gTypePoint2D
  , PointerEvent(PointerEvent), unPointerEvent, noPointerEvent, gTypePointerEvent
  , PointerEventInit(PointerEventInit), unPointerEventInit, noPointerEventInit, gTypePointerEventInit
  , PointerLockOptions(PointerLockOptions), unPointerLockOptions, noPointerLockOptions, gTypePointerLockOptions
  , PopStateEvent(PopStateEvent), unPopStateEvent, noPopStateEvent, gTypePopStateEvent
  , PopStateEventInit(PopStateEventInit), unPopStateEventInit, noPopStateEventInit, gTypePopStateEventInit
  , PopoverTargetAttributes(PopoverTargetAttributes), unPopoverTargetAttributes, IsPopoverTargetAttributes, toPopoverTargetAttributes, noPopoverTargetAttributes, gTypePopoverTargetAttributes
  , PositionOptions(PositionOptions), unPositionOptions, noPositionOptions, gTypePositionOptions
  , PrivateToken(PrivateToken), unPrivateToken, noPrivateToken, gTypePrivateToken
  , ProcessingInstruction(ProcessingInstruction), unProcessingInstruction, noProcessingInstruction, gTypeProcessingInstruction
  , ProgressEvent(ProgressEvent), unProgressEvent, noProgressEvent, gTypeProgressEvent
  , ProgressEventInit(ProgressEventInit), unProgressEventInit, noProgressEventInit, gTypeProgressEventInit
  , PromiseRejectionEvent(PromiseRejectionEvent), unPromiseRejectionEvent, noPromiseRejectionEvent, gTypePromiseRejectionEvent
  , PromiseRejectionEventInit(PromiseRejectionEventInit), unPromiseRejectionEventInit, noPromiseRejectionEventInit, gTypePromiseRejectionEventInit
  , PropertyDefinition(PropertyDefinition), unPropertyDefinition, noPropertyDefinition, gTypePropertyDefinition
  , PublicKeyCredential(PublicKeyCredential), unPublicKeyCredential, noPublicKeyCredential, gTypePublicKeyCredential
  , PublicKeyCredentialCreationOptions(PublicKeyCredentialCreationOptions), unPublicKeyCredentialCreationOptions, noPublicKeyCredentialCreationOptions, gTypePublicKeyCredentialCreationOptions
  , PublicKeyCredentialCreationOptionsJSON(PublicKeyCredentialCreationOptionsJSON), unPublicKeyCredentialCreationOptionsJSON, noPublicKeyCredentialCreationOptionsJSON, gTypePublicKeyCredentialCreationOptionsJSON
  , PublicKeyCredentialDescriptor(PublicKeyCredentialDescriptor), unPublicKeyCredentialDescriptor, noPublicKeyCredentialDescriptor, gTypePublicKeyCredentialDescriptor
  , PublicKeyCredentialDescriptorJSON(PublicKeyCredentialDescriptorJSON), unPublicKeyCredentialDescriptorJSON, noPublicKeyCredentialDescriptorJSON, gTypePublicKeyCredentialDescriptorJSON
  , PublicKeyCredentialEntity(PublicKeyCredentialEntity), unPublicKeyCredentialEntity, IsPublicKeyCredentialEntity, toPublicKeyCredentialEntity, noPublicKeyCredentialEntity, gTypePublicKeyCredentialEntity
  , PublicKeyCredentialParameters(PublicKeyCredentialParameters), unPublicKeyCredentialParameters, noPublicKeyCredentialParameters, gTypePublicKeyCredentialParameters
  , PublicKeyCredentialRequestOptions(PublicKeyCredentialRequestOptions), unPublicKeyCredentialRequestOptions, noPublicKeyCredentialRequestOptions, gTypePublicKeyCredentialRequestOptions
  , PublicKeyCredentialRequestOptionsJSON(PublicKeyCredentialRequestOptionsJSON), unPublicKeyCredentialRequestOptionsJSON, noPublicKeyCredentialRequestOptionsJSON, gTypePublicKeyCredentialRequestOptionsJSON
  , PublicKeyCredentialRpEntity(PublicKeyCredentialRpEntity), unPublicKeyCredentialRpEntity, noPublicKeyCredentialRpEntity, gTypePublicKeyCredentialRpEntity
  , PublicKeyCredentialUserEntity(PublicKeyCredentialUserEntity), unPublicKeyCredentialUserEntity, noPublicKeyCredentialUserEntity, gTypePublicKeyCredentialUserEntity
  , PublicKeyCredentialUserEntityJSON(PublicKeyCredentialUserEntityJSON), unPublicKeyCredentialUserEntityJSON, noPublicKeyCredentialUserEntityJSON, gTypePublicKeyCredentialUserEntityJSON
  , PushEvent(PushEvent), unPushEvent, noPushEvent, gTypePushEvent
  , PushEventInit(PushEventInit), unPushEventInit, noPushEventInit, gTypePushEventInit
  , PushManager(PushManager), unPushManager, noPushManager, gTypePushManager
  , PushManagerAttribute(PushManagerAttribute), unPushManagerAttribute, IsPushManagerAttribute, toPushManagerAttribute, noPushManagerAttribute, gTypePushManagerAttribute
  , PushMessageData(PushMessageData), unPushMessageData, noPushMessageData, gTypePushMessageData
  , PushSubscription(PushSubscription), unPushSubscription, noPushSubscription, gTypePushSubscription
  , PushSubscriptionChangeEvent(PushSubscriptionChangeEvent), unPushSubscriptionChangeEvent, noPushSubscriptionChangeEvent, gTypePushSubscriptionChangeEvent
  , PushSubscriptionChangeEventInit(PushSubscriptionChangeEventInit), unPushSubscriptionChangeEventInit, noPushSubscriptionChangeEventInit, gTypePushSubscriptionChangeEventInit
  , PushSubscriptionJSON(PushSubscriptionJSON), unPushSubscriptionJSON, noPushSubscriptionJSON, gTypePushSubscriptionJSON
  , PushSubscriptionKeys(PushSubscriptionKeys), unPushSubscriptionKeys, noPushSubscriptionKeys, gTypePushSubscriptionKeys
  , PushSubscriptionOptions(PushSubscriptionOptions), unPushSubscriptionOptions, noPushSubscriptionOptions, gTypePushSubscriptionOptions
  , PushSubscriptionOptionsInit(PushSubscriptionOptionsInit), unPushSubscriptionOptionsInit, noPushSubscriptionOptionsInit, gTypePushSubscriptionOptionsInit
  , QueuingStrategy(QueuingStrategy), unQueuingStrategy, noQueuingStrategy, gTypeQueuingStrategy
  , QueuingStrategyInit(QueuingStrategyInit), unQueuingStrategyInit, noQueuingStrategyInit, gTypeQueuingStrategyInit
  , RTCAnswerOptions(RTCAnswerOptions), unRTCAnswerOptions, noRTCAnswerOptions, gTypeRTCAnswerOptions
  , RTCCertificate(RTCCertificate), unRTCCertificate, noRTCCertificate, gTypeRTCCertificate
  , RTCConfiguration(RTCConfiguration), unRTCConfiguration, noRTCConfiguration, gTypeRTCConfiguration
  , RTCDTMFSender(RTCDTMFSender), unRTCDTMFSender, noRTCDTMFSender, gTypeRTCDTMFSender
  , RTCDTMFToneChangeEvent(RTCDTMFToneChangeEvent), unRTCDTMFToneChangeEvent, noRTCDTMFToneChangeEvent, gTypeRTCDTMFToneChangeEvent
  , RTCDTMFToneChangeEventInit(RTCDTMFToneChangeEventInit), unRTCDTMFToneChangeEventInit, noRTCDTMFToneChangeEventInit, gTypeRTCDTMFToneChangeEventInit
  , RTCDataChannel(RTCDataChannel), unRTCDataChannel, noRTCDataChannel, gTypeRTCDataChannel
  , RTCDataChannelEvent(RTCDataChannelEvent), unRTCDataChannelEvent, noRTCDataChannelEvent, gTypeRTCDataChannelEvent
  , RTCDataChannelEventInit(RTCDataChannelEventInit), unRTCDataChannelEventInit, noRTCDataChannelEventInit, gTypeRTCDataChannelEventInit
  , RTCDataChannelInit(RTCDataChannelInit), unRTCDataChannelInit, noRTCDataChannelInit, gTypeRTCDataChannelInit
  , RTCDtlsFingerprint(RTCDtlsFingerprint), unRTCDtlsFingerprint, noRTCDtlsFingerprint, gTypeRTCDtlsFingerprint
  , RTCDtlsTransport(RTCDtlsTransport), unRTCDtlsTransport, noRTCDtlsTransport, gTypeRTCDtlsTransport
  , RTCEncodedAudioFrame(RTCEncodedAudioFrame), unRTCEncodedAudioFrame, noRTCEncodedAudioFrame, gTypeRTCEncodedAudioFrame
  , RTCEncodedAudioFrameMetadata(RTCEncodedAudioFrameMetadata), unRTCEncodedAudioFrameMetadata, noRTCEncodedAudioFrameMetadata, gTypeRTCEncodedAudioFrameMetadata
  , RTCEncodedAudioFrameOptions(RTCEncodedAudioFrameOptions), unRTCEncodedAudioFrameOptions, noRTCEncodedAudioFrameOptions, gTypeRTCEncodedAudioFrameOptions
  , RTCEncodedFrameMetadata(RTCEncodedFrameMetadata), unRTCEncodedFrameMetadata, IsRTCEncodedFrameMetadata, toRTCEncodedFrameMetadata, noRTCEncodedFrameMetadata, gTypeRTCEncodedFrameMetadata
  , RTCEncodedVideoFrame(RTCEncodedVideoFrame), unRTCEncodedVideoFrame, noRTCEncodedVideoFrame, gTypeRTCEncodedVideoFrame
  , RTCEncodedVideoFrameMetadata(RTCEncodedVideoFrameMetadata), unRTCEncodedVideoFrameMetadata, noRTCEncodedVideoFrameMetadata, gTypeRTCEncodedVideoFrameMetadata
  , RTCEncodedVideoFrameOptions(RTCEncodedVideoFrameOptions), unRTCEncodedVideoFrameOptions, noRTCEncodedVideoFrameOptions, gTypeRTCEncodedVideoFrameOptions
  , RTCError(RTCError), unRTCError, noRTCError, gTypeRTCError
  , RTCErrorEvent(RTCErrorEvent), unRTCErrorEvent, noRTCErrorEvent, gTypeRTCErrorEvent
  , RTCErrorEventInit(RTCErrorEventInit), unRTCErrorEventInit, noRTCErrorEventInit, gTypeRTCErrorEventInit
  , RTCErrorInit(RTCErrorInit), unRTCErrorInit, noRTCErrorInit, gTypeRTCErrorInit
  , RTCIceCandidate(RTCIceCandidate), unRTCIceCandidate, noRTCIceCandidate, gTypeRTCIceCandidate
  , RTCIceCandidateInit(RTCIceCandidateInit), unRTCIceCandidateInit, IsRTCIceCandidateInit, toRTCIceCandidateInit, noRTCIceCandidateInit, gTypeRTCIceCandidateInit
  , RTCIceCandidatePair(RTCIceCandidatePair), unRTCIceCandidatePair, noRTCIceCandidatePair, gTypeRTCIceCandidatePair
  , RTCIceServer(RTCIceServer), unRTCIceServer, noRTCIceServer, gTypeRTCIceServer
  , RTCIceTransport(RTCIceTransport), unRTCIceTransport, noRTCIceTransport, gTypeRTCIceTransport
  , RTCLocalIceCandidateInit(RTCLocalIceCandidateInit), unRTCLocalIceCandidateInit, noRTCLocalIceCandidateInit, gTypeRTCLocalIceCandidateInit
  , RTCLocalSessionDescriptionInit(RTCLocalSessionDescriptionInit), unRTCLocalSessionDescriptionInit, noRTCLocalSessionDescriptionInit, gTypeRTCLocalSessionDescriptionInit
  , RTCOfferAnswerOptions(RTCOfferAnswerOptions), unRTCOfferAnswerOptions, IsRTCOfferAnswerOptions, toRTCOfferAnswerOptions, noRTCOfferAnswerOptions, gTypeRTCOfferAnswerOptions
  , RTCOfferOptions(RTCOfferOptions), unRTCOfferOptions, noRTCOfferOptions, gTypeRTCOfferOptions
  , RTCPeerConnection(RTCPeerConnection), unRTCPeerConnection, noRTCPeerConnection, gTypeRTCPeerConnection
  , RTCPeerConnectionIceErrorEvent(RTCPeerConnectionIceErrorEvent), unRTCPeerConnectionIceErrorEvent, noRTCPeerConnectionIceErrorEvent, gTypeRTCPeerConnectionIceErrorEvent
  , RTCPeerConnectionIceErrorEventInit(RTCPeerConnectionIceErrorEventInit), unRTCPeerConnectionIceErrorEventInit, noRTCPeerConnectionIceErrorEventInit, gTypeRTCPeerConnectionIceErrorEventInit
  , RTCPeerConnectionIceEvent(RTCPeerConnectionIceEvent), unRTCPeerConnectionIceEvent, noRTCPeerConnectionIceEvent, gTypeRTCPeerConnectionIceEvent
  , RTCPeerConnectionIceEventInit(RTCPeerConnectionIceEventInit), unRTCPeerConnectionIceEventInit, noRTCPeerConnectionIceEventInit, gTypeRTCPeerConnectionIceEventInit
  , RTCRtcpParameters(RTCRtcpParameters), unRTCRtcpParameters, noRTCRtcpParameters, gTypeRTCRtcpParameters
  , RTCRtpCapabilities(RTCRtpCapabilities), unRTCRtpCapabilities, noRTCRtpCapabilities, gTypeRTCRtpCapabilities
  , RTCRtpCodec(RTCRtpCodec), unRTCRtpCodec, IsRTCRtpCodec, toRTCRtpCodec, noRTCRtpCodec, gTypeRTCRtpCodec
  , RTCRtpCodecParameters(RTCRtpCodecParameters), unRTCRtpCodecParameters, noRTCRtpCodecParameters, gTypeRTCRtpCodecParameters
  , RTCRtpCodingParameters(RTCRtpCodingParameters), unRTCRtpCodingParameters, IsRTCRtpCodingParameters, toRTCRtpCodingParameters, noRTCRtpCodingParameters, gTypeRTCRtpCodingParameters
  , RTCRtpContributingSource(RTCRtpContributingSource), unRTCRtpContributingSource, IsRTCRtpContributingSource, toRTCRtpContributingSource, noRTCRtpContributingSource, gTypeRTCRtpContributingSource
  , RTCRtpEncodingParameters(RTCRtpEncodingParameters), unRTCRtpEncodingParameters, noRTCRtpEncodingParameters, gTypeRTCRtpEncodingParameters
  , RTCRtpHeaderExtensionCapability(RTCRtpHeaderExtensionCapability), unRTCRtpHeaderExtensionCapability, noRTCRtpHeaderExtensionCapability, gTypeRTCRtpHeaderExtensionCapability
  , RTCRtpHeaderExtensionParameters(RTCRtpHeaderExtensionParameters), unRTCRtpHeaderExtensionParameters, noRTCRtpHeaderExtensionParameters, gTypeRTCRtpHeaderExtensionParameters
  , RTCRtpParameters(RTCRtpParameters), unRTCRtpParameters, IsRTCRtpParameters, toRTCRtpParameters, noRTCRtpParameters, gTypeRTCRtpParameters
  , RTCRtpReceiveParameters(RTCRtpReceiveParameters), unRTCRtpReceiveParameters, noRTCRtpReceiveParameters, gTypeRTCRtpReceiveParameters
  , RTCRtpReceiver(RTCRtpReceiver), unRTCRtpReceiver, noRTCRtpReceiver, gTypeRTCRtpReceiver
  , RTCRtpSFrameDecryptor(RTCRtpSFrameDecryptor), unRTCRtpSFrameDecryptor, noRTCRtpSFrameDecryptor, gTypeRTCRtpSFrameDecryptor
  , RTCRtpSFrameEncryptor(RTCRtpSFrameEncryptor), unRTCRtpSFrameEncryptor, noRTCRtpSFrameEncryptor, gTypeRTCRtpSFrameEncryptor
  , RTCRtpScriptTransform(RTCRtpScriptTransform), unRTCRtpScriptTransform, noRTCRtpScriptTransform, gTypeRTCRtpScriptTransform
  , RTCRtpScriptTransformer(RTCRtpScriptTransformer), unRTCRtpScriptTransformer, noRTCRtpScriptTransformer, gTypeRTCRtpScriptTransformer
  , RTCRtpSendParameters(RTCRtpSendParameters), unRTCRtpSendParameters, noRTCRtpSendParameters, gTypeRTCRtpSendParameters
  , RTCRtpSender(RTCRtpSender), unRTCRtpSender, noRTCRtpSender, gTypeRTCRtpSender
  , RTCRtpSynchronizationSource(RTCRtpSynchronizationSource), unRTCRtpSynchronizationSource, noRTCRtpSynchronizationSource, gTypeRTCRtpSynchronizationSource
  , RTCRtpTransceiver(RTCRtpTransceiver), unRTCRtpTransceiver, noRTCRtpTransceiver, gTypeRTCRtpTransceiver
  , RTCRtpTransceiverInit(RTCRtpTransceiverInit), unRTCRtpTransceiverInit, noRTCRtpTransceiverInit, gTypeRTCRtpTransceiverInit
  , RTCSctpTransport(RTCSctpTransport), unRTCSctpTransport, noRTCSctpTransport, gTypeRTCSctpTransport
  , RTCSessionDescription(RTCSessionDescription), unRTCSessionDescription, noRTCSessionDescription, gTypeRTCSessionDescription
  , RTCSessionDescriptionInit(RTCSessionDescriptionInit), unRTCSessionDescriptionInit, noRTCSessionDescriptionInit, gTypeRTCSessionDescriptionInit
  , RTCSetParameterOptions(RTCSetParameterOptions), unRTCSetParameterOptions, noRTCSetParameterOptions, gTypeRTCSetParameterOptions
  , RTCStatsReport(RTCStatsReport), unRTCStatsReport, noRTCStatsReport, gTypeRTCStatsReport
  , RTCTrackEvent(RTCTrackEvent), unRTCTrackEvent, noRTCTrackEvent, gTypeRTCTrackEvent
  , RTCTrackEventInit(RTCTrackEventInit), unRTCTrackEventInit, noRTCTrackEventInit, gTypeRTCTrackEventInit
  , RTCTransformEvent(RTCTransformEvent), unRTCTransformEvent, noRTCTransformEvent, gTypeRTCTransformEvent
  , RadioNodeList(RadioNodeList), unRadioNodeList, noRadioNodeList, gTypeRadioNodeList
  , Range(Range), unRange, noRange, gTypeRange
  , ReadableByteStreamController(ReadableByteStreamController), unReadableByteStreamController, noReadableByteStreamController, gTypeReadableByteStreamController
  , ReadableStream(ReadableStream), unReadableStream, IsReadableStream, toReadableStream, noReadableStream, gTypeReadableStream
  , ReadableStreamBYOBReader(ReadableStreamBYOBReader), unReadableStreamBYOBReader, noReadableStreamBYOBReader, gTypeReadableStreamBYOBReader
  , ReadableStreamBYOBReaderReadOptions(ReadableStreamBYOBReaderReadOptions), unReadableStreamBYOBReaderReadOptions, noReadableStreamBYOBReaderReadOptions, gTypeReadableStreamBYOBReaderReadOptions
  , ReadableStreamBYOBRequest(ReadableStreamBYOBRequest), unReadableStreamBYOBRequest, noReadableStreamBYOBRequest, gTypeReadableStreamBYOBRequest
  , ReadableStreamDefaultController(ReadableStreamDefaultController), unReadableStreamDefaultController, noReadableStreamDefaultController, gTypeReadableStreamDefaultController
  , ReadableStreamDefaultReader(ReadableStreamDefaultReader), unReadableStreamDefaultReader, noReadableStreamDefaultReader, gTypeReadableStreamDefaultReader
  , ReadableStreamGenericReader(ReadableStreamGenericReader), unReadableStreamGenericReader, IsReadableStreamGenericReader, toReadableStreamGenericReader, noReadableStreamGenericReader, gTypeReadableStreamGenericReader
  , ReadableStreamGetReaderOptions(ReadableStreamGetReaderOptions), unReadableStreamGetReaderOptions, noReadableStreamGetReaderOptions, gTypeReadableStreamGetReaderOptions
  , ReadableStreamReadResult(ReadableStreamReadResult), unReadableStreamReadResult, noReadableStreamReadResult, gTypeReadableStreamReadResult
  , ReadableWritablePair(ReadableWritablePair), unReadableWritablePair, noReadableWritablePair, gTypeReadableWritablePair
  , RegistrationOptions(RegistrationOptions), unRegistrationOptions, noRegistrationOptions, gTypeRegistrationOptions
  , RemotePlayback(RemotePlayback), unRemotePlayback, noRemotePlayback, gTypeRemotePlayback
  , Report(Report), unReport, noReport, gTypeReport
  , ReportBody(ReportBody), unReportBody, noReportBody, gTypeReportBody
  , ReportingObserver(ReportingObserver), unReportingObserver, noReportingObserver, gTypeReportingObserver
  , ReportingObserverOptions(ReportingObserverOptions), unReportingObserverOptions, noReportingObserverOptions, gTypeReportingObserverOptions
  , Request(Request), unRequest, noRequest, gTypeRequest
  , RequestInit(RequestInit), unRequestInit, noRequestInit, gTypeRequestInit
  , ResizeObserver(ResizeObserver), unResizeObserver, noResizeObserver, gTypeResizeObserver
  , ResizeObserverEntry(ResizeObserverEntry), unResizeObserverEntry, noResizeObserverEntry, gTypeResizeObserverEntry
  , ResizeObserverOptions(ResizeObserverOptions), unResizeObserverOptions, noResizeObserverOptions, gTypeResizeObserverOptions
  , ResizeObserverSize(ResizeObserverSize), unResizeObserverSize, noResizeObserverSize, gTypeResizeObserverSize
  , Response(Response), unResponse, noResponse, gTypeResponse
  , ResponseInit(ResponseInit), unResponseInit, noResponseInit, gTypeResponseInit
  , RouterCondition(RouterCondition), unRouterCondition, noRouterCondition, gTypeRouterCondition
  , RouterRule(RouterRule), unRouterRule, noRouterRule, gTypeRouterRule
  , RouterSourceDict(RouterSourceDict), unRouterSourceDict, noRouterSourceDict, gTypeRouterSourceDict
  , RsaOtherPrimesInfo(RsaOtherPrimesInfo), unRsaOtherPrimesInfo, noRsaOtherPrimesInfo, gTypeRsaOtherPrimesInfo
  , SVGAElement(SVGAElement), unSVGAElement, noSVGAElement, gTypeSVGAElement
  , SVGAngle(SVGAngle), unSVGAngle, noSVGAngle, gTypeSVGAngle
  , SVGAnimateElement(SVGAnimateElement), unSVGAnimateElement, noSVGAnimateElement, gTypeSVGAnimateElement
  , SVGAnimateMotionElement(SVGAnimateMotionElement), unSVGAnimateMotionElement, noSVGAnimateMotionElement, gTypeSVGAnimateMotionElement
  , SVGAnimateTransformElement(SVGAnimateTransformElement), unSVGAnimateTransformElement, noSVGAnimateTransformElement, gTypeSVGAnimateTransformElement
  , SVGAnimatedAngle(SVGAnimatedAngle), unSVGAnimatedAngle, noSVGAnimatedAngle, gTypeSVGAnimatedAngle
  , SVGAnimatedBoolean(SVGAnimatedBoolean), unSVGAnimatedBoolean, noSVGAnimatedBoolean, gTypeSVGAnimatedBoolean
  , SVGAnimatedEnumeration(SVGAnimatedEnumeration), unSVGAnimatedEnumeration, noSVGAnimatedEnumeration, gTypeSVGAnimatedEnumeration
  , SVGAnimatedInteger(SVGAnimatedInteger), unSVGAnimatedInteger, noSVGAnimatedInteger, gTypeSVGAnimatedInteger
  , SVGAnimatedLength(SVGAnimatedLength), unSVGAnimatedLength, noSVGAnimatedLength, gTypeSVGAnimatedLength
  , SVGAnimatedLengthList(SVGAnimatedLengthList), unSVGAnimatedLengthList, noSVGAnimatedLengthList, gTypeSVGAnimatedLengthList
  , SVGAnimatedNumber(SVGAnimatedNumber), unSVGAnimatedNumber, noSVGAnimatedNumber, gTypeSVGAnimatedNumber
  , SVGAnimatedNumberList(SVGAnimatedNumberList), unSVGAnimatedNumberList, noSVGAnimatedNumberList, gTypeSVGAnimatedNumberList
  , SVGAnimatedPoints(SVGAnimatedPoints), unSVGAnimatedPoints, IsSVGAnimatedPoints, toSVGAnimatedPoints, noSVGAnimatedPoints, gTypeSVGAnimatedPoints
  , SVGAnimatedPreserveAspectRatio(SVGAnimatedPreserveAspectRatio), unSVGAnimatedPreserveAspectRatio, noSVGAnimatedPreserveAspectRatio, gTypeSVGAnimatedPreserveAspectRatio
  , SVGAnimatedRect(SVGAnimatedRect), unSVGAnimatedRect, noSVGAnimatedRect, gTypeSVGAnimatedRect
  , SVGAnimatedString(SVGAnimatedString), unSVGAnimatedString, noSVGAnimatedString, gTypeSVGAnimatedString
  , SVGAnimatedTransformList(SVGAnimatedTransformList), unSVGAnimatedTransformList, noSVGAnimatedTransformList, gTypeSVGAnimatedTransformList
  , SVGAnimationElement(SVGAnimationElement), unSVGAnimationElement, IsSVGAnimationElement, toSVGAnimationElement, noSVGAnimationElement, gTypeSVGAnimationElement
  , SVGBoundingBoxOptions(SVGBoundingBoxOptions), unSVGBoundingBoxOptions, noSVGBoundingBoxOptions, gTypeSVGBoundingBoxOptions
  , SVGCircleElement(SVGCircleElement), unSVGCircleElement, noSVGCircleElement, gTypeSVGCircleElement
  , SVGClipPathElement(SVGClipPathElement), unSVGClipPathElement, noSVGClipPathElement, gTypeSVGClipPathElement
  , SVGComponentTransferFunctionElement(SVGComponentTransferFunctionElement), unSVGComponentTransferFunctionElement, IsSVGComponentTransferFunctionElement, toSVGComponentTransferFunctionElement, noSVGComponentTransferFunctionElement, gTypeSVGComponentTransferFunctionElement
  , SVGDefsElement(SVGDefsElement), unSVGDefsElement, noSVGDefsElement, gTypeSVGDefsElement
  , SVGDescElement(SVGDescElement), unSVGDescElement, noSVGDescElement, gTypeSVGDescElement
  , SVGElement(SVGElement), unSVGElement, IsSVGElement, toSVGElement, noSVGElement, gTypeSVGElement
  , SVGEllipseElement(SVGEllipseElement), unSVGEllipseElement, noSVGEllipseElement, gTypeSVGEllipseElement
  , SVGFEBlendElement(SVGFEBlendElement), unSVGFEBlendElement, noSVGFEBlendElement, gTypeSVGFEBlendElement
  , SVGFEColorMatrixElement(SVGFEColorMatrixElement), unSVGFEColorMatrixElement, noSVGFEColorMatrixElement, gTypeSVGFEColorMatrixElement
  , SVGFEComponentTransferElement(SVGFEComponentTransferElement), unSVGFEComponentTransferElement, noSVGFEComponentTransferElement, gTypeSVGFEComponentTransferElement
  , SVGFECompositeElement(SVGFECompositeElement), unSVGFECompositeElement, noSVGFECompositeElement, gTypeSVGFECompositeElement
  , SVGFEConvolveMatrixElement(SVGFEConvolveMatrixElement), unSVGFEConvolveMatrixElement, noSVGFEConvolveMatrixElement, gTypeSVGFEConvolveMatrixElement
  , SVGFEDiffuseLightingElement(SVGFEDiffuseLightingElement), unSVGFEDiffuseLightingElement, noSVGFEDiffuseLightingElement, gTypeSVGFEDiffuseLightingElement
  , SVGFEDisplacementMapElement(SVGFEDisplacementMapElement), unSVGFEDisplacementMapElement, noSVGFEDisplacementMapElement, gTypeSVGFEDisplacementMapElement
  , SVGFEDistantLightElement(SVGFEDistantLightElement), unSVGFEDistantLightElement, noSVGFEDistantLightElement, gTypeSVGFEDistantLightElement
  , SVGFEDropShadowElement(SVGFEDropShadowElement), unSVGFEDropShadowElement, noSVGFEDropShadowElement, gTypeSVGFEDropShadowElement
  , SVGFEFloodElement(SVGFEFloodElement), unSVGFEFloodElement, noSVGFEFloodElement, gTypeSVGFEFloodElement
  , SVGFEFuncAElement(SVGFEFuncAElement), unSVGFEFuncAElement, noSVGFEFuncAElement, gTypeSVGFEFuncAElement
  , SVGFEFuncBElement(SVGFEFuncBElement), unSVGFEFuncBElement, noSVGFEFuncBElement, gTypeSVGFEFuncBElement
  , SVGFEFuncGElement(SVGFEFuncGElement), unSVGFEFuncGElement, noSVGFEFuncGElement, gTypeSVGFEFuncGElement
  , SVGFEFuncRElement(SVGFEFuncRElement), unSVGFEFuncRElement, noSVGFEFuncRElement, gTypeSVGFEFuncRElement
  , SVGFEGaussianBlurElement(SVGFEGaussianBlurElement), unSVGFEGaussianBlurElement, noSVGFEGaussianBlurElement, gTypeSVGFEGaussianBlurElement
  , SVGFEImageElement(SVGFEImageElement), unSVGFEImageElement, noSVGFEImageElement, gTypeSVGFEImageElement
  , SVGFEMergeElement(SVGFEMergeElement), unSVGFEMergeElement, noSVGFEMergeElement, gTypeSVGFEMergeElement
  , SVGFEMergeNodeElement(SVGFEMergeNodeElement), unSVGFEMergeNodeElement, noSVGFEMergeNodeElement, gTypeSVGFEMergeNodeElement
  , SVGFEMorphologyElement(SVGFEMorphologyElement), unSVGFEMorphologyElement, noSVGFEMorphologyElement, gTypeSVGFEMorphologyElement
  , SVGFEOffsetElement(SVGFEOffsetElement), unSVGFEOffsetElement, noSVGFEOffsetElement, gTypeSVGFEOffsetElement
  , SVGFEPointLightElement(SVGFEPointLightElement), unSVGFEPointLightElement, noSVGFEPointLightElement, gTypeSVGFEPointLightElement
  , SVGFESpecularLightingElement(SVGFESpecularLightingElement), unSVGFESpecularLightingElement, noSVGFESpecularLightingElement, gTypeSVGFESpecularLightingElement
  , SVGFESpotLightElement(SVGFESpotLightElement), unSVGFESpotLightElement, noSVGFESpotLightElement, gTypeSVGFESpotLightElement
  , SVGFETileElement(SVGFETileElement), unSVGFETileElement, noSVGFETileElement, gTypeSVGFETileElement
  , SVGFETurbulenceElement(SVGFETurbulenceElement), unSVGFETurbulenceElement, noSVGFETurbulenceElement, gTypeSVGFETurbulenceElement
  , SVGFilterElement(SVGFilterElement), unSVGFilterElement, noSVGFilterElement, gTypeSVGFilterElement
  , SVGFilterPrimitiveStandardAttributes(SVGFilterPrimitiveStandardAttributes), unSVGFilterPrimitiveStandardAttributes, IsSVGFilterPrimitiveStandardAttributes, toSVGFilterPrimitiveStandardAttributes, noSVGFilterPrimitiveStandardAttributes, gTypeSVGFilterPrimitiveStandardAttributes
  , SVGFitToViewBox(SVGFitToViewBox), unSVGFitToViewBox, IsSVGFitToViewBox, toSVGFitToViewBox, noSVGFitToViewBox, gTypeSVGFitToViewBox
  , SVGForeignObjectElement(SVGForeignObjectElement), unSVGForeignObjectElement, noSVGForeignObjectElement, gTypeSVGForeignObjectElement
  , SVGGElement(SVGGElement), unSVGGElement, noSVGGElement, gTypeSVGGElement
  , SVGGeometryElement(SVGGeometryElement), unSVGGeometryElement, IsSVGGeometryElement, toSVGGeometryElement, noSVGGeometryElement, gTypeSVGGeometryElement
  , SVGGradientElement(SVGGradientElement), unSVGGradientElement, IsSVGGradientElement, toSVGGradientElement, noSVGGradientElement, gTypeSVGGradientElement
  , SVGGraphicsElement(SVGGraphicsElement), unSVGGraphicsElement, IsSVGGraphicsElement, toSVGGraphicsElement, noSVGGraphicsElement, gTypeSVGGraphicsElement
  , SVGImageElement(SVGImageElement), unSVGImageElement, noSVGImageElement, gTypeSVGImageElement
  , SVGLength(SVGLength), unSVGLength, noSVGLength, gTypeSVGLength
  , SVGLengthList(SVGLengthList), unSVGLengthList, noSVGLengthList, gTypeSVGLengthList
  , SVGLineElement(SVGLineElement), unSVGLineElement, noSVGLineElement, gTypeSVGLineElement
  , SVGLinearGradientElement(SVGLinearGradientElement), unSVGLinearGradientElement, noSVGLinearGradientElement, gTypeSVGLinearGradientElement
  , SVGMPathElement(SVGMPathElement), unSVGMPathElement, noSVGMPathElement, gTypeSVGMPathElement
  , SVGMarkerElement(SVGMarkerElement), unSVGMarkerElement, noSVGMarkerElement, gTypeSVGMarkerElement
  , SVGMaskElement(SVGMaskElement), unSVGMaskElement, noSVGMaskElement, gTypeSVGMaskElement
  , SVGMetadataElement(SVGMetadataElement), unSVGMetadataElement, noSVGMetadataElement, gTypeSVGMetadataElement
  , SVGNumber(SVGNumber), unSVGNumber, noSVGNumber, gTypeSVGNumber
  , SVGNumberList(SVGNumberList), unSVGNumberList, noSVGNumberList, gTypeSVGNumberList
  , SVGPathElement(SVGPathElement), unSVGPathElement, noSVGPathElement, gTypeSVGPathElement
  , SVGPatternElement(SVGPatternElement), unSVGPatternElement, noSVGPatternElement, gTypeSVGPatternElement
  , SVGPointList(SVGPointList), unSVGPointList, noSVGPointList, gTypeSVGPointList
  , SVGPolygonElement(SVGPolygonElement), unSVGPolygonElement, noSVGPolygonElement, gTypeSVGPolygonElement
  , SVGPolylineElement(SVGPolylineElement), unSVGPolylineElement, noSVGPolylineElement, gTypeSVGPolylineElement
  , SVGPreserveAspectRatio(SVGPreserveAspectRatio), unSVGPreserveAspectRatio, noSVGPreserveAspectRatio, gTypeSVGPreserveAspectRatio
  , SVGRadialGradientElement(SVGRadialGradientElement), unSVGRadialGradientElement, noSVGRadialGradientElement, gTypeSVGRadialGradientElement
  , SVGRectElement(SVGRectElement), unSVGRectElement, noSVGRectElement, gTypeSVGRectElement
  , SVGSVGElement(SVGSVGElement), unSVGSVGElement, noSVGSVGElement, gTypeSVGSVGElement
  , SVGScriptElement(SVGScriptElement), unSVGScriptElement, noSVGScriptElement, gTypeSVGScriptElement
  , SVGSetElement(SVGSetElement), unSVGSetElement, noSVGSetElement, gTypeSVGSetElement
  , SVGStopElement(SVGStopElement), unSVGStopElement, noSVGStopElement, gTypeSVGStopElement
  , SVGStringList(SVGStringList), unSVGStringList, noSVGStringList, gTypeSVGStringList
  , SVGStyleElement(SVGStyleElement), unSVGStyleElement, noSVGStyleElement, gTypeSVGStyleElement
  , SVGSwitchElement(SVGSwitchElement), unSVGSwitchElement, noSVGSwitchElement, gTypeSVGSwitchElement
  , SVGSymbolElement(SVGSymbolElement), unSVGSymbolElement, noSVGSymbolElement, gTypeSVGSymbolElement
  , SVGTSpanElement(SVGTSpanElement), unSVGTSpanElement, noSVGTSpanElement, gTypeSVGTSpanElement
  , SVGTests(SVGTests), unSVGTests, IsSVGTests, toSVGTests, noSVGTests, gTypeSVGTests
  , SVGTextContentElement(SVGTextContentElement), unSVGTextContentElement, IsSVGTextContentElement, toSVGTextContentElement, noSVGTextContentElement, gTypeSVGTextContentElement
  , SVGTextElement(SVGTextElement), unSVGTextElement, noSVGTextElement, gTypeSVGTextElement
  , SVGTextPathElement(SVGTextPathElement), unSVGTextPathElement, noSVGTextPathElement, gTypeSVGTextPathElement
  , SVGTextPositioningElement(SVGTextPositioningElement), unSVGTextPositioningElement, IsSVGTextPositioningElement, toSVGTextPositioningElement, noSVGTextPositioningElement, gTypeSVGTextPositioningElement
  , SVGTitleElement(SVGTitleElement), unSVGTitleElement, noSVGTitleElement, gTypeSVGTitleElement
  , SVGTransform(SVGTransform), unSVGTransform, noSVGTransform, gTypeSVGTransform
  , SVGTransformList(SVGTransformList), unSVGTransformList, noSVGTransformList, gTypeSVGTransformList
  , SVGURIReference(SVGURIReference), unSVGURIReference, IsSVGURIReference, toSVGURIReference, noSVGURIReference, gTypeSVGURIReference
  , SVGUnitTypes(SVGUnitTypes), unSVGUnitTypes, noSVGUnitTypes, gTypeSVGUnitTypes
  , SVGUseElement(SVGUseElement), unSVGUseElement, noSVGUseElement, gTypeSVGUseElement
  , SVGViewElement(SVGViewElement), unSVGViewElement, noSVGViewElement, gTypeSVGViewElement
  , Sanitizer(Sanitizer), unSanitizer, noSanitizer, gTypeSanitizer
  , SanitizerAttributeNamespace(SanitizerAttributeNamespace), unSanitizerAttributeNamespace, noSanitizerAttributeNamespace, gTypeSanitizerAttributeNamespace
  , SanitizerConfig(SanitizerConfig), unSanitizerConfig, noSanitizerConfig, gTypeSanitizerConfig
  , SanitizerElementNamespace(SanitizerElementNamespace), unSanitizerElementNamespace, IsSanitizerElementNamespace, toSanitizerElementNamespace, noSanitizerElementNamespace, gTypeSanitizerElementNamespace
  , SanitizerElementNamespaceWithAttributes(SanitizerElementNamespaceWithAttributes), unSanitizerElementNamespaceWithAttributes, noSanitizerElementNamespaceWithAttributes, gTypeSanitizerElementNamespaceWithAttributes
  , SanitizerProcessingInstruction(SanitizerProcessingInstruction), unSanitizerProcessingInstruction, noSanitizerProcessingInstruction, gTypeSanitizerProcessingInstruction
  , Scheduler(Scheduler), unScheduler, noScheduler, gTypeScheduler
  , SchedulerPostTaskOptions(SchedulerPostTaskOptions), unSchedulerPostTaskOptions, noSchedulerPostTaskOptions, gTypeSchedulerPostTaskOptions
  , Screen(Screen), unScreen, IsScreen, toScreen, noScreen, gTypeScreen
  , ScreenDetailed(ScreenDetailed), unScreenDetailed, noScreenDetailed, gTypeScreenDetailed
  , ScreenOrientation(ScreenOrientation), unScreenOrientation, noScreenOrientation, gTypeScreenOrientation
  , ScriptProcessorNode(ScriptProcessorNode), unScriptProcessorNode, noScriptProcessorNode, gTypeScriptProcessorNode
  , ScrollIntoViewOptions(ScrollIntoViewOptions), unScrollIntoViewOptions, noScrollIntoViewOptions, gTypeScrollIntoViewOptions
  , ScrollOptions(ScrollOptions), unScrollOptions, IsScrollOptions, toScrollOptions, noScrollOptions, gTypeScrollOptions
  , ScrollResult(ScrollResult), unScrollResult, noScrollResult, gTypeScrollResult
  , ScrollTimeline(ScrollTimeline), unScrollTimeline, IsScrollTimeline, toScrollTimeline, noScrollTimeline, gTypeScrollTimeline
  , ScrollTimelineOptions(ScrollTimelineOptions), unScrollTimelineOptions, noScrollTimelineOptions, gTypeScrollTimelineOptions
  , ScrollToOptions(ScrollToOptions), unScrollToOptions, noScrollToOptions, gTypeScrollToOptions
  , SecurityPolicyViolationEvent(SecurityPolicyViolationEvent), unSecurityPolicyViolationEvent, noSecurityPolicyViolationEvent, gTypeSecurityPolicyViolationEvent
  , SecurityPolicyViolationEventInit(SecurityPolicyViolationEventInit), unSecurityPolicyViolationEventInit, noSecurityPolicyViolationEventInit, gTypeSecurityPolicyViolationEventInit
  , Segment(Segment), unSegment, noSegment, gTypeSegment
  , Selection(Selection), unSelection, noSelection, gTypeSelection
  , Serial(Serial), unSerial, noSerial, gTypeSerial
  , SerialInputSignals(SerialInputSignals), unSerialInputSignals, noSerialInputSignals, gTypeSerialInputSignals
  , SerialOptions(SerialOptions), unSerialOptions, noSerialOptions, gTypeSerialOptions
  , SerialOutputSignals(SerialOutputSignals), unSerialOutputSignals, noSerialOutputSignals, gTypeSerialOutputSignals
  , SerialPort(SerialPort), unSerialPort, noSerialPort, gTypeSerialPort
  , SerialPortFilter(SerialPortFilter), unSerialPortFilter, noSerialPortFilter, gTypeSerialPortFilter
  , SerialPortInfo(SerialPortInfo), unSerialPortInfo, noSerialPortInfo, gTypeSerialPortInfo
  , SerialPortRequestOptions(SerialPortRequestOptions), unSerialPortRequestOptions, noSerialPortRequestOptions, gTypeSerialPortRequestOptions
  , ServiceWorker(ServiceWorker), unServiceWorker, noServiceWorker, gTypeServiceWorker
  , ServiceWorkerContainer(ServiceWorkerContainer), unServiceWorkerContainer, noServiceWorkerContainer, gTypeServiceWorkerContainer
  , ServiceWorkerGlobalScope(ServiceWorkerGlobalScope), unServiceWorkerGlobalScope, noServiceWorkerGlobalScope, gTypeServiceWorkerGlobalScope
  , ServiceWorkerRegistration(ServiceWorkerRegistration), unServiceWorkerRegistration, noServiceWorkerRegistration, gTypeServiceWorkerRegistration
  , SetHTMLOptions(SetHTMLOptions), unSetHTMLOptions, noSetHTMLOptions, gTypeSetHTMLOptions
  , SetHTMLUnsafeOptions(SetHTMLUnsafeOptions), unSetHTMLUnsafeOptions, noSetHTMLUnsafeOptions, gTypeSetHTMLUnsafeOptions
  , ShadowRoot(ShadowRoot), unShadowRoot, noShadowRoot, gTypeShadowRoot
  , ShadowRootInit(ShadowRootInit), unShadowRootInit, noShadowRootInit, gTypeShadowRootInit
  , ShareData(ShareData), unShareData, noShareData, gTypeShareData
  , SharedArrayBuffer(SharedArrayBuffer), unSharedArrayBuffer, noSharedArrayBuffer, gTypeSharedArrayBuffer
  , SharedWorker(SharedWorker), unSharedWorker, noSharedWorker, gTypeSharedWorker
  , SharedWorkerGlobalScope(SharedWorkerGlobalScope), unSharedWorkerGlobalScope, noSharedWorkerGlobalScope, gTypeSharedWorkerGlobalScope
  , SharedWorkerOptions(SharedWorkerOptions), unSharedWorkerOptions, noSharedWorkerOptions, gTypeSharedWorkerOptions
  , ShowPopoverOptions(ShowPopoverOptions), unShowPopoverOptions, IsShowPopoverOptions, toShowPopoverOptions, noShowPopoverOptions, gTypeShowPopoverOptions
  , Slottable(Slottable), unSlottable, IsSlottable, toSlottable, noSlottable, gTypeSlottable
  , SourceBuffer(SourceBuffer), unSourceBuffer, noSourceBuffer, gTypeSourceBuffer
  , SourceBufferList(SourceBufferList), unSourceBufferList, noSourceBufferList, gTypeSourceBufferList
  , SpeechGrammar(SpeechGrammar), unSpeechGrammar, noSpeechGrammar, gTypeSpeechGrammar
  , SpeechGrammarList(SpeechGrammarList), unSpeechGrammarList, noSpeechGrammarList, gTypeSpeechGrammarList
  , SpeechRecognition(SpeechRecognition), unSpeechRecognition, noSpeechRecognition, gTypeSpeechRecognition
  , SpeechRecognitionAlternative(SpeechRecognitionAlternative), unSpeechRecognitionAlternative, noSpeechRecognitionAlternative, gTypeSpeechRecognitionAlternative
  , SpeechRecognitionErrorEvent(SpeechRecognitionErrorEvent), unSpeechRecognitionErrorEvent, noSpeechRecognitionErrorEvent, gTypeSpeechRecognitionErrorEvent
  , SpeechRecognitionErrorEventInit(SpeechRecognitionErrorEventInit), unSpeechRecognitionErrorEventInit, noSpeechRecognitionErrorEventInit, gTypeSpeechRecognitionErrorEventInit
  , SpeechRecognitionEvent(SpeechRecognitionEvent), unSpeechRecognitionEvent, noSpeechRecognitionEvent, gTypeSpeechRecognitionEvent
  , SpeechRecognitionEventInit(SpeechRecognitionEventInit), unSpeechRecognitionEventInit, noSpeechRecognitionEventInit, gTypeSpeechRecognitionEventInit
  , SpeechRecognitionOptions(SpeechRecognitionOptions), unSpeechRecognitionOptions, noSpeechRecognitionOptions, gTypeSpeechRecognitionOptions
  , SpeechRecognitionPhrase(SpeechRecognitionPhrase), unSpeechRecognitionPhrase, noSpeechRecognitionPhrase, gTypeSpeechRecognitionPhrase
  , SpeechRecognitionResult(SpeechRecognitionResult), unSpeechRecognitionResult, noSpeechRecognitionResult, gTypeSpeechRecognitionResult
  , SpeechRecognitionResultList(SpeechRecognitionResultList), unSpeechRecognitionResultList, noSpeechRecognitionResultList, gTypeSpeechRecognitionResultList
  , SpeechSynthesis(SpeechSynthesis), unSpeechSynthesis, noSpeechSynthesis, gTypeSpeechSynthesis
  , SpeechSynthesisErrorEvent(SpeechSynthesisErrorEvent), unSpeechSynthesisErrorEvent, noSpeechSynthesisErrorEvent, gTypeSpeechSynthesisErrorEvent
  , SpeechSynthesisErrorEventInit(SpeechSynthesisErrorEventInit), unSpeechSynthesisErrorEventInit, noSpeechSynthesisErrorEventInit, gTypeSpeechSynthesisErrorEventInit
  , SpeechSynthesisEvent(SpeechSynthesisEvent), unSpeechSynthesisEvent, IsSpeechSynthesisEvent, toSpeechSynthesisEvent, noSpeechSynthesisEvent, gTypeSpeechSynthesisEvent
  , SpeechSynthesisEventInit(SpeechSynthesisEventInit), unSpeechSynthesisEventInit, IsSpeechSynthesisEventInit, toSpeechSynthesisEventInit, noSpeechSynthesisEventInit, gTypeSpeechSynthesisEventInit
  , SpeechSynthesisUtterance(SpeechSynthesisUtterance), unSpeechSynthesisUtterance, noSpeechSynthesisUtterance, gTypeSpeechSynthesisUtterance
  , SpeechSynthesisVoice(SpeechSynthesisVoice), unSpeechSynthesisVoice, noSpeechSynthesisVoice, gTypeSpeechSynthesisVoice
  , StartViewTransitionOptions(StartViewTransitionOptions), unStartViewTransitionOptions, noStartViewTransitionOptions, gTypeStartViewTransitionOptions
  , StaticRange(StaticRange), unStaticRange, noStaticRange, gTypeStaticRange
  , StaticRangeInit(StaticRangeInit), unStaticRangeInit, noStaticRangeInit, gTypeStaticRangeInit
  , StereoPannerNode(StereoPannerNode), unStereoPannerNode, noStereoPannerNode, gTypeStereoPannerNode
  , StereoPannerOptions(StereoPannerOptions), unStereoPannerOptions, noStereoPannerOptions, gTypeStereoPannerOptions
  , Storage(Storage), unStorage, noStorage, gTypeStorage
  , StorageEstimate(StorageEstimate), unStorageEstimate, noStorageEstimate, gTypeStorageEstimate
  , StorageEvent(StorageEvent), unStorageEvent, noStorageEvent, gTypeStorageEvent
  , StorageEventInit(StorageEventInit), unStorageEventInit, noStorageEventInit, gTypeStorageEventInit
  , StorageManager(StorageManager), unStorageManager, noStorageManager, gTypeStorageManager
  , StreamPipeOptions(StreamPipeOptions), unStreamPipeOptions, noStreamPipeOptions, gTypeStreamPipeOptions
  , StructuredSerializeOptions(StructuredSerializeOptions), unStructuredSerializeOptions, IsStructuredSerializeOptions, toStructuredSerializeOptions, noStructuredSerializeOptions, gTypeStructuredSerializeOptions
  , StylePropertyMap(StylePropertyMap), unStylePropertyMap, noStylePropertyMap, gTypeStylePropertyMap
  , StylePropertyMapReadOnly(StylePropertyMapReadOnly), unStylePropertyMapReadOnly, IsStylePropertyMapReadOnly, toStylePropertyMapReadOnly, noStylePropertyMapReadOnly, gTypeStylePropertyMapReadOnly
  , StyleSheet(StyleSheet), unStyleSheet, IsStyleSheet, toStyleSheet, noStyleSheet, gTypeStyleSheet
  , StyleSheetList(StyleSheetList), unStyleSheetList, noStyleSheetList, gTypeStyleSheetList
  , SubmitEvent(SubmitEvent), unSubmitEvent, noSubmitEvent, gTypeSubmitEvent
  , SubmitEventInit(SubmitEventInit), unSubmitEventInit, noSubmitEventInit, gTypeSubmitEventInit
  , SubtleCrypto(SubtleCrypto), unSubtleCrypto, noSubtleCrypto, gTypeSubtleCrypto
  , SvcOutputMetadata(SvcOutputMetadata), unSvcOutputMetadata, noSvcOutputMetadata, gTypeSvcOutputMetadata
  , TaskController(TaskController), unTaskController, noTaskController, gTypeTaskController
  , TaskControllerInit(TaskControllerInit), unTaskControllerInit, noTaskControllerInit, gTypeTaskControllerInit
  , TaskPriorityChangeEvent(TaskPriorityChangeEvent), unTaskPriorityChangeEvent, noTaskPriorityChangeEvent, gTypeTaskPriorityChangeEvent
  , TaskPriorityChangeEventInit(TaskPriorityChangeEventInit), unTaskPriorityChangeEventInit, noTaskPriorityChangeEventInit, gTypeTaskPriorityChangeEventInit
  , TaskSignal(TaskSignal), unTaskSignal, noTaskSignal, gTypeTaskSignal
  , TaskSignalAnyInit(TaskSignalAnyInit), unTaskSignalAnyInit, noTaskSignalAnyInit, gTypeTaskSignalAnyInit
  , Text(Text), unText, IsText, toText, noText, gTypeText
  , TextDecodeOptions(TextDecodeOptions), unTextDecodeOptions, noTextDecodeOptions, gTypeTextDecodeOptions
  , TextDecoder(TextDecoder), unTextDecoder, noTextDecoder, gTypeTextDecoder
  , TextDecoderCommon(TextDecoderCommon), unTextDecoderCommon, IsTextDecoderCommon, toTextDecoderCommon, noTextDecoderCommon, gTypeTextDecoderCommon
  , TextDecoderOptions(TextDecoderOptions), unTextDecoderOptions, noTextDecoderOptions, gTypeTextDecoderOptions
  , TextDecoderStream(TextDecoderStream), unTextDecoderStream, noTextDecoderStream, gTypeTextDecoderStream
  , TextEncoder(TextEncoder), unTextEncoder, noTextEncoder, gTypeTextEncoder
  , TextEncoderCommon(TextEncoderCommon), unTextEncoderCommon, IsTextEncoderCommon, toTextEncoderCommon, noTextEncoderCommon, gTypeTextEncoderCommon
  , TextEncoderEncodeIntoResult(TextEncoderEncodeIntoResult), unTextEncoderEncodeIntoResult, noTextEncoderEncodeIntoResult, gTypeTextEncoderEncodeIntoResult
  , TextEncoderStream(TextEncoderStream), unTextEncoderStream, noTextEncoderStream, gTypeTextEncoderStream
  , TextEvent(TextEvent), unTextEvent, noTextEvent, gTypeTextEvent
  , TextMetrics(TextMetrics), unTextMetrics, noTextMetrics, gTypeTextMetrics
  , TextTrack(TextTrack), unTextTrack, noTextTrack, gTypeTextTrack
  , TextTrackCue(TextTrackCue), unTextTrackCue, IsTextTrackCue, toTextTrackCue, noTextTrackCue, gTypeTextTrackCue
  , TextTrackCueList(TextTrackCueList), unTextTrackCueList, noTextTrackCueList, gTypeTextTrackCueList
  , TextTrackList(TextTrackList), unTextTrackList, noTextTrackList, gTypeTextTrackList
  , TimeRanges(TimeRanges), unTimeRanges, noTimeRanges, gTypeTimeRanges
  , TimelineRangeOffset(TimelineRangeOffset), unTimelineRangeOffset, noTimelineRangeOffset, gTypeTimelineRangeOffset
  , ToggleEvent(ToggleEvent), unToggleEvent, noToggleEvent, gTypeToggleEvent
  , ToggleEventInit(ToggleEventInit), unToggleEventInit, noToggleEventInit, gTypeToggleEventInit
  , TogglePopoverOptions(TogglePopoverOptions), unTogglePopoverOptions, noTogglePopoverOptions, gTypeTogglePopoverOptions
  , Touch(Touch), unTouch, noTouch, gTypeTouch
  , TouchEvent(TouchEvent), unTouchEvent, noTouchEvent, gTypeTouchEvent
  , TouchEventInit(TouchEventInit), unTouchEventInit, noTouchEventInit, gTypeTouchEventInit
  , TouchInit(TouchInit), unTouchInit, noTouchInit, gTypeTouchInit
  , TouchList(TouchList), unTouchList, noTouchList, gTypeTouchList
  , TrackEvent(TrackEvent), unTrackEvent, noTrackEvent, gTypeTrackEvent
  , TrackEventInit(TrackEventInit), unTrackEventInit, noTrackEventInit, gTypeTrackEventInit
  , TransformStream(TransformStream), unTransformStream, noTransformStream, gTypeTransformStream
  , TransformStreamDefaultController(TransformStreamDefaultController), unTransformStreamDefaultController, noTransformStreamDefaultController, gTypeTransformStreamDefaultController
  , TransitionEvent(TransitionEvent), unTransitionEvent, noTransitionEvent, gTypeTransitionEvent
  , TransitionEventInit(TransitionEventInit), unTransitionEventInit, noTransitionEventInit, gTypeTransitionEventInit
  , TreeWalker(TreeWalker), unTreeWalker, noTreeWalker, gTypeTreeWalker
  , TrustedHTML(TrustedHTML), unTrustedHTML, noTrustedHTML, gTypeTrustedHTML
  , TrustedHTMLParserOptions(TrustedHTMLParserOptions), unTrustedHTMLParserOptions, noTrustedHTMLParserOptions, gTypeTrustedHTMLParserOptions
  , TrustedScript(TrustedScript), unTrustedScript, noTrustedScript, gTypeTrustedScript
  , TrustedScriptURL(TrustedScriptURL), unTrustedScriptURL, noTrustedScriptURL, gTypeTrustedScriptURL
  , TrustedTypePolicy(TrustedTypePolicy), unTrustedTypePolicy, noTrustedTypePolicy, gTypeTrustedTypePolicy
  , TrustedTypePolicyFactory(TrustedTypePolicyFactory), unTrustedTypePolicyFactory, noTrustedTypePolicyFactory, gTypeTrustedTypePolicyFactory
  , TrustedTypePolicyOptions(TrustedTypePolicyOptions), unTrustedTypePolicyOptions, noTrustedTypePolicyOptions, gTypeTrustedTypePolicyOptions
  , UIEvent(UIEvent), unUIEvent, IsUIEvent, toUIEvent, noUIEvent, gTypeUIEvent
  , UIEventInit(UIEventInit), unUIEventInit, IsUIEventInit, toUIEventInit, noUIEventInit, gTypeUIEventInit
  , ULongRange(ULongRange), unULongRange, IsULongRange, toULongRange, noULongRange, gTypeULongRange
  , URL(URL), unURL, noURL, gTypeURL
  , URLPattern(URLPattern), unURLPattern, noURLPattern, gTypeURLPattern
  , URLPatternComponentResult(URLPatternComponentResult), unURLPatternComponentResult, noURLPatternComponentResult, gTypeURLPatternComponentResult
  , URLPatternInit(URLPatternInit), unURLPatternInit, noURLPatternInit, gTypeURLPatternInit
  , URLPatternOptions(URLPatternOptions), unURLPatternOptions, noURLPatternOptions, gTypeURLPatternOptions
  , URLPatternResult(URLPatternResult), unURLPatternResult, noURLPatternResult, gTypeURLPatternResult
  , URLSearchParams(URLSearchParams), unURLSearchParams, noURLSearchParams, gTypeURLSearchParams
  , UnknownCredentialOptions(UnknownCredentialOptions), unUnknownCredentialOptions, noUnknownCredentialOptions, gTypeUnknownCredentialOptions
  , UserActivation(UserActivation), unUserActivation, noUserActivation, gTypeUserActivation
  , VTTCue(VTTCue), unVTTCue, noVTTCue, gTypeVTTCue
  , VTTRegion(VTTRegion), unVTTRegion, noVTTRegion, gTypeVTTRegion
  , ValidityState(ValidityState), unValidityState, noValidityState, gTypeValidityState
  , ValidityStateFlags(ValidityStateFlags), unValidityStateFlags, noValidityStateFlags, gTypeValidityStateFlags
  , VideoColorSpace(VideoColorSpace), unVideoColorSpace, noVideoColorSpace, gTypeVideoColorSpace
  , VideoColorSpaceInit(VideoColorSpaceInit), unVideoColorSpaceInit, noVideoColorSpaceInit, gTypeVideoColorSpaceInit
  , VideoConfiguration(VideoConfiguration), unVideoConfiguration, noVideoConfiguration, gTypeVideoConfiguration
  , VideoDecoder(VideoDecoder), unVideoDecoder, noVideoDecoder, gTypeVideoDecoder
  , VideoDecoderConfig(VideoDecoderConfig), unVideoDecoderConfig, noVideoDecoderConfig, gTypeVideoDecoderConfig
  , VideoDecoderInit(VideoDecoderInit), unVideoDecoderInit, noVideoDecoderInit, gTypeVideoDecoderInit
  , VideoDecoderSupport(VideoDecoderSupport), unVideoDecoderSupport, noVideoDecoderSupport, gTypeVideoDecoderSupport
  , VideoEncoder(VideoEncoder), unVideoEncoder, noVideoEncoder, gTypeVideoEncoder
  , VideoEncoderConfig(VideoEncoderConfig), unVideoEncoderConfig, noVideoEncoderConfig, gTypeVideoEncoderConfig
  , VideoEncoderEncodeOptions(VideoEncoderEncodeOptions), unVideoEncoderEncodeOptions, noVideoEncoderEncodeOptions, gTypeVideoEncoderEncodeOptions
  , VideoEncoderEncodeOptionsForAv1(VideoEncoderEncodeOptionsForAv1), unVideoEncoderEncodeOptionsForAv1, noVideoEncoderEncodeOptionsForAv1, gTypeVideoEncoderEncodeOptionsForAv1
  , VideoEncoderEncodeOptionsForAvc(VideoEncoderEncodeOptionsForAvc), unVideoEncoderEncodeOptionsForAvc, noVideoEncoderEncodeOptionsForAvc, gTypeVideoEncoderEncodeOptionsForAvc
  , VideoEncoderEncodeOptionsForHevc(VideoEncoderEncodeOptionsForHevc), unVideoEncoderEncodeOptionsForHevc, noVideoEncoderEncodeOptionsForHevc, gTypeVideoEncoderEncodeOptionsForHevc
  , VideoEncoderEncodeOptionsForVp9(VideoEncoderEncodeOptionsForVp9), unVideoEncoderEncodeOptionsForVp9, noVideoEncoderEncodeOptionsForVp9, gTypeVideoEncoderEncodeOptionsForVp9
  , VideoEncoderInit(VideoEncoderInit), unVideoEncoderInit, noVideoEncoderInit, gTypeVideoEncoderInit
  , VideoEncoderSupport(VideoEncoderSupport), unVideoEncoderSupport, noVideoEncoderSupport, gTypeVideoEncoderSupport
  , VideoFrame(VideoFrame), unVideoFrame, noVideoFrame, gTypeVideoFrame
  , VideoFrameBufferInit(VideoFrameBufferInit), unVideoFrameBufferInit, noVideoFrameBufferInit, gTypeVideoFrameBufferInit
  , VideoFrameCallbackMetadata(VideoFrameCallbackMetadata), unVideoFrameCallbackMetadata, noVideoFrameCallbackMetadata, gTypeVideoFrameCallbackMetadata
  , VideoFrameCopyToOptions(VideoFrameCopyToOptions), unVideoFrameCopyToOptions, noVideoFrameCopyToOptions, gTypeVideoFrameCopyToOptions
  , VideoFrameInit(VideoFrameInit), unVideoFrameInit, noVideoFrameInit, gTypeVideoFrameInit
  , VideoFrameMetadata(VideoFrameMetadata), unVideoFrameMetadata, noVideoFrameMetadata, gTypeVideoFrameMetadata
  , VideoPlaybackQuality(VideoPlaybackQuality), unVideoPlaybackQuality, noVideoPlaybackQuality, gTypeVideoPlaybackQuality
  , VideoTrack(VideoTrack), unVideoTrack, noVideoTrack, gTypeVideoTrack
  , VideoTrackList(VideoTrackList), unVideoTrackList, noVideoTrackList, gTypeVideoTrackList
  , ViewTimeline(ViewTimeline), unViewTimeline, noViewTimeline, gTypeViewTimeline
  , ViewTimelineOptions(ViewTimelineOptions), unViewTimelineOptions, noViewTimelineOptions, gTypeViewTimelineOptions
  , ViewTransition(ViewTransition), unViewTransition, noViewTransition, gTypeViewTransition
  , ViewTransitionTypeSet(ViewTransitionTypeSet), unViewTransitionTypeSet, noViewTransitionTypeSet, gTypeViewTransitionTypeSet
  , VisualViewport(VisualViewport), unVisualViewport, noVisualViewport, gTypeVisualViewport
  , WEBGL_color_buffer_float(WEBGL_color_buffer_float), unWEBGL_color_buffer_float, noWEBGL_color_buffer_float, gTypeWEBGL_color_buffer_float
  , WEBGL_compressed_texture_astc(WEBGL_compressed_texture_astc), unWEBGL_compressed_texture_astc, noWEBGL_compressed_texture_astc, gTypeWEBGL_compressed_texture_astc
  , WEBGL_compressed_texture_etc(WEBGL_compressed_texture_etc), unWEBGL_compressed_texture_etc, noWEBGL_compressed_texture_etc, gTypeWEBGL_compressed_texture_etc
  , WEBGL_compressed_texture_etc1(WEBGL_compressed_texture_etc1), unWEBGL_compressed_texture_etc1, noWEBGL_compressed_texture_etc1, gTypeWEBGL_compressed_texture_etc1
  , WEBGL_compressed_texture_pvrtc(WEBGL_compressed_texture_pvrtc), unWEBGL_compressed_texture_pvrtc, noWEBGL_compressed_texture_pvrtc, gTypeWEBGL_compressed_texture_pvrtc
  , WEBGL_compressed_texture_s3tc(WEBGL_compressed_texture_s3tc), unWEBGL_compressed_texture_s3tc, noWEBGL_compressed_texture_s3tc, gTypeWEBGL_compressed_texture_s3tc
  , WEBGL_compressed_texture_s3tc_srgb(WEBGL_compressed_texture_s3tc_srgb), unWEBGL_compressed_texture_s3tc_srgb, noWEBGL_compressed_texture_s3tc_srgb, gTypeWEBGL_compressed_texture_s3tc_srgb
  , WEBGL_debug_renderer_info(WEBGL_debug_renderer_info), unWEBGL_debug_renderer_info, noWEBGL_debug_renderer_info, gTypeWEBGL_debug_renderer_info
  , WEBGL_debug_shaders(WEBGL_debug_shaders), unWEBGL_debug_shaders, noWEBGL_debug_shaders, gTypeWEBGL_debug_shaders
  , WEBGL_depth_texture(WEBGL_depth_texture), unWEBGL_depth_texture, noWEBGL_depth_texture, gTypeWEBGL_depth_texture
  , WEBGL_draw_buffers(WEBGL_draw_buffers), unWEBGL_draw_buffers, noWEBGL_draw_buffers, gTypeWEBGL_draw_buffers
  , WEBGL_lose_context(WEBGL_lose_context), unWEBGL_lose_context, noWEBGL_lose_context, gTypeWEBGL_lose_context
  , WEBGL_multi_draw(WEBGL_multi_draw), unWEBGL_multi_draw, noWEBGL_multi_draw, gTypeWEBGL_multi_draw
  , WGSLLanguageFeatures(WGSLLanguageFeatures), unWGSLLanguageFeatures, noWGSLLanguageFeatures, gTypeWGSLLanguageFeatures
  , WakeLock(WakeLock), unWakeLock, noWakeLock, gTypeWakeLock
  , WakeLockSentinel(WakeLockSentinel), unWakeLockSentinel, noWakeLockSentinel, gTypeWakeLockSentinel
  , WaveShaperNode(WaveShaperNode), unWaveShaperNode, noWaveShaperNode, gTypeWaveShaperNode
  , WaveShaperOptions(WaveShaperOptions), unWaveShaperOptions, noWaveShaperOptions, gTypeWaveShaperOptions
  , WebGL2RenderingContext(WebGL2RenderingContext), unWebGL2RenderingContext, noWebGL2RenderingContext, gTypeWebGL2RenderingContext
  , WebGL2RenderingContextBase(WebGL2RenderingContextBase), unWebGL2RenderingContextBase, IsWebGL2RenderingContextBase, toWebGL2RenderingContextBase, noWebGL2RenderingContextBase, gTypeWebGL2RenderingContextBase
  , WebGL2RenderingContextOverloads(WebGL2RenderingContextOverloads), unWebGL2RenderingContextOverloads, IsWebGL2RenderingContextOverloads, toWebGL2RenderingContextOverloads, noWebGL2RenderingContextOverloads, gTypeWebGL2RenderingContextOverloads
  , WebGLActiveInfo(WebGLActiveInfo), unWebGLActiveInfo, noWebGLActiveInfo, gTypeWebGLActiveInfo
  , WebGLBuffer(WebGLBuffer), unWebGLBuffer, noWebGLBuffer, gTypeWebGLBuffer
  , WebGLContextAttributes(WebGLContextAttributes), unWebGLContextAttributes, noWebGLContextAttributes, gTypeWebGLContextAttributes
  , WebGLContextEvent(WebGLContextEvent), unWebGLContextEvent, noWebGLContextEvent, gTypeWebGLContextEvent
  , WebGLContextEventInit(WebGLContextEventInit), unWebGLContextEventInit, noWebGLContextEventInit, gTypeWebGLContextEventInit
  , WebGLFramebuffer(WebGLFramebuffer), unWebGLFramebuffer, noWebGLFramebuffer, gTypeWebGLFramebuffer
  , WebGLObject(WebGLObject), unWebGLObject, IsWebGLObject, toWebGLObject, noWebGLObject, gTypeWebGLObject
  , WebGLProgram(WebGLProgram), unWebGLProgram, noWebGLProgram, gTypeWebGLProgram
  , WebGLQuery(WebGLQuery), unWebGLQuery, noWebGLQuery, gTypeWebGLQuery
  , WebGLRenderbuffer(WebGLRenderbuffer), unWebGLRenderbuffer, noWebGLRenderbuffer, gTypeWebGLRenderbuffer
  , WebGLRenderingContext(WebGLRenderingContext), unWebGLRenderingContext, noWebGLRenderingContext, gTypeWebGLRenderingContext
  , WebGLRenderingContextBase(WebGLRenderingContextBase), unWebGLRenderingContextBase, IsWebGLRenderingContextBase, toWebGLRenderingContextBase, noWebGLRenderingContextBase, gTypeWebGLRenderingContextBase
  , WebGLRenderingContextOverloads(WebGLRenderingContextOverloads), unWebGLRenderingContextOverloads, IsWebGLRenderingContextOverloads, toWebGLRenderingContextOverloads, noWebGLRenderingContextOverloads, gTypeWebGLRenderingContextOverloads
  , WebGLSampler(WebGLSampler), unWebGLSampler, noWebGLSampler, gTypeWebGLSampler
  , WebGLShader(WebGLShader), unWebGLShader, noWebGLShader, gTypeWebGLShader
  , WebGLShaderPrecisionFormat(WebGLShaderPrecisionFormat), unWebGLShaderPrecisionFormat, noWebGLShaderPrecisionFormat, gTypeWebGLShaderPrecisionFormat
  , WebGLSync(WebGLSync), unWebGLSync, noWebGLSync, gTypeWebGLSync
  , WebGLTexture(WebGLTexture), unWebGLTexture, noWebGLTexture, gTypeWebGLTexture
  , WebGLTransformFeedback(WebGLTransformFeedback), unWebGLTransformFeedback, noWebGLTransformFeedback, gTypeWebGLTransformFeedback
  , WebGLUniformLocation(WebGLUniformLocation), unWebGLUniformLocation, noWebGLUniformLocation, gTypeWebGLUniformLocation
  , WebGLVertexArrayObject(WebGLVertexArrayObject), unWebGLVertexArrayObject, noWebGLVertexArrayObject, gTypeWebGLVertexArrayObject
  , WebGLVertexArrayObjectOES(WebGLVertexArrayObjectOES), unWebGLVertexArrayObjectOES, noWebGLVertexArrayObjectOES, gTypeWebGLVertexArrayObjectOES
  , WebSocket(WebSocket), unWebSocket, noWebSocket, gTypeWebSocket
  , WebTransport(WebTransport), unWebTransport, noWebTransport, gTypeWebTransport
  , WebTransportBidirectionalStream(WebTransportBidirectionalStream), unWebTransportBidirectionalStream, noWebTransportBidirectionalStream, gTypeWebTransportBidirectionalStream
  , WebTransportCloseInfo(WebTransportCloseInfo), unWebTransportCloseInfo, noWebTransportCloseInfo, gTypeWebTransportCloseInfo
  , WebTransportConnectionStats(WebTransportConnectionStats), unWebTransportConnectionStats, noWebTransportConnectionStats, gTypeWebTransportConnectionStats
  , WebTransportDatagramDuplexStream(WebTransportDatagramDuplexStream), unWebTransportDatagramDuplexStream, noWebTransportDatagramDuplexStream, gTypeWebTransportDatagramDuplexStream
  , WebTransportDatagramStats(WebTransportDatagramStats), unWebTransportDatagramStats, noWebTransportDatagramStats, gTypeWebTransportDatagramStats
  , WebTransportDatagramsWritable(WebTransportDatagramsWritable), unWebTransportDatagramsWritable, noWebTransportDatagramsWritable, gTypeWebTransportDatagramsWritable
  , WebTransportError(WebTransportError), unWebTransportError, noWebTransportError, gTypeWebTransportError
  , WebTransportErrorOptions(WebTransportErrorOptions), unWebTransportErrorOptions, noWebTransportErrorOptions, gTypeWebTransportErrorOptions
  , WebTransportHash(WebTransportHash), unWebTransportHash, noWebTransportHash, gTypeWebTransportHash
  , WebTransportOptions(WebTransportOptions), unWebTransportOptions, noWebTransportOptions, gTypeWebTransportOptions
  , WebTransportReceiveStream(WebTransportReceiveStream), unWebTransportReceiveStream, noWebTransportReceiveStream, gTypeWebTransportReceiveStream
  , WebTransportReceiveStreamStats(WebTransportReceiveStreamStats), unWebTransportReceiveStreamStats, noWebTransportReceiveStreamStats, gTypeWebTransportReceiveStreamStats
  , WebTransportSendGroup(WebTransportSendGroup), unWebTransportSendGroup, noWebTransportSendGroup, gTypeWebTransportSendGroup
  , WebTransportSendOptions(WebTransportSendOptions), unWebTransportSendOptions, IsWebTransportSendOptions, toWebTransportSendOptions, noWebTransportSendOptions, gTypeWebTransportSendOptions
  , WebTransportSendStream(WebTransportSendStream), unWebTransportSendStream, noWebTransportSendStream, gTypeWebTransportSendStream
  , WebTransportSendStreamOptions(WebTransportSendStreamOptions), unWebTransportSendStreamOptions, noWebTransportSendStreamOptions, gTypeWebTransportSendStreamOptions
  , WebTransportSendStreamStats(WebTransportSendStreamStats), unWebTransportSendStreamStats, noWebTransportSendStreamStats, gTypeWebTransportSendStreamStats
  , WebTransportWriter(WebTransportWriter), unWebTransportWriter, noWebTransportWriter, gTypeWebTransportWriter
  , WheelEvent(WheelEvent), unWheelEvent, noWheelEvent, gTypeWheelEvent
  , WheelEventInit(WheelEventInit), unWheelEventInit, noWheelEventInit, gTypeWheelEventInit
  , Window(Window), unWindow, noWindow, gTypeWindow
  , WindowClient(WindowClient), unWindowClient, noWindowClient, gTypeWindowClient
  , WindowEventHandlers(WindowEventHandlers), unWindowEventHandlers, IsWindowEventHandlers, toWindowEventHandlers, noWindowEventHandlers, gTypeWindowEventHandlers
  , WindowLocalStorage(WindowLocalStorage), unWindowLocalStorage, IsWindowLocalStorage, toWindowLocalStorage, noWindowLocalStorage, gTypeWindowLocalStorage
  , WindowOrWorkerGlobalScope(WindowOrWorkerGlobalScope), unWindowOrWorkerGlobalScope, IsWindowOrWorkerGlobalScope, toWindowOrWorkerGlobalScope, noWindowOrWorkerGlobalScope, gTypeWindowOrWorkerGlobalScope
  , WindowPostMessageOptions(WindowPostMessageOptions), unWindowPostMessageOptions, noWindowPostMessageOptions, gTypeWindowPostMessageOptions
  , WindowSessionStorage(WindowSessionStorage), unWindowSessionStorage, IsWindowSessionStorage, toWindowSessionStorage, noWindowSessionStorage, gTypeWindowSessionStorage
  , Worker(Worker), unWorker, noWorker, gTypeWorker
  , WorkerAndParameters(WorkerAndParameters), unWorkerAndParameters, noWorkerAndParameters, gTypeWorkerAndParameters
  , WorkerGlobalScope(WorkerGlobalScope), unWorkerGlobalScope, IsWorkerGlobalScope, toWorkerGlobalScope, noWorkerGlobalScope, gTypeWorkerGlobalScope
  , WorkerLocation(WorkerLocation), unWorkerLocation, noWorkerLocation, gTypeWorkerLocation
  , WorkerNavigator(WorkerNavigator), unWorkerNavigator, noWorkerNavigator, gTypeWorkerNavigator
  , WorkerOptions(WorkerOptions), unWorkerOptions, IsWorkerOptions, toWorkerOptions, noWorkerOptions, gTypeWorkerOptions
  , Worklet(Worklet), unWorklet, IsWorklet, toWorklet, noWorklet, gTypeWorklet
  , WorkletGlobalScope(WorkletGlobalScope), unWorkletGlobalScope, IsWorkletGlobalScope, toWorkletGlobalScope, noWorkletGlobalScope, gTypeWorkletGlobalScope
  , WorkletOptions(WorkletOptions), unWorkletOptions, noWorkletOptions, gTypeWorkletOptions
  , WritableStream(WritableStream), unWritableStream, IsWritableStream, toWritableStream, noWritableStream, gTypeWritableStream
  , WritableStreamDefaultController(WritableStreamDefaultController), unWritableStreamDefaultController, noWritableStreamDefaultController, gTypeWritableStreamDefaultController
  , WritableStreamDefaultWriter(WritableStreamDefaultWriter), unWritableStreamDefaultWriter, IsWritableStreamDefaultWriter, toWritableStreamDefaultWriter, noWritableStreamDefaultWriter, gTypeWritableStreamDefaultWriter
  , WriteParams(WriteParams), unWriteParams, noWriteParams, gTypeWriteParams
  , XMLDocument(XMLDocument), unXMLDocument, noXMLDocument, gTypeXMLDocument
  , XMLHttpRequest(XMLHttpRequest), unXMLHttpRequest, noXMLHttpRequest, gTypeXMLHttpRequest
  , XMLHttpRequestEventTarget(XMLHttpRequestEventTarget), unXMLHttpRequestEventTarget, IsXMLHttpRequestEventTarget, toXMLHttpRequestEventTarget, noXMLHttpRequestEventTarget, gTypeXMLHttpRequestEventTarget
  , XMLHttpRequestUpload(XMLHttpRequestUpload), unXMLHttpRequestUpload, noXMLHttpRequestUpload, gTypeXMLHttpRequestUpload
  , XMLSerializer(XMLSerializer), unXMLSerializer, noXMLSerializer, gTypeXMLSerializer
  , XPathEvaluator(XPathEvaluator), unXPathEvaluator, noXPathEvaluator, gTypeXPathEvaluator
  , XPathEvaluatorBase(XPathEvaluatorBase), unXPathEvaluatorBase, IsXPathEvaluatorBase, toXPathEvaluatorBase, noXPathEvaluatorBase, gTypeXPathEvaluatorBase
  , XPathExpression(XPathExpression), unXPathExpression, noXPathExpression, gTypeXPathExpression
  , XPathResult(XPathResult), unXPathResult, noXPathResult, gTypeXPathResult
  , XSLTProcessor(XSLTProcessor), unXSLTProcessor, noXSLTProcessor, gTypeXSLTProcessor
-- AUTO GENERATION ENDS HERE
  ) where

import Control.Applicative ((<$>))
import qualified Data.Text as T (unpack, Text)
import qualified Data.Text.Lazy as LT (Text)
import Data.JSString (pack, unpack)
import Data.JSString.Text (textToJSString, textFromJSString, lazyTextToJSString, lazyTextFromJSString)
import GHCJS.Types (JSVal(..), jsval, nullRef, isNull, isUndefined, JSString(..))
import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
import GHCJS.Nullable (Nullable(..), nullableToMaybe, maybeToNullable)
import GHCJS.Int53
import GHCJS.Foreign (jsUndefined)
import GHC.JS.Foreign.Callback (Callback(..))
import Control.Monad.IO.Class (MonadIO(..))
import Data.Int (Int8, Int16, Int32, Int64)
import Data.Word (Word8, Word16, Word32, Word64)
import Data.Coerce (coerce, Coercible)
import Data.Monoid ((<>))
import Data.Typeable (Typeable)
import Control.Monad (unless)
import Control.Exception (throwIO, Exception(..))
#if MIN_VERSION_base(4,9,0)
import GHC.Stack (HasCallStack)
#else
import GHC.Exts (Constraint)
type HasCallStack = (() :: Constraint)
#endif

-- | Identifies a JavaScript execution context.
--   When using GHCJS this is just '()' since their is only one context.
--   When using GHC it includes the functions JSaddle needs to communicate
--   with the JavaScript context.
type JSContextRef = ()

-- | This is the same as 'JSContextRef' except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)
type DOMContext = ()

-- | The 'JSM' monad keeps track of the JavaScript execution context.
--
--   When using GHCJS it is `IO`.
--
--   Given a 'JSM' function and a 'JSContextRef' you can run the
--   function like this...
--
-- > runJSM jsmFunction javaScriptContext
type JSM = IO

-- | This is the same as 'JSM' except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)
type DOM = IO

-- | The 'MonadJSM' is to 'JSM' what 'MonadIO' is to 'IO'.
--   When using GHCJS it is 'MonadIO'.
type MonadJSM = MonadIO

-- | This is the same as 'MonadJSM' except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)
type MonadDOM = MonadIO

-- | The 'liftJSM' is to 'JSM' what 'liftIO' is to 'IO'.
--   When using GHCJS it is 'liftIO'.
liftJSM :: MonadJSM m => JSM a -> m a
liftJSM = liftIO

-- | This is the same as 'liftJSM' except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)
liftDOM :: MonadDOM m => DOM a -> m a
liftDOM = liftIO

-- | Gets the JavaScript context from the monad
askJSM :: MonadJSM m => m JSContextRef
askJSM = return ()

-- | This is the same as 'askJSM' except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)
askDOM :: MonadDOM m => m DOMContext
askDOM = return ()

-- | Runs a 'JSM' JavaScript function in a given JavaScript context.
runJSM :: MonadIO m => JSM a -> JSContextRef -> m a
runJSM f = liftIO . const f

-- | This is the same as 'runJSM' except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)
runDOM :: MonadIO m => DOM a -> DOMContext -> m a
runDOM f = liftIO . const f

maybeJSNullOrUndefined :: JSVal -> Maybe JSVal
maybeJSNullOrUndefined r | isNull r || isUndefined r = Nothing
maybeJSNullOrUndefined r = Just r

-- | Like `Nullabble` but `maybeToOptional` converts `Nothing` to `jsUndefined`.
newtype Optional a = Optional JSVal

maybeToOptional :: PToJSVal a => Maybe a -> Optional a
maybeToOptional Nothing = Optional jsUndefined
maybeToOptional (Just x) = Optional (pToJSVal x)
{-# INLINE maybeToOptional #-}

propagateGError = id

newtype GType = GType JSVal

foreign import javascript unsafe "(($1) => $1.name)" gTypeToString :: GType -> JSString

foreign import javascript unsafe
  "(($1, $2) => $1===$2)" js_eq :: JSVal -> JSVal -> Bool

strictEqual :: (ToJSVal a, ToJSVal b) => a -> b -> JSM Bool
strictEqual a b = do
    aval <- toJSVal a
    bval <- toJSVal b
    return $ js_eq aval bval

foreign import javascript unsafe "h$isInstanceOf"
    typeInstanceIsA' :: JSVal -> JSVal -> Bool

typeInstanceIsA o (GType t) = typeInstanceIsA' o t

-- | Safe but slow way to cast
--
-- > castTo Element x >>= \case
-- >     Nothing      -> error "Was not an element"
-- >     Just element -> ...
castTo :: forall obj obj' m. (Coercible obj JSVal, IsGObject obj', MonadJSM m) => (JSVal -> obj') -> obj -> m (Maybe obj')
castTo constructor obj = liftJSM $ do
  let gtype = typeGType (undefined :: obj')
      jsval = coerce obj
  if typeInstanceIsA jsval gtype
    then return . Just $ constructor jsval
    else return Nothing

-- | Unsafe way to cast.  Slow but if it fails an error message will
--   result and the message should be clear (uses HasCallStack).
--
-- > element <- unsafeCastTo Element x
unsafeCastTo :: forall obj obj' m. (HasCallStack, Coercible obj JSVal, IsGObject obj', MonadJSM m) => (JSVal -> obj') -> obj -> m obj'
unsafeCastTo constructor obj = liftJSM $ do
  let gtype = typeGType (undefined :: obj')
      jsval = coerce obj
  if typeInstanceIsA jsval gtype
    then return $ constructor jsval
    else do
      let destType = textFromJSString . gTypeToString $ typeGType (undefined :: obj')
      error $ "unsafeCastTo :: invalid conversion to "
        <> T.unpack destType <> " requested."

-- | Unsafe way to cast, super fast but if it fails you program
--   will probably crash later on in some unpredictable way.
--
-- > element <- uncheckedCastTo Element x
uncheckedCastTo :: (Coercible obj JSVal, IsGObject obj') => (JSVal -> obj') -> obj -> obj'
uncheckedCastTo constructor = constructor . coerce

-- | Determine if this is an instance of a particular type
--
isA :: IsGObject o => o -> GType -> Bool
isA obj = typeInstanceIsA (unGObject $ toGObject obj)

newtype GObject = GObject { unGObject :: JSVal }
noGObject :: Maybe GObject
noGObject = Nothing
{-# INLINE noGObject #-}

class (ToJSVal o, FromJSVal o, Coercible o JSVal) => IsGObject o where
  -- | Given object get the GType of the type.  The actual argument
  --   passed in is ignored.
  typeGType :: o -> GType

-- | Safe upcast.
toGObject :: IsGObject o => o -> GObject
toGObject = GObject . coerce

instance PToJSVal GObject where
  pToJSVal = unGObject
  {-# INLINE pToJSVal #-}

instance PFromJSVal GObject where
  pFromJSVal = GObject
  {-# INLINE pFromJSVal #-}

instance ToJSVal GObject where
  toJSVal = return . unGObject
  {-# INLINE toJSVal #-}

instance FromJSVal GObject where
  fromJSVal = return . fmap GObject . maybeJSNullOrUndefined
  {-# 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 #-}

castToGObject :: IsGObject obj => obj -> IO obj
castToGObject = return

foreign import javascript unsafe "Object" gTypeGObject :: GType

foreign import javascript unsafe "(($1) => $1[\"toString\"]())" js_objectToString :: GObject -> IO JSString

objectToString :: (MonadIO m, IsGObject self, FromJSString result) => self -> m result
objectToString self = liftIO (fromJSString <$> js_objectToString (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
noDOMString :: Maybe DOMString
noDOMString = Nothing
{-# INLINE noDOMString #-}
type CSSOMString = JSString
noCSSOMString :: Maybe CSSOMString
noCSSOMString = Nothing
{-# INLINE noCSSOMString #-}
type USVString = JSString
noUSVString :: Maybe USVString
noUSVString = Nothing
{-# INLINE noUSVString #-}
type ByteString = JSString
noByteString :: Maybe ByteString
noByteString = Nothing
{-# INLINE noByteString #-}

class (PToJSVal a, ToJSVal a) => ToJSString a
class (PFromJSVal a, FromJSVal a) => FromJSString a

toJSString :: ToJSString a => a -> JSString
toJSString = pFromJSVal . pToJSVal
{-# INLINE toJSString #-}

fromJSString :: FromJSString a => JSString -> a
fromJSString = pFromJSVal . pToJSVal
{-# INLINE fromJSString #-}

toMaybeJSString :: ToJSString a => Maybe a -> Nullable JSString
toMaybeJSString = Nullable . pToJSVal
{-# INLINE toMaybeJSString #-}

toOptionalJSString :: ToJSString a => Maybe a -> Optional JSString
toOptionalJSString Nothing = Optional jsUndefined
toOptionalJSString (Just a) = Optional (pToJSVal a)
{-# INLINE toOptionalJSString #-}

fromMaybeJSString :: FromJSString a => Nullable JSString -> Maybe a
fromMaybeJSString (Nullable r) = pFromJSVal r
{-# INLINE fromMaybeJSString #-}

instance ToJSString   [Char]
instance FromJSString [Char]
instance ToJSString   T.Text
instance FromJSString T.Text
instance ToJSString   JSString
instance FromJSString JSString

noJSString :: Maybe JSString
noJSString = Nothing
{-# INLINE noJSString #-}

type ToDOMString s = ToJSString s
type FromDOMString s = FromJSString s
type IsDOMString s = (ToDOMString s, FromDOMString s)
type IsCSSOMString s = (ToDOMString s, FromDOMString s)
type IsUSVString s = (ToDOMString s, FromDOMString s)
type IsByteString s = (ToDOMString s, FromDOMString s)

newtype RawTypedArray = RawTypedArray { unRawTypedArray :: JSVal }
noRawTypedArray :: Maybe RawTypedArray
noRawTypedArray = Nothing
{-# INLINE noRawTypedArray #-}

instance PToJSVal RawTypedArray where
  pToJSVal = unRawTypedArray
  {-# INLINE pToJSVal #-}

instance PFromJSVal RawTypedArray where
  pFromJSVal = RawTypedArray
  {-# INLINE pFromJSVal #-}

instance ToJSVal RawTypedArray where
  toJSVal = return . unRawTypedArray
  {-# INLINE toJSVal #-}

instance FromJSVal RawTypedArray where
  fromJSVal = return . fmap RawTypedArray . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsRawTypedArray o

toRawTypedArray :: IsRawTypedArray o => o -> RawTypedArray
toRawTypedArray = RawTypedArray . coerce

newtype Function = Function { unFunction :: JSVal }
noFunction :: Maybe Function
noFunction = Nothing
{-# INLINE noFunction #-}

instance PToJSVal Function where
  pToJSVal = unFunction
  {-# INLINE pToJSVal #-}

instance PFromJSVal Function where
  pFromJSVal = Function
  {-# INLINE pFromJSVal #-}

instance ToJSVal Function where
  toJSVal = return . unFunction
  {-# INLINE toJSVal #-}

instance FromJSVal Function where
  fromJSVal = return . fmap Function . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsFunction o

toFunction :: IsFunction o => o -> Function
toFunction = Function . coerce

instance IsFunction Function

-- Promise
newtype PromiseRejected = PromiseRejected { rejectionReason :: JSVal } deriving (Typeable)
noPromiseRejected :: Maybe PromiseRejected
noPromiseRejected = Nothing
{-# INLINE noPromiseRejected #-}

maybeThrowPromiseRejected :: JSVal -> IO ()
maybeThrowPromiseRejected e = unless (isNull e) $ throwIO (PromiseRejected e)
{-# INLINE maybeThrowPromiseRejected #-}

checkPromiseResult :: (JSVal, a) -> IO a
checkPromiseResult (e, a) = maybeThrowPromiseRejected e >> return a
{-# INLINE checkPromiseResult #-}

instance Show PromiseRejected where
    show _ = "A promise was rejected"
instance Exception PromiseRejected

-- Callbacks
-- Custom types
type DOMHighResTimeStamp = Double
noDOMHighResTimeStamp :: Maybe DOMHighResTimeStamp
noDOMHighResTimeStamp = Nothing
{-# INLINE noDOMHighResTimeStamp #-}
type PerformanceEntryList = [PerformanceEntry]
noPerformanceEntryList :: Maybe PerformanceEntryList
noPerformanceEntryList = Nothing
{-# INLINE noPerformanceEntryList #-}

-- Record Type
newtype Record key value = Record { unRecord :: JSVal }

instance PToJSVal (Record key value) where
  pToJSVal = unRecord
  {-# INLINE pToJSVal #-}

instance PFromJSVal (Record key value) where
  pFromJSVal = Record
  {-# INLINE pFromJSVal #-}

instance ToJSVal (Record key value) where
  toJSVal = return . unRecord
  {-# INLINE toJSVal #-}

instance FromJSVal (Record key value) where
  fromJSVal = return . fmap Record . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

-- | A structured-clone value, e.g. @History.state@.  The current specs type
-- these as @any@ (so the generated functions use 'JSVal'); this wrapper is
-- kept because downstream APIs (reflex-dom's HistoryItem) use it.
newtype SerializedScriptValue = SerializedScriptValue { unSerializedScriptValue :: JSVal }
noSerializedScriptValue :: Maybe SerializedScriptValue
noSerializedScriptValue = Nothing
{-# INLINE noSerializedScriptValue #-}

instance Eq SerializedScriptValue where
  (SerializedScriptValue a) == (SerializedScriptValue b) = js_eq a b

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 = return . fmap SerializedScriptValue . maybeJSNullOrUndefined
  {-# 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"

newtype Dictionary = Dictionary { unDictionary :: JSVal }
noDictionary :: Maybe Dictionary
noDictionary = Nothing
{-# INLINE noDictionary #-}

instance Eq Dictionary where
  (Dictionary a) == (Dictionary b) = js_eq a b

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 = return . fmap Dictionary . maybeJSNullOrUndefined
  {-# 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"

newtype ArrayBuffer = ArrayBuffer { unArrayBuffer :: JSVal }
noArrayBuffer :: Maybe ArrayBuffer
noArrayBuffer = Nothing
{-# INLINE noArrayBuffer #-}

instance Eq ArrayBuffer where
  (ArrayBuffer a) == (ArrayBuffer b) = js_eq a b

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 = return . fmap ArrayBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsArrayBuffer o
toArrayBuffer :: IsArrayBuffer o => o -> ArrayBuffer
toArrayBuffer = ArrayBuffer . coerce

instance IsArrayBuffer ArrayBuffer
instance IsGObject ArrayBuffer where
  typeGType _ = gTypeArrayBuffer

foreign import javascript unsafe "(() => window[\"ArrayBuffer\"])" gTypeArrayBuffer :: GType

newtype Float32Array = Float32Array { unFloat32Array :: JSVal }
noFloat32Array :: Maybe Float32Array
noFloat32Array = Nothing
{-# INLINE noFloat32Array #-}

instance Eq Float32Array where
  (Float32Array a) == (Float32Array b) = js_eq a b

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 = return . fmap Float32Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsFloat32Array o
toFloat32Array :: IsFloat32Array o => o -> Float32Array
toFloat32Array = Float32Array . coerce

instance IsFloat32Array Float32Array
instance IsGObject Float32Array where
  typeGType _ = gTypeFloat32Array

foreign import javascript unsafe "(() => window[\"Float32Array\"])" gTypeFloat32Array :: GType

newtype Float64Array = Float64Array { unFloat64Array :: JSVal }
noFloat64Array :: Maybe Float64Array
noFloat64Array = Nothing
{-# INLINE noFloat64Array #-}

instance Eq Float64Array where
  (Float64Array a) == (Float64Array b) = js_eq a b

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 = return . fmap Float64Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsFloat64Array o
toFloat64Array :: IsFloat64Array o => o -> Float64Array
toFloat64Array = Float64Array . coerce

instance IsFloat64Array Float64Array
instance IsGObject Float64Array where
  typeGType _ = gTypeFloat64Array

foreign import javascript unsafe "(() => window[\"Float64Array\"])" gTypeFloat64Array :: GType

newtype Uint8Array = Uint8Array { unUint8Array :: JSVal }
noUint8Array :: Maybe Uint8Array
noUint8Array = Nothing
{-# INLINE noUint8Array #-}

instance Eq Uint8Array where
  (Uint8Array a) == (Uint8Array b) = js_eq a b

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 = return . fmap Uint8Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsUint8Array o
toUint8Array :: IsUint8Array o => o -> Uint8Array
toUint8Array = Uint8Array . coerce

instance IsUint8Array Uint8Array
instance IsGObject Uint8Array where
  typeGType _ = gTypeUint8Array

foreign import javascript unsafe "(() => window[\"Uint8Array\"])" gTypeUint8Array :: GType

newtype Uint8ClampedArray = Uint8ClampedArray { unUint8ClampedArray :: JSVal }
noUint8ClampedArray :: Maybe Uint8ClampedArray
noUint8ClampedArray = Nothing
{-# INLINE noUint8ClampedArray #-}

instance Eq Uint8ClampedArray where
  (Uint8ClampedArray a) == (Uint8ClampedArray b) = js_eq a b

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 = return . fmap Uint8ClampedArray . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsUint8ClampedArray o
toUint8ClampedArray :: IsUint8ClampedArray o => o -> Uint8ClampedArray
toUint8ClampedArray = Uint8ClampedArray . coerce

instance IsUint8ClampedArray Uint8ClampedArray
instance IsGObject Uint8ClampedArray where
  typeGType _ = gTypeUint8ClampedArray

foreign import javascript unsafe "(() => window[\"Uint8ClampedArray\"])" gTypeUint8ClampedArray :: GType

newtype Uint16Array = Uint16Array { unUint16Array :: JSVal }
noUint16Array :: Maybe Uint16Array
noUint16Array = Nothing
{-# INLINE noUint16Array #-}

instance Eq Uint16Array where
  (Uint16Array a) == (Uint16Array b) = js_eq a b

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 = return . fmap Uint16Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsUint16Array o
toUint16Array :: IsUint16Array o => o -> Uint16Array
toUint16Array = Uint16Array . coerce

instance IsUint16Array Uint16Array
instance IsGObject Uint16Array where
  typeGType _ = gTypeUint16Array

foreign import javascript unsafe "(() => window[\"Uint16Array\"])" gTypeUint16Array :: GType

newtype Uint32Array = Uint32Array { unUint32Array :: JSVal }
noUint32Array :: Maybe Uint32Array
noUint32Array = Nothing
{-# INLINE noUint32Array #-}

instance Eq Uint32Array where
  (Uint32Array a) == (Uint32Array b) = js_eq a b

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 = return . fmap Uint32Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsUint32Array o
toUint32Array :: IsUint32Array o => o -> Uint32Array
toUint32Array = Uint32Array . coerce

instance IsUint32Array Uint32Array
instance IsGObject Uint32Array where
  typeGType _ = gTypeUint32Array

foreign import javascript unsafe "(() => window[\"Uint32Array\"])" gTypeUint32Array :: GType

newtype Int8Array = Int8Array { unInt8Array :: JSVal }
noInt8Array :: Maybe Int8Array
noInt8Array = Nothing
{-# INLINE noInt8Array #-}

instance Eq Int8Array where
  (Int8Array a) == (Int8Array b) = js_eq a b

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 = return . fmap Int8Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsInt8Array o
toInt8Array :: IsInt8Array o => o -> Int8Array
toInt8Array = Int8Array . coerce

instance IsInt8Array Int8Array
instance IsGObject Int8Array where
  typeGType _ = gTypeInt8Array

foreign import javascript unsafe "(() => window[\"Int8Array\"])" gTypeInt8Array :: GType

newtype Int16Array = Int16Array { unInt16Array :: JSVal }
noInt16Array :: Maybe Int16Array
noInt16Array = Nothing
{-# INLINE noInt16Array #-}

instance Eq Int16Array where
  (Int16Array a) == (Int16Array b) = js_eq a b

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 = return . fmap Int16Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsInt16Array o
toInt16Array :: IsInt16Array o => o -> Int16Array
toInt16Array = Int16Array . coerce

instance IsInt16Array Int16Array
instance IsGObject Int16Array where
  typeGType _ = gTypeInt16Array

foreign import javascript unsafe "(() => window[\"Int16Array\"])" gTypeInt16Array :: GType

newtype Int32Array = Int32Array { unInt32Array :: JSVal }
noInt32Array :: Maybe Int32Array
noInt32Array = Nothing
{-# INLINE noInt32Array #-}

instance Eq Int32Array where
  (Int32Array a) == (Int32Array b) = js_eq a b

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 = return . fmap Int32Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsInt32Array o
toInt32Array :: IsInt32Array o => o -> Int32Array
toInt32Array = Int32Array . coerce

instance IsInt32Array Int32Array
instance IsGObject Int32Array where
  typeGType _ = gTypeInt32Array

foreign import javascript unsafe "(() => window[\"Int32Array\"])" gTypeInt32Array :: GType

newtype ObjectArray = ObjectArray { unObjectArray :: JSVal }
noObjectArray :: Maybe ObjectArray
noObjectArray = Nothing
{-# INLINE noObjectArray #-}

instance Eq ObjectArray where
  (ObjectArray a) == (ObjectArray b) = js_eq a b

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 = return . fmap ObjectArray . maybeJSNullOrUndefined
  {-# 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"

newtype ArrayBufferView = ArrayBufferView { unArrayBufferView :: JSVal }
noArrayBufferView :: Maybe ArrayBufferView
noArrayBufferView = Nothing
{-# INLINE noArrayBufferView #-}

instance Eq ArrayBufferView where
  (ArrayBufferView a) == (ArrayBufferView b) = js_eq a b

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 = return . fmap ArrayBufferView . maybeJSNullOrUndefined
  {-# 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"

newtype Array = Array { unArray :: JSVal }
noArray :: Maybe Array
noArray = Nothing
{-# INLINE noArray #-}

instance Eq Array where
  (Array a) == (Array b) = js_eq a b

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 = return . fmap Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsArray o
toArray :: IsArray o => o -> Array
toArray = Array . coerce

instance IsArray Array
instance IsGObject Array where
  typeGType _ = gTypeArray

foreign import javascript unsafe "(() => window[\"Array\"])" gTypeArray :: GType

newtype Date = Date { unDate :: JSVal }
noDate :: Maybe Date
noDate = Nothing
{-# INLINE noDate #-}

instance Eq Date where
  (Date a) == (Date b) = js_eq a b

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 = return . fmap Date . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

class IsGObject o => IsDate o
toDate :: IsDate o => o -> Date
toDate = Date . coerce

instance IsDate Date
instance IsGObject Date where
  typeGType _ = gTypeDate

foreign import javascript unsafe "(() => window[\"Date\"])" gTypeDate :: GType


type GLenum = Word32
noGLenum :: Maybe GLenum
noGLenum = Nothing
{-# INLINE noGLenum #-}
type GLboolean = Bool
noGLboolean :: Maybe GLboolean
noGLboolean = Nothing
{-# INLINE noGLboolean #-}
type GLbitfield = Word32
noGLbitfield :: Maybe GLbitfield
noGLbitfield = Nothing
{-# INLINE noGLbitfield #-}
type GLbyte = Int8
noGLbyte :: Maybe GLbyte
noGLbyte = Nothing
{-# INLINE noGLbyte #-}
type GLshort = Int16
noGLshort :: Maybe GLshort
noGLshort = Nothing
{-# INLINE noGLshort #-}
type GLint = Int32
noGLint :: Maybe GLint
noGLint = Nothing
{-# INLINE noGLint #-}
type GLint64 = Int64
noGLint64 :: Maybe GLint64
noGLint64 = Nothing
{-# INLINE noGLint64 #-}
type GLsizei = Int32
noGLsizei :: Maybe GLsizei
noGLsizei = Nothing
{-# INLINE noGLsizei #-}
type GLintptr = Int64
noGLintptr :: Maybe GLintptr
noGLintptr = Nothing
{-# INLINE noGLintptr #-}
type GLsizeiptr = Int64
noGLsizeiptr :: Maybe GLsizeiptr
noGLsizeiptr = Nothing
{-# INLINE noGLsizeiptr #-}
type GLubyte = Word8
noGLubyte :: Maybe GLubyte
noGLubyte = Nothing
{-# INLINE noGLubyte #-}
type GLushort = Word16
noGLushort :: Maybe GLushort
noGLushort = Nothing
{-# INLINE noGLushort #-}
type GLuint = Word32
noGLuint :: Maybe GLuint
noGLuint = Nothing
{-# INLINE noGLuint #-}
type GLuint64 = Word64
noGLuint64 :: Maybe GLuint64
noGLuint64 = Nothing
{-# INLINE noGLuint64 #-}
type GLfloat = Double
noGLfloat :: Maybe GLfloat
noGLfloat = Nothing
{-# INLINE noGLfloat #-}
type GLclampf = Double
noGLclampf :: Maybe GLclampf
noGLclampf = Nothing
{-# INLINE noGLclampf #-}

-- This type is used to access the `globalThis` (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)
newtype GlobalThis = GlobalThis { unGlobalThis :: JSVal }

instance Eq (GlobalThis) where
  (GlobalThis a) == (GlobalThis b) = js_eq a b

instance PToJSVal GlobalThis where
  pToJSVal = unGlobalThis
  {-# INLINE pToJSVal #-}

instance PFromJSVal GlobalThis where
  pFromJSVal = GlobalThis
  {-# INLINE pFromJSVal #-}

instance ToJSVal GlobalThis where
  toJSVal = return . unGlobalThis
  {-# INLINE toJSVal #-}

instance FromJSVal GlobalThis where
  fromJSVal = return . fmap GlobalThis . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}

instance IsGObject GlobalThis where
  typeGType _ = error "Unable to get the JavaScript type of GlobalThis"

instance IsEventTarget GlobalThis
instance IsWindowOrWorkerGlobalScope GlobalThis
instance IsGlobalEventHandlers GlobalThis
noGlobalThis :: Maybe GlobalThis
noGlobalThis = Nothing
{-# INLINE noGlobalThis #-}

-- AUTO GENERATION STARTS HERE
-- The remainder of this file is generated from webref IDL by dom-gen. Do not edit.
newtype AddEventListenerOptionsOrBool = AddEventListenerOptionsOrBool { unAddEventListenerOptionsOrBool :: JSVal }

instance Eq AddEventListenerOptionsOrBool where
  (AddEventListenerOptionsOrBool a) == (AddEventListenerOptionsOrBool b) = js_eq a b

instance PToJSVal AddEventListenerOptionsOrBool where
  pToJSVal = unAddEventListenerOptionsOrBool
  {-# INLINE pToJSVal #-}

instance PFromJSVal AddEventListenerOptionsOrBool where
  pFromJSVal = AddEventListenerOptionsOrBool
  {-# INLINE pFromJSVal #-}

instance ToJSVal AddEventListenerOptionsOrBool where
  toJSVal = return . unAddEventListenerOptionsOrBool
  {-# INLINE toJSVal #-}

instance FromJSVal AddEventListenerOptionsOrBool where
  fromJSVal = return . fmap AddEventListenerOptionsOrBool . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AddEventListenerOptionsOrBool
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsAddEventListenerOptionsOrBool o

toAddEventListenerOptionsOrBool :: IsAddEventListenerOptionsOrBool o => o -> AddEventListenerOptionsOrBool
toAddEventListenerOptionsOrBool = AddEventListenerOptionsOrBool . pToJSVal

instance IsAddEventListenerOptionsOrBool AddEventListenerOptionsOrBool
instance IsAddEventListenerOptionsOrBool AddEventListenerOptions
instance IsAddEventListenerOptionsOrBool Bool

newtype AlgorithmIdentifier = AlgorithmIdentifier { unAlgorithmIdentifier :: JSVal }

instance Eq AlgorithmIdentifier where
  (AlgorithmIdentifier a) == (AlgorithmIdentifier b) = js_eq a b

instance PToJSVal AlgorithmIdentifier where
  pToJSVal = unAlgorithmIdentifier
  {-# INLINE pToJSVal #-}

instance PFromJSVal AlgorithmIdentifier where
  pFromJSVal = AlgorithmIdentifier
  {-# INLINE pFromJSVal #-}

instance ToJSVal AlgorithmIdentifier where
  toJSVal = return . unAlgorithmIdentifier
  {-# INLINE toJSVal #-}

instance FromJSVal AlgorithmIdentifier where
  fromJSVal = return . fmap AlgorithmIdentifier . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AlgorithmIdentifier
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsAlgorithmIdentifier o

toAlgorithmIdentifier :: IsAlgorithmIdentifier o => o -> AlgorithmIdentifier
toAlgorithmIdentifier = AlgorithmIdentifier . pToJSVal

instance IsAlgorithmIdentifier AlgorithmIdentifier
instance IsAlgorithmIdentifier GObject
instance IsAlgorithmIdentifier JSString
instance IsAlgorithmIdentifier String
instance IsAlgorithmIdentifier T.Text

newtype AllowSharedBufferSource = AllowSharedBufferSource { unAllowSharedBufferSource :: JSVal }

instance Eq AllowSharedBufferSource where
  (AllowSharedBufferSource a) == (AllowSharedBufferSource b) = js_eq a b

instance PToJSVal AllowSharedBufferSource where
  pToJSVal = unAllowSharedBufferSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal AllowSharedBufferSource where
  pFromJSVal = AllowSharedBufferSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal AllowSharedBufferSource where
  toJSVal = return . unAllowSharedBufferSource
  {-# INLINE toJSVal #-}

instance FromJSVal AllowSharedBufferSource where
  fromJSVal = return . fmap AllowSharedBufferSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AllowSharedBufferSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsAllowSharedBufferSource o

toAllowSharedBufferSource :: IsAllowSharedBufferSource o => o -> AllowSharedBufferSource
toAllowSharedBufferSource = AllowSharedBufferSource . pToJSVal

instance IsAllowSharedBufferSource AllowSharedBufferSource
instance IsAllowSharedBufferSource ArrayBuffer
instance IsAllowSharedBufferSource ArrayBufferView
instance IsAllowSharedBufferSource BigInt64Array
instance IsAllowSharedBufferSource BigUint64Array
instance IsAllowSharedBufferSource DataView
instance IsAllowSharedBufferSource Float16Array
instance IsAllowSharedBufferSource Float32Array
instance IsAllowSharedBufferSource Float64Array
instance IsAllowSharedBufferSource Int16Array
instance IsAllowSharedBufferSource Int32Array
instance IsAllowSharedBufferSource Int8Array
instance IsAllowSharedBufferSource SharedArrayBuffer
instance IsAllowSharedBufferSource Uint16Array
instance IsAllowSharedBufferSource Uint32Array
instance IsAllowSharedBufferSource Uint8Array
instance IsAllowSharedBufferSource Uint8ClampedArray

newtype ArrayBufferOrJsonWebKey = ArrayBufferOrJsonWebKey { unArrayBufferOrJsonWebKey :: JSVal }

instance Eq ArrayBufferOrJsonWebKey where
  (ArrayBufferOrJsonWebKey a) == (ArrayBufferOrJsonWebKey b) = js_eq a b

instance PToJSVal ArrayBufferOrJsonWebKey where
  pToJSVal = unArrayBufferOrJsonWebKey
  {-# INLINE pToJSVal #-}

instance PFromJSVal ArrayBufferOrJsonWebKey where
  pFromJSVal = ArrayBufferOrJsonWebKey
  {-# INLINE pFromJSVal #-}

instance ToJSVal ArrayBufferOrJsonWebKey where
  toJSVal = return . unArrayBufferOrJsonWebKey
  {-# INLINE toJSVal #-}

instance FromJSVal ArrayBufferOrJsonWebKey where
  fromJSVal = return . fmap ArrayBufferOrJsonWebKey . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ArrayBufferOrJsonWebKey
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsArrayBufferOrJsonWebKey o

toArrayBufferOrJsonWebKey :: IsArrayBufferOrJsonWebKey o => o -> ArrayBufferOrJsonWebKey
toArrayBufferOrJsonWebKey = ArrayBufferOrJsonWebKey . pToJSVal

instance IsArrayBufferOrJsonWebKey ArrayBufferOrJsonWebKey
instance IsArrayBufferOrJsonWebKey ArrayBuffer
instance IsArrayBufferOrJsonWebKey JsonWebKey

newtype AudioContextLatencyCategoryOrDouble = AudioContextLatencyCategoryOrDouble { unAudioContextLatencyCategoryOrDouble :: JSVal }

instance Eq AudioContextLatencyCategoryOrDouble where
  (AudioContextLatencyCategoryOrDouble a) == (AudioContextLatencyCategoryOrDouble b) = js_eq a b

instance PToJSVal AudioContextLatencyCategoryOrDouble where
  pToJSVal = unAudioContextLatencyCategoryOrDouble
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioContextLatencyCategoryOrDouble where
  pFromJSVal = AudioContextLatencyCategoryOrDouble
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioContextLatencyCategoryOrDouble where
  toJSVal = return . unAudioContextLatencyCategoryOrDouble
  {-# INLINE toJSVal #-}

instance FromJSVal AudioContextLatencyCategoryOrDouble where
  fromJSVal = return . fmap AudioContextLatencyCategoryOrDouble . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioContextLatencyCategoryOrDouble
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsAudioContextLatencyCategoryOrDouble o

toAudioContextLatencyCategoryOrDouble :: IsAudioContextLatencyCategoryOrDouble o => o -> AudioContextLatencyCategoryOrDouble
toAudioContextLatencyCategoryOrDouble = AudioContextLatencyCategoryOrDouble . pToJSVal

instance IsAudioContextLatencyCategoryOrDouble AudioContextLatencyCategoryOrDouble
instance IsAudioContextLatencyCategoryOrDouble Double

newtype AudioContextRenderSizeCategoryOrWord = AudioContextRenderSizeCategoryOrWord { unAudioContextRenderSizeCategoryOrWord :: JSVal }

instance Eq AudioContextRenderSizeCategoryOrWord where
  (AudioContextRenderSizeCategoryOrWord a) == (AudioContextRenderSizeCategoryOrWord b) = js_eq a b

instance PToJSVal AudioContextRenderSizeCategoryOrWord where
  pToJSVal = unAudioContextRenderSizeCategoryOrWord
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioContextRenderSizeCategoryOrWord where
  pFromJSVal = AudioContextRenderSizeCategoryOrWord
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioContextRenderSizeCategoryOrWord where
  toJSVal = return . unAudioContextRenderSizeCategoryOrWord
  {-# INLINE toJSVal #-}

instance FromJSVal AudioContextRenderSizeCategoryOrWord where
  fromJSVal = return . fmap AudioContextRenderSizeCategoryOrWord . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioContextRenderSizeCategoryOrWord
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsAudioContextRenderSizeCategoryOrWord o

toAudioContextRenderSizeCategoryOrWord :: IsAudioContextRenderSizeCategoryOrWord o => o -> AudioContextRenderSizeCategoryOrWord
toAudioContextRenderSizeCategoryOrWord = AudioContextRenderSizeCategoryOrWord . pToJSVal

instance IsAudioContextRenderSizeCategoryOrWord AudioContextRenderSizeCategoryOrWord
instance IsAudioContextRenderSizeCategoryOrWord Word

newtype BlobOrMediaSource = BlobOrMediaSource { unBlobOrMediaSource :: JSVal }

instance Eq BlobOrMediaSource where
  (BlobOrMediaSource a) == (BlobOrMediaSource b) = js_eq a b

instance PToJSVal BlobOrMediaSource where
  pToJSVal = unBlobOrMediaSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal BlobOrMediaSource where
  pFromJSVal = BlobOrMediaSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal BlobOrMediaSource where
  toJSVal = return . unBlobOrMediaSource
  {-# INLINE toJSVal #-}

instance FromJSVal BlobOrMediaSource where
  fromJSVal = return . fmap BlobOrMediaSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BlobOrMediaSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBlobOrMediaSource o

toBlobOrMediaSource :: IsBlobOrMediaSource o => o -> BlobOrMediaSource
toBlobOrMediaSource = BlobOrMediaSource . pToJSVal

instance IsBlobOrMediaSource BlobOrMediaSource
instance IsBlobOrMediaSource Blob
instance IsBlobOrMediaSource File
instance IsBlobOrMediaSource MediaSource

newtype BlobPart = BlobPart { unBlobPart :: JSVal }

instance Eq BlobPart where
  (BlobPart a) == (BlobPart b) = js_eq a b

instance PToJSVal BlobPart where
  pToJSVal = unBlobPart
  {-# INLINE pToJSVal #-}

instance PFromJSVal BlobPart where
  pFromJSVal = BlobPart
  {-# INLINE pFromJSVal #-}

instance ToJSVal BlobPart where
  toJSVal = return . unBlobPart
  {-# INLINE toJSVal #-}

instance FromJSVal BlobPart where
  fromJSVal = return . fmap BlobPart . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BlobPart
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBlobPart o

toBlobPart :: IsBlobPart o => o -> BlobPart
toBlobPart = BlobPart . pToJSVal

instance IsBlobPart BlobPart
instance IsBlobPart ArrayBuffer
instance IsBlobPart ArrayBufferView
instance IsBlobPart BigInt64Array
instance IsBlobPart BigUint64Array
instance IsBlobPart Blob
instance IsBlobPart DataView
instance IsBlobPart File
instance IsBlobPart Float16Array
instance IsBlobPart Float32Array
instance IsBlobPart Float64Array
instance IsBlobPart Int16Array
instance IsBlobPart Int32Array
instance IsBlobPart Int8Array
instance IsBlobPart JSString
instance IsBlobPart String
instance IsBlobPart T.Text
instance IsBlobPart Uint16Array
instance IsBlobPart Uint32Array
instance IsBlobPart Uint8Array
instance IsBlobPart Uint8ClampedArray

newtype BluetoothServiceUUID = BluetoothServiceUUID { unBluetoothServiceUUID :: JSVal }

instance Eq BluetoothServiceUUID where
  (BluetoothServiceUUID a) == (BluetoothServiceUUID b) = js_eq a b

instance PToJSVal BluetoothServiceUUID where
  pToJSVal = unBluetoothServiceUUID
  {-# INLINE pToJSVal #-}

instance PFromJSVal BluetoothServiceUUID where
  pFromJSVal = BluetoothServiceUUID
  {-# INLINE pFromJSVal #-}

instance ToJSVal BluetoothServiceUUID where
  toJSVal = return . unBluetoothServiceUUID
  {-# INLINE toJSVal #-}

instance FromJSVal BluetoothServiceUUID where
  fromJSVal = return . fmap BluetoothServiceUUID . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BluetoothServiceUUID
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBluetoothServiceUUID o

toBluetoothServiceUUID :: IsBluetoothServiceUUID o => o -> BluetoothServiceUUID
toBluetoothServiceUUID = BluetoothServiceUUID . pToJSVal

instance IsBluetoothServiceUUID BluetoothServiceUUID
instance IsBluetoothServiceUUID JSString
instance IsBluetoothServiceUUID String
instance IsBluetoothServiceUUID T.Text
instance IsBluetoothServiceUUID Word

newtype BodyInit = BodyInit { unBodyInit :: JSVal }

instance Eq BodyInit where
  (BodyInit a) == (BodyInit b) = js_eq a b

instance PToJSVal BodyInit where
  pToJSVal = unBodyInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal BodyInit where
  pFromJSVal = BodyInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal BodyInit where
  toJSVal = return . unBodyInit
  {-# INLINE toJSVal #-}

instance FromJSVal BodyInit where
  fromJSVal = return . fmap BodyInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BodyInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBodyInit o

toBodyInit :: IsBodyInit o => o -> BodyInit
toBodyInit = BodyInit . pToJSVal

instance IsBodyInit BodyInit
instance IsBodyInit ArrayBuffer
instance IsBodyInit ArrayBufferView
instance IsBodyInit BigInt64Array
instance IsBodyInit BigUint64Array
instance IsBodyInit Blob
instance IsBodyInit DataView
instance IsBodyInit File
instance IsBodyInit Float16Array
instance IsBodyInit Float32Array
instance IsBodyInit Float64Array
instance IsBodyInit FormData
instance IsBodyInit Int16Array
instance IsBodyInit Int32Array
instance IsBodyInit Int8Array
instance IsBodyInit JSString
instance IsBodyInit ReadableStream
instance IsBodyInit String
instance IsBodyInit T.Text
instance IsBodyInit URLSearchParams
instance IsBodyInit Uint16Array
instance IsBodyInit Uint32Array
instance IsBodyInit Uint8Array
instance IsBodyInit Uint8ClampedArray
instance IsBodyInit WebTransportReceiveStream

newtype BoolOrConstrainDouble = BoolOrConstrainDouble { unBoolOrConstrainDouble :: JSVal }

instance Eq BoolOrConstrainDouble where
  (BoolOrConstrainDouble a) == (BoolOrConstrainDouble b) = js_eq a b

instance PToJSVal BoolOrConstrainDouble where
  pToJSVal = unBoolOrConstrainDouble
  {-# INLINE pToJSVal #-}

instance PFromJSVal BoolOrConstrainDouble where
  pFromJSVal = BoolOrConstrainDouble
  {-# INLINE pFromJSVal #-}

instance ToJSVal BoolOrConstrainDouble where
  toJSVal = return . unBoolOrConstrainDouble
  {-# INLINE toJSVal #-}

instance FromJSVal BoolOrConstrainDouble where
  fromJSVal = return . fmap BoolOrConstrainDouble . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BoolOrConstrainDouble
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBoolOrConstrainDouble o

toBoolOrConstrainDouble :: IsBoolOrConstrainDouble o => o -> BoolOrConstrainDouble
toBoolOrConstrainDouble = BoolOrConstrainDouble . pToJSVal

instance IsBoolOrConstrainDouble BoolOrConstrainDouble
instance IsBoolOrConstrainDouble Bool
instance IsBoolOrConstrainDouble ConstrainDoubleRange
instance IsBoolOrConstrainDouble Double

newtype BoolOrDoubleOrString = BoolOrDoubleOrString { unBoolOrDoubleOrString :: JSVal }

instance Eq BoolOrDoubleOrString where
  (BoolOrDoubleOrString a) == (BoolOrDoubleOrString b) = js_eq a b

instance PToJSVal BoolOrDoubleOrString where
  pToJSVal = unBoolOrDoubleOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal BoolOrDoubleOrString where
  pFromJSVal = BoolOrDoubleOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal BoolOrDoubleOrString where
  toJSVal = return . unBoolOrDoubleOrString
  {-# INLINE toJSVal #-}

instance FromJSVal BoolOrDoubleOrString where
  fromJSVal = return . fmap BoolOrDoubleOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BoolOrDoubleOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBoolOrDoubleOrString o

toBoolOrDoubleOrString :: IsBoolOrDoubleOrString o => o -> BoolOrDoubleOrString
toBoolOrDoubleOrString = BoolOrDoubleOrString . pToJSVal

instance IsBoolOrDoubleOrString BoolOrDoubleOrString
instance IsBoolOrDoubleOrString Bool
instance IsBoolOrDoubleOrString Double
instance IsBoolOrDoubleOrString JSString
instance IsBoolOrDoubleOrString String
instance IsBoolOrDoubleOrString T.Text

newtype BoolOrImportNodeOptions = BoolOrImportNodeOptions { unBoolOrImportNodeOptions :: JSVal }

instance Eq BoolOrImportNodeOptions where
  (BoolOrImportNodeOptions a) == (BoolOrImportNodeOptions b) = js_eq a b

instance PToJSVal BoolOrImportNodeOptions where
  pToJSVal = unBoolOrImportNodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal BoolOrImportNodeOptions where
  pFromJSVal = BoolOrImportNodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal BoolOrImportNodeOptions where
  toJSVal = return . unBoolOrImportNodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal BoolOrImportNodeOptions where
  fromJSVal = return . fmap BoolOrImportNodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BoolOrImportNodeOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBoolOrImportNodeOptions o

toBoolOrImportNodeOptions :: IsBoolOrImportNodeOptions o => o -> BoolOrImportNodeOptions
toBoolOrImportNodeOptions = BoolOrImportNodeOptions . pToJSVal

instance IsBoolOrImportNodeOptions BoolOrImportNodeOptions
instance IsBoolOrImportNodeOptions Bool
instance IsBoolOrImportNodeOptions ImportNodeOptions

newtype BoolOrMediaTrackConstraints = BoolOrMediaTrackConstraints { unBoolOrMediaTrackConstraints :: JSVal }

instance Eq BoolOrMediaTrackConstraints where
  (BoolOrMediaTrackConstraints a) == (BoolOrMediaTrackConstraints b) = js_eq a b

instance PToJSVal BoolOrMediaTrackConstraints where
  pToJSVal = unBoolOrMediaTrackConstraints
  {-# INLINE pToJSVal #-}

instance PFromJSVal BoolOrMediaTrackConstraints where
  pFromJSVal = BoolOrMediaTrackConstraints
  {-# INLINE pFromJSVal #-}

instance ToJSVal BoolOrMediaTrackConstraints where
  toJSVal = return . unBoolOrMediaTrackConstraints
  {-# INLINE toJSVal #-}

instance FromJSVal BoolOrMediaTrackConstraints where
  fromJSVal = return . fmap BoolOrMediaTrackConstraints . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BoolOrMediaTrackConstraints
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBoolOrMediaTrackConstraints o

toBoolOrMediaTrackConstraints :: IsBoolOrMediaTrackConstraints o => o -> BoolOrMediaTrackConstraints
toBoolOrMediaTrackConstraints = BoolOrMediaTrackConstraints . pToJSVal

instance IsBoolOrMediaTrackConstraints BoolOrMediaTrackConstraints
instance IsBoolOrMediaTrackConstraints Bool
instance IsBoolOrMediaTrackConstraints MediaTrackConstraints

newtype BoolOrScrollIntoViewOptions = BoolOrScrollIntoViewOptions { unBoolOrScrollIntoViewOptions :: JSVal }

instance Eq BoolOrScrollIntoViewOptions where
  (BoolOrScrollIntoViewOptions a) == (BoolOrScrollIntoViewOptions b) = js_eq a b

instance PToJSVal BoolOrScrollIntoViewOptions where
  pToJSVal = unBoolOrScrollIntoViewOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal BoolOrScrollIntoViewOptions where
  pFromJSVal = BoolOrScrollIntoViewOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal BoolOrScrollIntoViewOptions where
  toJSVal = return . unBoolOrScrollIntoViewOptions
  {-# INLINE toJSVal #-}

instance FromJSVal BoolOrScrollIntoViewOptions where
  fromJSVal = return . fmap BoolOrScrollIntoViewOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BoolOrScrollIntoViewOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBoolOrScrollIntoViewOptions o

toBoolOrScrollIntoViewOptions :: IsBoolOrScrollIntoViewOptions o => o -> BoolOrScrollIntoViewOptions
toBoolOrScrollIntoViewOptions = BoolOrScrollIntoViewOptions . pToJSVal

instance IsBoolOrScrollIntoViewOptions BoolOrScrollIntoViewOptions
instance IsBoolOrScrollIntoViewOptions Bool
instance IsBoolOrScrollIntoViewOptions ScrollIntoViewOptions

newtype BoolOrString = BoolOrString { unBoolOrString :: JSVal }

instance Eq BoolOrString where
  (BoolOrString a) == (BoolOrString b) = js_eq a b

instance PToJSVal BoolOrString where
  pToJSVal = unBoolOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal BoolOrString where
  pFromJSVal = BoolOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal BoolOrString where
  toJSVal = return . unBoolOrString
  {-# INLINE toJSVal #-}

instance FromJSVal BoolOrString where
  fromJSVal = return . fmap BoolOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BoolOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBoolOrString o

toBoolOrString :: IsBoolOrString o => o -> BoolOrString
toBoolOrString = BoolOrString . pToJSVal

instance IsBoolOrString BoolOrString
instance IsBoolOrString Bool
instance IsBoolOrString JSString
instance IsBoolOrString String
instance IsBoolOrString T.Text

newtype BufferSource = BufferSource { unBufferSource :: JSVal }

instance Eq BufferSource where
  (BufferSource a) == (BufferSource b) = js_eq a b

instance PToJSVal BufferSource where
  pToJSVal = unBufferSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal BufferSource where
  pFromJSVal = BufferSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal BufferSource where
  toJSVal = return . unBufferSource
  {-# INLINE toJSVal #-}

instance FromJSVal BufferSource where
  fromJSVal = return . fmap BufferSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BufferSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBufferSource o

toBufferSource :: IsBufferSource o => o -> BufferSource
toBufferSource = BufferSource . pToJSVal

instance IsBufferSource BufferSource
instance IsBufferSource ArrayBuffer
instance IsBufferSource ArrayBufferView
instance IsBufferSource BigInt64Array
instance IsBufferSource BigUint64Array
instance IsBufferSource DataView
instance IsBufferSource Float16Array
instance IsBufferSource Float32Array
instance IsBufferSource Float64Array
instance IsBufferSource Int16Array
instance IsBufferSource Int32Array
instance IsBufferSource Int8Array
instance IsBufferSource Uint16Array
instance IsBufferSource Uint32Array
instance IsBufferSource Uint8Array
instance IsBufferSource Uint8ClampedArray

newtype BufferSourceOrBlobOrString = BufferSourceOrBlobOrString { unBufferSourceOrBlobOrString :: JSVal }

instance Eq BufferSourceOrBlobOrString where
  (BufferSourceOrBlobOrString a) == (BufferSourceOrBlobOrString b) = js_eq a b

instance PToJSVal BufferSourceOrBlobOrString where
  pToJSVal = unBufferSourceOrBlobOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal BufferSourceOrBlobOrString where
  pFromJSVal = BufferSourceOrBlobOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal BufferSourceOrBlobOrString where
  toJSVal = return . unBufferSourceOrBlobOrString
  {-# INLINE toJSVal #-}

instance FromJSVal BufferSourceOrBlobOrString where
  fromJSVal = return . fmap BufferSourceOrBlobOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BufferSourceOrBlobOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBufferSourceOrBlobOrString o

toBufferSourceOrBlobOrString :: IsBufferSourceOrBlobOrString o => o -> BufferSourceOrBlobOrString
toBufferSourceOrBlobOrString = BufferSourceOrBlobOrString . pToJSVal

instance IsBufferSourceOrBlobOrString BufferSourceOrBlobOrString
instance IsBufferSourceOrBlobOrString ArrayBuffer
instance IsBufferSourceOrBlobOrString ArrayBufferView
instance IsBufferSourceOrBlobOrString BigInt64Array
instance IsBufferSourceOrBlobOrString BigUint64Array
instance IsBufferSourceOrBlobOrString Blob
instance IsBufferSourceOrBlobOrString DataView
instance IsBufferSourceOrBlobOrString File
instance IsBufferSourceOrBlobOrString Float16Array
instance IsBufferSourceOrBlobOrString Float32Array
instance IsBufferSourceOrBlobOrString Float64Array
instance IsBufferSourceOrBlobOrString Int16Array
instance IsBufferSourceOrBlobOrString Int32Array
instance IsBufferSourceOrBlobOrString Int8Array
instance IsBufferSourceOrBlobOrString JSString
instance IsBufferSourceOrBlobOrString String
instance IsBufferSourceOrBlobOrString T.Text
instance IsBufferSourceOrBlobOrString Uint16Array
instance IsBufferSourceOrBlobOrString Uint32Array
instance IsBufferSourceOrBlobOrString Uint8Array
instance IsBufferSourceOrBlobOrString Uint8ClampedArray

newtype BufferSourceOrJsonWebKey = BufferSourceOrJsonWebKey { unBufferSourceOrJsonWebKey :: JSVal }

instance Eq BufferSourceOrJsonWebKey where
  (BufferSourceOrJsonWebKey a) == (BufferSourceOrJsonWebKey b) = js_eq a b

instance PToJSVal BufferSourceOrJsonWebKey where
  pToJSVal = unBufferSourceOrJsonWebKey
  {-# INLINE pToJSVal #-}

instance PFromJSVal BufferSourceOrJsonWebKey where
  pFromJSVal = BufferSourceOrJsonWebKey
  {-# INLINE pFromJSVal #-}

instance ToJSVal BufferSourceOrJsonWebKey where
  toJSVal = return . unBufferSourceOrJsonWebKey
  {-# INLINE toJSVal #-}

instance FromJSVal BufferSourceOrJsonWebKey where
  fromJSVal = return . fmap BufferSourceOrJsonWebKey . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BufferSourceOrJsonWebKey
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBufferSourceOrJsonWebKey o

toBufferSourceOrJsonWebKey :: IsBufferSourceOrJsonWebKey o => o -> BufferSourceOrJsonWebKey
toBufferSourceOrJsonWebKey = BufferSourceOrJsonWebKey . pToJSVal

instance IsBufferSourceOrJsonWebKey BufferSourceOrJsonWebKey
instance IsBufferSourceOrJsonWebKey ArrayBuffer
instance IsBufferSourceOrJsonWebKey ArrayBufferView
instance IsBufferSourceOrJsonWebKey BigInt64Array
instance IsBufferSourceOrJsonWebKey BigUint64Array
instance IsBufferSourceOrJsonWebKey DataView
instance IsBufferSourceOrJsonWebKey Float16Array
instance IsBufferSourceOrJsonWebKey Float32Array
instance IsBufferSourceOrJsonWebKey Float64Array
instance IsBufferSourceOrJsonWebKey Int16Array
instance IsBufferSourceOrJsonWebKey Int32Array
instance IsBufferSourceOrJsonWebKey Int8Array
instance IsBufferSourceOrJsonWebKey JsonWebKey
instance IsBufferSourceOrJsonWebKey Uint16Array
instance IsBufferSourceOrJsonWebKey Uint32Array
instance IsBufferSourceOrJsonWebKey Uint8Array
instance IsBufferSourceOrJsonWebKey Uint8ClampedArray

newtype BufferSourceOrString = BufferSourceOrString { unBufferSourceOrString :: JSVal }

instance Eq BufferSourceOrString where
  (BufferSourceOrString a) == (BufferSourceOrString b) = js_eq a b

instance PToJSVal BufferSourceOrString where
  pToJSVal = unBufferSourceOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal BufferSourceOrString where
  pFromJSVal = BufferSourceOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal BufferSourceOrString where
  toJSVal = return . unBufferSourceOrString
  {-# INLINE toJSVal #-}

instance FromJSVal BufferSourceOrString where
  fromJSVal = return . fmap BufferSourceOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BufferSourceOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsBufferSourceOrString o

toBufferSourceOrString :: IsBufferSourceOrString o => o -> BufferSourceOrString
toBufferSourceOrString = BufferSourceOrString . pToJSVal

instance IsBufferSourceOrString BufferSourceOrString
instance IsBufferSourceOrString ArrayBuffer
instance IsBufferSourceOrString ArrayBufferView
instance IsBufferSourceOrString BigInt64Array
instance IsBufferSourceOrString BigUint64Array
instance IsBufferSourceOrString DataView
instance IsBufferSourceOrString Float16Array
instance IsBufferSourceOrString Float32Array
instance IsBufferSourceOrString Float64Array
instance IsBufferSourceOrString Int16Array
instance IsBufferSourceOrString Int32Array
instance IsBufferSourceOrString Int8Array
instance IsBufferSourceOrString JSString
instance IsBufferSourceOrString String
instance IsBufferSourceOrString T.Text
instance IsBufferSourceOrString Uint16Array
instance IsBufferSourceOrString Uint32Array
instance IsBufferSourceOrString Uint8Array
instance IsBufferSourceOrString Uint8ClampedArray

newtype CSSNumberish = CSSNumberish { unCSSNumberish :: JSVal }

instance Eq CSSNumberish where
  (CSSNumberish a) == (CSSNumberish b) = js_eq a b

instance PToJSVal CSSNumberish where
  pToJSVal = unCSSNumberish
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNumberish where
  pFromJSVal = CSSNumberish
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNumberish where
  toJSVal = return . unCSSNumberish
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNumberish where
  fromJSVal = return . fmap CSSNumberish . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNumberish
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCSSNumberish o

toCSSNumberish :: IsCSSNumberish o => o -> CSSNumberish
toCSSNumberish = CSSNumberish . pToJSVal

instance IsCSSNumberish CSSNumberish
instance IsCSSNumberish CSSMathClamp
instance IsCSSNumberish CSSMathInvert
instance IsCSSNumberish CSSMathMax
instance IsCSSNumberish CSSMathMin
instance IsCSSNumberish CSSMathNegate
instance IsCSSNumberish CSSMathProduct
instance IsCSSNumberish CSSMathSum
instance IsCSSNumberish CSSMathValue
instance IsCSSNumberish CSSNumericValue
instance IsCSSNumberish CSSUnitValue
instance IsCSSNumberish Double

newtype CSSNumericValueOrCSSKeywordValue = CSSNumericValueOrCSSKeywordValue { unCSSNumericValueOrCSSKeywordValue :: JSVal }

instance Eq CSSNumericValueOrCSSKeywordValue where
  (CSSNumericValueOrCSSKeywordValue a) == (CSSNumericValueOrCSSKeywordValue b) = js_eq a b

instance PToJSVal CSSNumericValueOrCSSKeywordValue where
  pToJSVal = unCSSNumericValueOrCSSKeywordValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNumericValueOrCSSKeywordValue where
  pFromJSVal = CSSNumericValueOrCSSKeywordValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNumericValueOrCSSKeywordValue where
  toJSVal = return . unCSSNumericValueOrCSSKeywordValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNumericValueOrCSSKeywordValue where
  fromJSVal = return . fmap CSSNumericValueOrCSSKeywordValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNumericValueOrCSSKeywordValue
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCSSNumericValueOrCSSKeywordValue o

toCSSNumericValueOrCSSKeywordValue :: IsCSSNumericValueOrCSSKeywordValue o => o -> CSSNumericValueOrCSSKeywordValue
toCSSNumericValueOrCSSKeywordValue = CSSNumericValueOrCSSKeywordValue . pToJSVal

instance IsCSSNumericValueOrCSSKeywordValue CSSNumericValueOrCSSKeywordValue
instance IsCSSNumericValueOrCSSKeywordValue CSSKeywordValue
instance IsCSSNumericValueOrCSSKeywordValue CSSMathClamp
instance IsCSSNumericValueOrCSSKeywordValue CSSMathInvert
instance IsCSSNumericValueOrCSSKeywordValue CSSMathMax
instance IsCSSNumericValueOrCSSKeywordValue CSSMathMin
instance IsCSSNumericValueOrCSSKeywordValue CSSMathNegate
instance IsCSSNumericValueOrCSSKeywordValue CSSMathProduct
instance IsCSSNumericValueOrCSSKeywordValue CSSMathSum
instance IsCSSNumericValueOrCSSKeywordValue CSSMathValue
instance IsCSSNumericValueOrCSSKeywordValue CSSNumericValue
instance IsCSSNumericValueOrCSSKeywordValue CSSUnitValue

newtype CSSPerspectiveValue = CSSPerspectiveValue { unCSSPerspectiveValue :: JSVal }

instance Eq CSSPerspectiveValue where
  (CSSPerspectiveValue a) == (CSSPerspectiveValue b) = js_eq a b

instance PToJSVal CSSPerspectiveValue where
  pToJSVal = unCSSPerspectiveValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSPerspectiveValue where
  pFromJSVal = CSSPerspectiveValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSPerspectiveValue where
  toJSVal = return . unCSSPerspectiveValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSPerspectiveValue where
  fromJSVal = return . fmap CSSPerspectiveValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPerspectiveValue
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCSSPerspectiveValue o

toCSSPerspectiveValue :: IsCSSPerspectiveValue o => o -> CSSPerspectiveValue
toCSSPerspectiveValue = CSSPerspectiveValue . pToJSVal

instance IsCSSPerspectiveValue CSSPerspectiveValue
instance IsCSSPerspectiveValue CSSKeywordValue
instance IsCSSPerspectiveValue CSSMathClamp
instance IsCSSPerspectiveValue CSSMathInvert
instance IsCSSPerspectiveValue CSSMathMax
instance IsCSSPerspectiveValue CSSMathMin
instance IsCSSPerspectiveValue CSSMathNegate
instance IsCSSPerspectiveValue CSSMathProduct
instance IsCSSPerspectiveValue CSSMathSum
instance IsCSSPerspectiveValue CSSMathValue
instance IsCSSPerspectiveValue CSSNumericValue
instance IsCSSPerspectiveValue CSSUnitValue
instance IsCSSPerspectiveValue JSString
instance IsCSSPerspectiveValue String
instance IsCSSPerspectiveValue T.Text

newtype CSSStyleValueOrString = CSSStyleValueOrString { unCSSStyleValueOrString :: JSVal }

instance Eq CSSStyleValueOrString where
  (CSSStyleValueOrString a) == (CSSStyleValueOrString b) = js_eq a b

instance PToJSVal CSSStyleValueOrString where
  pToJSVal = unCSSStyleValueOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSStyleValueOrString where
  pFromJSVal = CSSStyleValueOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSStyleValueOrString where
  toJSVal = return . unCSSStyleValueOrString
  {-# INLINE toJSVal #-}

instance FromJSVal CSSStyleValueOrString where
  fromJSVal = return . fmap CSSStyleValueOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleValueOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCSSStyleValueOrString o

toCSSStyleValueOrString :: IsCSSStyleValueOrString o => o -> CSSStyleValueOrString
toCSSStyleValueOrString = CSSStyleValueOrString . pToJSVal

instance IsCSSStyleValueOrString CSSStyleValueOrString
instance IsCSSStyleValueOrString CSSImageValue
instance IsCSSStyleValueOrString CSSKeywordValue
instance IsCSSStyleValueOrString CSSMathClamp
instance IsCSSStyleValueOrString CSSMathInvert
instance IsCSSStyleValueOrString CSSMathMax
instance IsCSSStyleValueOrString CSSMathMin
instance IsCSSStyleValueOrString CSSMathNegate
instance IsCSSStyleValueOrString CSSMathProduct
instance IsCSSStyleValueOrString CSSMathSum
instance IsCSSStyleValueOrString CSSMathValue
instance IsCSSStyleValueOrString CSSNumericValue
instance IsCSSStyleValueOrString CSSStyleValue
instance IsCSSStyleValueOrString CSSTransformValue
instance IsCSSStyleValueOrString CSSUnitValue
instance IsCSSStyleValueOrString CSSUnparsedValue
instance IsCSSStyleValueOrString JSString
instance IsCSSStyleValueOrString String
instance IsCSSStyleValueOrString T.Text

newtype CSSUnparsedSegment = CSSUnparsedSegment { unCSSUnparsedSegment :: JSVal }

instance Eq CSSUnparsedSegment where
  (CSSUnparsedSegment a) == (CSSUnparsedSegment b) = js_eq a b

instance PToJSVal CSSUnparsedSegment where
  pToJSVal = unCSSUnparsedSegment
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSUnparsedSegment where
  pFromJSVal = CSSUnparsedSegment
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSUnparsedSegment where
  toJSVal = return . unCSSUnparsedSegment
  {-# INLINE toJSVal #-}

instance FromJSVal CSSUnparsedSegment where
  fromJSVal = return . fmap CSSUnparsedSegment . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSUnparsedSegment
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCSSUnparsedSegment o

toCSSUnparsedSegment :: IsCSSUnparsedSegment o => o -> CSSUnparsedSegment
toCSSUnparsedSegment = CSSUnparsedSegment . pToJSVal

instance IsCSSUnparsedSegment CSSUnparsedSegment
instance IsCSSUnparsedSegment CSSVariableReferenceValue
instance IsCSSUnparsedSegment JSString
instance IsCSSUnparsedSegment String
instance IsCSSUnparsedSegment T.Text

newtype CanvasImageSource = CanvasImageSource { unCanvasImageSource :: JSVal }

instance Eq CanvasImageSource where
  (CanvasImageSource a) == (CanvasImageSource b) = js_eq a b

instance PToJSVal CanvasImageSource where
  pToJSVal = unCanvasImageSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasImageSource where
  pFromJSVal = CanvasImageSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasImageSource where
  toJSVal = return . unCanvasImageSource
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasImageSource where
  fromJSVal = return . fmap CanvasImageSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasImageSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCanvasImageSource o

toCanvasImageSource :: IsCanvasImageSource o => o -> CanvasImageSource
toCanvasImageSource = CanvasImageSource . pToJSVal

instance IsCanvasImageSource CanvasImageSource
instance IsCanvasImageSource HTMLCanvasElement
instance IsCanvasImageSource HTMLImageElement
instance IsCanvasImageSource HTMLVideoElement
instance IsCanvasImageSource ImageBitmap
instance IsCanvasImageSource OffscreenCanvas
instance IsCanvasImageSource SVGImageElement
instance IsCanvasImageSource VideoFrame

newtype ClientOrServiceWorkerOrMessagePort = ClientOrServiceWorkerOrMessagePort { unClientOrServiceWorkerOrMessagePort :: JSVal }

instance Eq ClientOrServiceWorkerOrMessagePort where
  (ClientOrServiceWorkerOrMessagePort a) == (ClientOrServiceWorkerOrMessagePort b) = js_eq a b

instance PToJSVal ClientOrServiceWorkerOrMessagePort where
  pToJSVal = unClientOrServiceWorkerOrMessagePort
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClientOrServiceWorkerOrMessagePort where
  pFromJSVal = ClientOrServiceWorkerOrMessagePort
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClientOrServiceWorkerOrMessagePort where
  toJSVal = return . unClientOrServiceWorkerOrMessagePort
  {-# INLINE toJSVal #-}

instance FromJSVal ClientOrServiceWorkerOrMessagePort where
  fromJSVal = return . fmap ClientOrServiceWorkerOrMessagePort . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClientOrServiceWorkerOrMessagePort
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsClientOrServiceWorkerOrMessagePort o

toClientOrServiceWorkerOrMessagePort :: IsClientOrServiceWorkerOrMessagePort o => o -> ClientOrServiceWorkerOrMessagePort
toClientOrServiceWorkerOrMessagePort = ClientOrServiceWorkerOrMessagePort . pToJSVal

instance IsClientOrServiceWorkerOrMessagePort ClientOrServiceWorkerOrMessagePort
instance IsClientOrServiceWorkerOrMessagePort Client
instance IsClientOrServiceWorkerOrMessagePort MessagePort
instance IsClientOrServiceWorkerOrMessagePort ServiceWorker
instance IsClientOrServiceWorkerOrMessagePort WindowClient

newtype ClientOrUndefined = ClientOrUndefined { unClientOrUndefined :: JSVal }

instance Eq ClientOrUndefined where
  (ClientOrUndefined a) == (ClientOrUndefined b) = js_eq a b

instance PToJSVal ClientOrUndefined where
  pToJSVal = unClientOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClientOrUndefined where
  pFromJSVal = ClientOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClientOrUndefined where
  toJSVal = return . unClientOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal ClientOrUndefined where
  fromJSVal = return . fmap ClientOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClientOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsClientOrUndefined o

toClientOrUndefined :: IsClientOrUndefined o => o -> ClientOrUndefined
toClientOrUndefined = ClientOrUndefined . pToJSVal

instance IsClientOrUndefined ClientOrUndefined
instance IsClientOrUndefined Client
instance IsClientOrUndefined WindowClient

newtype ConstrainBoolean = ConstrainBoolean { unConstrainBoolean :: JSVal }

instance Eq ConstrainBoolean where
  (ConstrainBoolean a) == (ConstrainBoolean b) = js_eq a b

instance PToJSVal ConstrainBoolean where
  pToJSVal = unConstrainBoolean
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainBoolean where
  pFromJSVal = ConstrainBoolean
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainBoolean where
  toJSVal = return . unConstrainBoolean
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainBoolean where
  fromJSVal = return . fmap ConstrainBoolean . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainBoolean
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsConstrainBoolean o

toConstrainBoolean :: IsConstrainBoolean o => o -> ConstrainBoolean
toConstrainBoolean = ConstrainBoolean . pToJSVal

instance IsConstrainBoolean ConstrainBoolean
instance IsConstrainBoolean Bool
instance IsConstrainBoolean ConstrainBooleanParameters

newtype ConstrainBooleanOrDOMString = ConstrainBooleanOrDOMString { unConstrainBooleanOrDOMString :: JSVal }

instance Eq ConstrainBooleanOrDOMString where
  (ConstrainBooleanOrDOMString a) == (ConstrainBooleanOrDOMString b) = js_eq a b

instance PToJSVal ConstrainBooleanOrDOMString where
  pToJSVal = unConstrainBooleanOrDOMString
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainBooleanOrDOMString where
  pFromJSVal = ConstrainBooleanOrDOMString
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainBooleanOrDOMString where
  toJSVal = return . unConstrainBooleanOrDOMString
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainBooleanOrDOMString where
  fromJSVal = return . fmap ConstrainBooleanOrDOMString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainBooleanOrDOMString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsConstrainBooleanOrDOMString o

toConstrainBooleanOrDOMString :: IsConstrainBooleanOrDOMString o => o -> ConstrainBooleanOrDOMString
toConstrainBooleanOrDOMString = ConstrainBooleanOrDOMString . pToJSVal

instance IsConstrainBooleanOrDOMString ConstrainBooleanOrDOMString
instance IsConstrainBooleanOrDOMString Bool
instance IsConstrainBooleanOrDOMString ConstrainBooleanOrDOMStringParameters
instance IsConstrainBooleanOrDOMString JSString
instance IsConstrainBooleanOrDOMString String
instance IsConstrainBooleanOrDOMString T.Text

newtype ConstrainDOMString = ConstrainDOMString { unConstrainDOMString :: JSVal }

instance Eq ConstrainDOMString where
  (ConstrainDOMString a) == (ConstrainDOMString b) = js_eq a b

instance PToJSVal ConstrainDOMString where
  pToJSVal = unConstrainDOMString
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainDOMString where
  pFromJSVal = ConstrainDOMString
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainDOMString where
  toJSVal = return . unConstrainDOMString
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainDOMString where
  fromJSVal = return . fmap ConstrainDOMString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainDOMString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsConstrainDOMString o

toConstrainDOMString :: IsConstrainDOMString o => o -> ConstrainDOMString
toConstrainDOMString = ConstrainDOMString . pToJSVal

instance IsConstrainDOMString ConstrainDOMString
instance IsConstrainDOMString ConstrainDOMStringParameters
instance IsConstrainDOMString JSString
instance IsConstrainDOMString String
instance IsConstrainDOMString T.Text

newtype ConstrainDouble = ConstrainDouble { unConstrainDouble :: JSVal }

instance Eq ConstrainDouble where
  (ConstrainDouble a) == (ConstrainDouble b) = js_eq a b

instance PToJSVal ConstrainDouble where
  pToJSVal = unConstrainDouble
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainDouble where
  pFromJSVal = ConstrainDouble
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainDouble where
  toJSVal = return . unConstrainDouble
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainDouble where
  fromJSVal = return . fmap ConstrainDouble . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainDouble
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsConstrainDouble o

toConstrainDouble :: IsConstrainDouble o => o -> ConstrainDouble
toConstrainDouble = ConstrainDouble . pToJSVal

instance IsConstrainDouble ConstrainDouble
instance IsConstrainDouble ConstrainDoubleRange
instance IsConstrainDouble Double

newtype ConstrainPoint2D = ConstrainPoint2D { unConstrainPoint2D :: JSVal }

instance Eq ConstrainPoint2D where
  (ConstrainPoint2D a) == (ConstrainPoint2D b) = js_eq a b

instance PToJSVal ConstrainPoint2D where
  pToJSVal = unConstrainPoint2D
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainPoint2D where
  pFromJSVal = ConstrainPoint2D
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainPoint2D where
  toJSVal = return . unConstrainPoint2D
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainPoint2D where
  fromJSVal = return . fmap ConstrainPoint2D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainPoint2D
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsConstrainPoint2D o

toConstrainPoint2D :: IsConstrainPoint2D o => o -> ConstrainPoint2D
toConstrainPoint2D = ConstrainPoint2D . pToJSVal

instance IsConstrainPoint2D ConstrainPoint2D
instance IsConstrainPoint2D ConstrainPoint2DParameters

newtype ConstrainULong = ConstrainULong { unConstrainULong :: JSVal }

instance Eq ConstrainULong where
  (ConstrainULong a) == (ConstrainULong b) = js_eq a b

instance PToJSVal ConstrainULong where
  pToJSVal = unConstrainULong
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainULong where
  pFromJSVal = ConstrainULong
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainULong where
  toJSVal = return . unConstrainULong
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainULong where
  fromJSVal = return . fmap ConstrainULong . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainULong
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsConstrainULong o

toConstrainULong :: IsConstrainULong o => o -> ConstrainULong
toConstrainULong = ConstrainULong . pToJSVal

instance IsConstrainULong ConstrainULong
instance IsConstrainULong ConstrainULongRange
instance IsConstrainULong Word

newtype CryptoKeyOrCryptoKeyPair = CryptoKeyOrCryptoKeyPair { unCryptoKeyOrCryptoKeyPair :: JSVal }

instance Eq CryptoKeyOrCryptoKeyPair where
  (CryptoKeyOrCryptoKeyPair a) == (CryptoKeyOrCryptoKeyPair b) = js_eq a b

instance PToJSVal CryptoKeyOrCryptoKeyPair where
  pToJSVal = unCryptoKeyOrCryptoKeyPair
  {-# INLINE pToJSVal #-}

instance PFromJSVal CryptoKeyOrCryptoKeyPair where
  pFromJSVal = CryptoKeyOrCryptoKeyPair
  {-# INLINE pFromJSVal #-}

instance ToJSVal CryptoKeyOrCryptoKeyPair where
  toJSVal = return . unCryptoKeyOrCryptoKeyPair
  {-# INLINE toJSVal #-}

instance FromJSVal CryptoKeyOrCryptoKeyPair where
  fromJSVal = return . fmap CryptoKeyOrCryptoKeyPair . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CryptoKeyOrCryptoKeyPair
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCryptoKeyOrCryptoKeyPair o

toCryptoKeyOrCryptoKeyPair :: IsCryptoKeyOrCryptoKeyPair o => o -> CryptoKeyOrCryptoKeyPair
toCryptoKeyOrCryptoKeyPair = CryptoKeyOrCryptoKeyPair . pToJSVal

instance IsCryptoKeyOrCryptoKeyPair CryptoKeyOrCryptoKeyPair
instance IsCryptoKeyOrCryptoKeyPair CryptoKey
instance IsCryptoKeyOrCryptoKeyPair CryptoKeyPair

newtype CustomElementConstructorOrUndefined = CustomElementConstructorOrUndefined { unCustomElementConstructorOrUndefined :: JSVal }

instance Eq CustomElementConstructorOrUndefined where
  (CustomElementConstructorOrUndefined a) == (CustomElementConstructorOrUndefined b) = js_eq a b

instance PToJSVal CustomElementConstructorOrUndefined where
  pToJSVal = unCustomElementConstructorOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal CustomElementConstructorOrUndefined where
  pFromJSVal = CustomElementConstructorOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal CustomElementConstructorOrUndefined where
  toJSVal = return . unCustomElementConstructorOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal CustomElementConstructorOrUndefined where
  fromJSVal = return . fmap CustomElementConstructorOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CustomElementConstructorOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsCustomElementConstructorOrUndefined o

toCustomElementConstructorOrUndefined :: IsCustomElementConstructorOrUndefined o => o -> CustomElementConstructorOrUndefined
toCustomElementConstructorOrUndefined = CustomElementConstructorOrUndefined . pToJSVal

instance IsCustomElementConstructorOrUndefined CustomElementConstructorOrUndefined
instance IsCustomElementConstructorOrUndefined CustomElementConstructor

newtype DigitalCredentialProtocol = DigitalCredentialProtocol { unDigitalCredentialProtocol :: JSVal }

instance Eq DigitalCredentialProtocol where
  (DigitalCredentialProtocol a) == (DigitalCredentialProtocol b) = js_eq a b

instance PToJSVal DigitalCredentialProtocol where
  pToJSVal = unDigitalCredentialProtocol
  {-# INLINE pToJSVal #-}

instance PFromJSVal DigitalCredentialProtocol where
  pFromJSVal = DigitalCredentialProtocol
  {-# INLINE pFromJSVal #-}

instance ToJSVal DigitalCredentialProtocol where
  toJSVal = return . unDigitalCredentialProtocol
  {-# INLINE toJSVal #-}

instance FromJSVal DigitalCredentialProtocol where
  fromJSVal = return . fmap DigitalCredentialProtocol . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DigitalCredentialProtocol
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDigitalCredentialProtocol o

toDigitalCredentialProtocol :: IsDigitalCredentialProtocol o => o -> DigitalCredentialProtocol
toDigitalCredentialProtocol = DigitalCredentialProtocol . pToJSVal

instance IsDigitalCredentialProtocol DigitalCredentialProtocol

newtype DocumentOrXMLHttpRequestBodyInit = DocumentOrXMLHttpRequestBodyInit { unDocumentOrXMLHttpRequestBodyInit :: JSVal }

instance Eq DocumentOrXMLHttpRequestBodyInit where
  (DocumentOrXMLHttpRequestBodyInit a) == (DocumentOrXMLHttpRequestBodyInit b) = js_eq a b

instance PToJSVal DocumentOrXMLHttpRequestBodyInit where
  pToJSVal = unDocumentOrXMLHttpRequestBodyInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentOrXMLHttpRequestBodyInit where
  pFromJSVal = DocumentOrXMLHttpRequestBodyInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentOrXMLHttpRequestBodyInit where
  toJSVal = return . unDocumentOrXMLHttpRequestBodyInit
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentOrXMLHttpRequestBodyInit where
  fromJSVal = return . fmap DocumentOrXMLHttpRequestBodyInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentOrXMLHttpRequestBodyInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDocumentOrXMLHttpRequestBodyInit o

toDocumentOrXMLHttpRequestBodyInit :: IsDocumentOrXMLHttpRequestBodyInit o => o -> DocumentOrXMLHttpRequestBodyInit
toDocumentOrXMLHttpRequestBodyInit = DocumentOrXMLHttpRequestBodyInit . pToJSVal

instance IsDocumentOrXMLHttpRequestBodyInit DocumentOrXMLHttpRequestBodyInit
instance IsDocumentOrXMLHttpRequestBodyInit ArrayBuffer
instance IsDocumentOrXMLHttpRequestBodyInit ArrayBufferView
instance IsDocumentOrXMLHttpRequestBodyInit BigInt64Array
instance IsDocumentOrXMLHttpRequestBodyInit BigUint64Array
instance IsDocumentOrXMLHttpRequestBodyInit Blob
instance IsDocumentOrXMLHttpRequestBodyInit DataView
instance IsDocumentOrXMLHttpRequestBodyInit Document
instance IsDocumentOrXMLHttpRequestBodyInit File
instance IsDocumentOrXMLHttpRequestBodyInit Float16Array
instance IsDocumentOrXMLHttpRequestBodyInit Float32Array
instance IsDocumentOrXMLHttpRequestBodyInit Float64Array
instance IsDocumentOrXMLHttpRequestBodyInit FormData
instance IsDocumentOrXMLHttpRequestBodyInit Int16Array
instance IsDocumentOrXMLHttpRequestBodyInit Int32Array
instance IsDocumentOrXMLHttpRequestBodyInit Int8Array
instance IsDocumentOrXMLHttpRequestBodyInit JSString
instance IsDocumentOrXMLHttpRequestBodyInit String
instance IsDocumentOrXMLHttpRequestBodyInit T.Text
instance IsDocumentOrXMLHttpRequestBodyInit URLSearchParams
instance IsDocumentOrXMLHttpRequestBodyInit Uint16Array
instance IsDocumentOrXMLHttpRequestBodyInit Uint32Array
instance IsDocumentOrXMLHttpRequestBodyInit Uint8Array
instance IsDocumentOrXMLHttpRequestBodyInit Uint8ClampedArray
instance IsDocumentOrXMLHttpRequestBodyInit XMLDocument

newtype DoubleOrCSSNumericValueOrString = DoubleOrCSSNumericValueOrString { unDoubleOrCSSNumericValueOrString :: JSVal }

instance Eq DoubleOrCSSNumericValueOrString where
  (DoubleOrCSSNumericValueOrString a) == (DoubleOrCSSNumericValueOrString b) = js_eq a b

instance PToJSVal DoubleOrCSSNumericValueOrString where
  pToJSVal = unDoubleOrCSSNumericValueOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrCSSNumericValueOrString where
  pFromJSVal = DoubleOrCSSNumericValueOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrCSSNumericValueOrString where
  toJSVal = return . unDoubleOrCSSNumericValueOrString
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrCSSNumericValueOrString where
  fromJSVal = return . fmap DoubleOrCSSNumericValueOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrCSSNumericValueOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrCSSNumericValueOrString o

toDoubleOrCSSNumericValueOrString :: IsDoubleOrCSSNumericValueOrString o => o -> DoubleOrCSSNumericValueOrString
toDoubleOrCSSNumericValueOrString = DoubleOrCSSNumericValueOrString . pToJSVal

instance IsDoubleOrCSSNumericValueOrString DoubleOrCSSNumericValueOrString
instance IsDoubleOrCSSNumericValueOrString CSSMathClamp
instance IsDoubleOrCSSNumericValueOrString CSSMathInvert
instance IsDoubleOrCSSNumericValueOrString CSSMathMax
instance IsDoubleOrCSSNumericValueOrString CSSMathMin
instance IsDoubleOrCSSNumericValueOrString CSSMathNegate
instance IsDoubleOrCSSNumericValueOrString CSSMathProduct
instance IsDoubleOrCSSNumericValueOrString CSSMathSum
instance IsDoubleOrCSSNumericValueOrString CSSMathValue
instance IsDoubleOrCSSNumericValueOrString CSSNumericValue
instance IsDoubleOrCSSNumericValueOrString CSSUnitValue
instance IsDoubleOrCSSNumericValueOrString Double
instance IsDoubleOrCSSNumericValueOrString JSString
instance IsDoubleOrCSSNumericValueOrString String
instance IsDoubleOrCSSNumericValueOrString T.Text

newtype DoubleOrDOMPointInit = DoubleOrDOMPointInit { unDoubleOrDOMPointInit :: JSVal }

instance Eq DoubleOrDOMPointInit where
  (DoubleOrDOMPointInit a) == (DoubleOrDOMPointInit b) = js_eq a b

instance PToJSVal DoubleOrDOMPointInit where
  pToJSVal = unDoubleOrDOMPointInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrDOMPointInit where
  pFromJSVal = DoubleOrDOMPointInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrDOMPointInit where
  toJSVal = return . unDoubleOrDOMPointInit
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrDOMPointInit where
  fromJSVal = return . fmap DoubleOrDOMPointInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrDOMPointInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrDOMPointInit o

toDoubleOrDOMPointInit :: IsDoubleOrDOMPointInit o => o -> DoubleOrDOMPointInit
toDoubleOrDOMPointInit = DoubleOrDOMPointInit . pToJSVal

instance IsDoubleOrDOMPointInit DoubleOrDOMPointInit
instance IsDoubleOrDOMPointInit DOMPointInit
instance IsDoubleOrDOMPointInit Double

newtype DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit = DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit { unDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit :: JSVal }

instance Eq DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit where
  (DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit a) == (DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit b) = js_eq a b

instance PToJSVal DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit where
  pToJSVal = unDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit where
  pFromJSVal = DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit where
  toJSVal = return . unDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit where
  fromJSVal = return . fmap DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit o

toDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit :: IsDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit o => o -> DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
toDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit = DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit . pToJSVal

instance IsDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit DoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit
instance IsDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit DOMPointInit
instance IsDoubleOrDOMPointInitOrSequenceDoubleOrDOMPointInit Double

newtype DoubleOrKeyframeAnimationOptions = DoubleOrKeyframeAnimationOptions { unDoubleOrKeyframeAnimationOptions :: JSVal }

instance Eq DoubleOrKeyframeAnimationOptions where
  (DoubleOrKeyframeAnimationOptions a) == (DoubleOrKeyframeAnimationOptions b) = js_eq a b

instance PToJSVal DoubleOrKeyframeAnimationOptions where
  pToJSVal = unDoubleOrKeyframeAnimationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrKeyframeAnimationOptions where
  pFromJSVal = DoubleOrKeyframeAnimationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrKeyframeAnimationOptions where
  toJSVal = return . unDoubleOrKeyframeAnimationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrKeyframeAnimationOptions where
  fromJSVal = return . fmap DoubleOrKeyframeAnimationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrKeyframeAnimationOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrKeyframeAnimationOptions o

toDoubleOrKeyframeAnimationOptions :: IsDoubleOrKeyframeAnimationOptions o => o -> DoubleOrKeyframeAnimationOptions
toDoubleOrKeyframeAnimationOptions = DoubleOrKeyframeAnimationOptions . pToJSVal

instance IsDoubleOrKeyframeAnimationOptions DoubleOrKeyframeAnimationOptions
instance IsDoubleOrKeyframeAnimationOptions Double
instance IsDoubleOrKeyframeAnimationOptions KeyframeAnimationOptions

newtype DoubleOrKeyframeEffectOptions = DoubleOrKeyframeEffectOptions { unDoubleOrKeyframeEffectOptions :: JSVal }

instance Eq DoubleOrKeyframeEffectOptions where
  (DoubleOrKeyframeEffectOptions a) == (DoubleOrKeyframeEffectOptions b) = js_eq a b

instance PToJSVal DoubleOrKeyframeEffectOptions where
  pToJSVal = unDoubleOrKeyframeEffectOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrKeyframeEffectOptions where
  pFromJSVal = DoubleOrKeyframeEffectOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrKeyframeEffectOptions where
  toJSVal = return . unDoubleOrKeyframeEffectOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrKeyframeEffectOptions where
  fromJSVal = return . fmap DoubleOrKeyframeEffectOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrKeyframeEffectOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrKeyframeEffectOptions o

toDoubleOrKeyframeEffectOptions :: IsDoubleOrKeyframeEffectOptions o => o -> DoubleOrKeyframeEffectOptions
toDoubleOrKeyframeEffectOptions = DoubleOrKeyframeEffectOptions . pToJSVal

instance IsDoubleOrKeyframeEffectOptions DoubleOrKeyframeEffectOptions
instance IsDoubleOrKeyframeEffectOptions Double
instance IsDoubleOrKeyframeEffectOptions KeyframeAnimationOptions
instance IsDoubleOrKeyframeEffectOptions KeyframeEffectOptions

newtype DoubleOrSequenceDouble = DoubleOrSequenceDouble { unDoubleOrSequenceDouble :: JSVal }

instance Eq DoubleOrSequenceDouble where
  (DoubleOrSequenceDouble a) == (DoubleOrSequenceDouble b) = js_eq a b

instance PToJSVal DoubleOrSequenceDouble where
  pToJSVal = unDoubleOrSequenceDouble
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrSequenceDouble where
  pFromJSVal = DoubleOrSequenceDouble
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrSequenceDouble where
  toJSVal = return . unDoubleOrSequenceDouble
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrSequenceDouble where
  fromJSVal = return . fmap DoubleOrSequenceDouble . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrSequenceDouble
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrSequenceDouble o

toDoubleOrSequenceDouble :: IsDoubleOrSequenceDouble o => o -> DoubleOrSequenceDouble
toDoubleOrSequenceDouble = DoubleOrSequenceDouble . pToJSVal

instance IsDoubleOrSequenceDouble DoubleOrSequenceDouble
instance IsDoubleOrSequenceDouble Double

newtype DoubleOrString = DoubleOrString { unDoubleOrString :: JSVal }

instance Eq DoubleOrString where
  (DoubleOrString a) == (DoubleOrString b) = js_eq a b

instance PToJSVal DoubleOrString where
  pToJSVal = unDoubleOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleOrString where
  pFromJSVal = DoubleOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleOrString where
  toJSVal = return . unDoubleOrString
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleOrString where
  fromJSVal = return . fmap DoubleOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsDoubleOrString o

toDoubleOrString :: IsDoubleOrString o => o -> DoubleOrString
toDoubleOrString = DoubleOrString . pToJSVal

instance IsDoubleOrString DoubleOrString
instance IsDoubleOrString Double
instance IsDoubleOrString JSString
instance IsDoubleOrString String
instance IsDoubleOrString T.Text

newtype ElementOrDocument = ElementOrDocument { unElementOrDocument :: JSVal }

instance Eq ElementOrDocument where
  (ElementOrDocument a) == (ElementOrDocument b) = js_eq a b

instance PToJSVal ElementOrDocument where
  pToJSVal = unElementOrDocument
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementOrDocument where
  pFromJSVal = ElementOrDocument
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementOrDocument where
  toJSVal = return . unElementOrDocument
  {-# INLINE toJSVal #-}

instance FromJSVal ElementOrDocument where
  fromJSVal = return . fmap ElementOrDocument . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementOrDocument
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsElementOrDocument o

toElementOrDocument :: IsElementOrDocument o => o -> ElementOrDocument
toElementOrDocument = ElementOrDocument . pToJSVal

instance IsElementOrDocument ElementOrDocument
instance IsElementOrDocument Document
instance IsElementOrDocument Element
instance IsElementOrDocument HTMLAnchorElement
instance IsElementOrDocument HTMLAreaElement
instance IsElementOrDocument HTMLAudioElement
instance IsElementOrDocument HTMLBRElement
instance IsElementOrDocument HTMLBaseElement
instance IsElementOrDocument HTMLBodyElement
instance IsElementOrDocument HTMLButtonElement
instance IsElementOrDocument HTMLCanvasElement
instance IsElementOrDocument HTMLDListElement
instance IsElementOrDocument HTMLDataElement
instance IsElementOrDocument HTMLDataListElement
instance IsElementOrDocument HTMLDetailsElement
instance IsElementOrDocument HTMLDialogElement
instance IsElementOrDocument HTMLDirectoryElement
instance IsElementOrDocument HTMLDivElement
instance IsElementOrDocument HTMLElement
instance IsElementOrDocument HTMLEmbedElement
instance IsElementOrDocument HTMLFieldSetElement
instance IsElementOrDocument HTMLFontElement
instance IsElementOrDocument HTMLFormElement
instance IsElementOrDocument HTMLFrameElement
instance IsElementOrDocument HTMLFrameSetElement
instance IsElementOrDocument HTMLHRElement
instance IsElementOrDocument HTMLHeadElement
instance IsElementOrDocument HTMLHeadingElement
instance IsElementOrDocument HTMLHtmlElement
instance IsElementOrDocument HTMLIFrameElement
instance IsElementOrDocument HTMLImageElement
instance IsElementOrDocument HTMLInputElement
instance IsElementOrDocument HTMLLIElement
instance IsElementOrDocument HTMLLabelElement
instance IsElementOrDocument HTMLLegendElement
instance IsElementOrDocument HTMLLinkElement
instance IsElementOrDocument HTMLMapElement
instance IsElementOrDocument HTMLMarqueeElement
instance IsElementOrDocument HTMLMediaElement
instance IsElementOrDocument HTMLMenuElement
instance IsElementOrDocument HTMLMetaElement
instance IsElementOrDocument HTMLMeterElement
instance IsElementOrDocument HTMLModElement
instance IsElementOrDocument HTMLOListElement
instance IsElementOrDocument HTMLObjectElement
instance IsElementOrDocument HTMLOptGroupElement
instance IsElementOrDocument HTMLOptionElement
instance IsElementOrDocument HTMLOutputElement
instance IsElementOrDocument HTMLParagraphElement
instance IsElementOrDocument HTMLParamElement
instance IsElementOrDocument HTMLPictureElement
instance IsElementOrDocument HTMLPreElement
instance IsElementOrDocument HTMLProgressElement
instance IsElementOrDocument HTMLQuoteElement
instance IsElementOrDocument HTMLScriptElement
instance IsElementOrDocument HTMLSelectElement
instance IsElementOrDocument HTMLSelectedContentElement
instance IsElementOrDocument HTMLSlotElement
instance IsElementOrDocument HTMLSourceElement
instance IsElementOrDocument HTMLSpanElement
instance IsElementOrDocument HTMLStyleElement
instance IsElementOrDocument HTMLTableCaptionElement
instance IsElementOrDocument HTMLTableCellElement
instance IsElementOrDocument HTMLTableColElement
instance IsElementOrDocument HTMLTableElement
instance IsElementOrDocument HTMLTableRowElement
instance IsElementOrDocument HTMLTableSectionElement
instance IsElementOrDocument HTMLTemplateElement
instance IsElementOrDocument HTMLTextAreaElement
instance IsElementOrDocument HTMLTimeElement
instance IsElementOrDocument HTMLTitleElement
instance IsElementOrDocument HTMLTrackElement
instance IsElementOrDocument HTMLUListElement
instance IsElementOrDocument HTMLUnknownElement
instance IsElementOrDocument HTMLVideoElement
instance IsElementOrDocument MathMLElement
instance IsElementOrDocument SVGAElement
instance IsElementOrDocument SVGAnimateElement
instance IsElementOrDocument SVGAnimateMotionElement
instance IsElementOrDocument SVGAnimateTransformElement
instance IsElementOrDocument SVGAnimationElement
instance IsElementOrDocument SVGCircleElement
instance IsElementOrDocument SVGClipPathElement
instance IsElementOrDocument SVGComponentTransferFunctionElement
instance IsElementOrDocument SVGDefsElement
instance IsElementOrDocument SVGDescElement
instance IsElementOrDocument SVGElement
instance IsElementOrDocument SVGEllipseElement
instance IsElementOrDocument SVGFEBlendElement
instance IsElementOrDocument SVGFEColorMatrixElement
instance IsElementOrDocument SVGFEComponentTransferElement
instance IsElementOrDocument SVGFECompositeElement
instance IsElementOrDocument SVGFEConvolveMatrixElement
instance IsElementOrDocument SVGFEDiffuseLightingElement
instance IsElementOrDocument SVGFEDisplacementMapElement
instance IsElementOrDocument SVGFEDistantLightElement
instance IsElementOrDocument SVGFEDropShadowElement
instance IsElementOrDocument SVGFEFloodElement
instance IsElementOrDocument SVGFEFuncAElement
instance IsElementOrDocument SVGFEFuncBElement
instance IsElementOrDocument SVGFEFuncGElement
instance IsElementOrDocument SVGFEFuncRElement
instance IsElementOrDocument SVGFEGaussianBlurElement
instance IsElementOrDocument SVGFEImageElement
instance IsElementOrDocument SVGFEMergeElement
instance IsElementOrDocument SVGFEMergeNodeElement
instance IsElementOrDocument SVGFEMorphologyElement
instance IsElementOrDocument SVGFEOffsetElement
instance IsElementOrDocument SVGFEPointLightElement
instance IsElementOrDocument SVGFESpecularLightingElement
instance IsElementOrDocument SVGFESpotLightElement
instance IsElementOrDocument SVGFETileElement
instance IsElementOrDocument SVGFETurbulenceElement
instance IsElementOrDocument SVGFilterElement
instance IsElementOrDocument SVGForeignObjectElement
instance IsElementOrDocument SVGGElement
instance IsElementOrDocument SVGGeometryElement
instance IsElementOrDocument SVGGradientElement
instance IsElementOrDocument SVGGraphicsElement
instance IsElementOrDocument SVGImageElement
instance IsElementOrDocument SVGLineElement
instance IsElementOrDocument SVGLinearGradientElement
instance IsElementOrDocument SVGMPathElement
instance IsElementOrDocument SVGMarkerElement
instance IsElementOrDocument SVGMaskElement
instance IsElementOrDocument SVGMetadataElement
instance IsElementOrDocument SVGPathElement
instance IsElementOrDocument SVGPatternElement
instance IsElementOrDocument SVGPolygonElement
instance IsElementOrDocument SVGPolylineElement
instance IsElementOrDocument SVGRadialGradientElement
instance IsElementOrDocument SVGRectElement
instance IsElementOrDocument SVGSVGElement
instance IsElementOrDocument SVGScriptElement
instance IsElementOrDocument SVGSetElement
instance IsElementOrDocument SVGStopElement
instance IsElementOrDocument SVGStyleElement
instance IsElementOrDocument SVGSwitchElement
instance IsElementOrDocument SVGSymbolElement
instance IsElementOrDocument SVGTSpanElement
instance IsElementOrDocument SVGTextContentElement
instance IsElementOrDocument SVGTextElement
instance IsElementOrDocument SVGTextPathElement
instance IsElementOrDocument SVGTextPositioningElement
instance IsElementOrDocument SVGTitleElement
instance IsElementOrDocument SVGUseElement
instance IsElementOrDocument SVGViewElement
instance IsElementOrDocument XMLDocument

newtype ElementOrProcessingInstruction = ElementOrProcessingInstruction { unElementOrProcessingInstruction :: JSVal }

instance Eq ElementOrProcessingInstruction where
  (ElementOrProcessingInstruction a) == (ElementOrProcessingInstruction b) = js_eq a b

instance PToJSVal ElementOrProcessingInstruction where
  pToJSVal = unElementOrProcessingInstruction
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementOrProcessingInstruction where
  pFromJSVal = ElementOrProcessingInstruction
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementOrProcessingInstruction where
  toJSVal = return . unElementOrProcessingInstruction
  {-# INLINE toJSVal #-}

instance FromJSVal ElementOrProcessingInstruction where
  fromJSVal = return . fmap ElementOrProcessingInstruction . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementOrProcessingInstruction
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsElementOrProcessingInstruction o

toElementOrProcessingInstruction :: IsElementOrProcessingInstruction o => o -> ElementOrProcessingInstruction
toElementOrProcessingInstruction = ElementOrProcessingInstruction . pToJSVal

instance IsElementOrProcessingInstruction ElementOrProcessingInstruction
instance IsElementOrProcessingInstruction Element
instance IsElementOrProcessingInstruction HTMLAnchorElement
instance IsElementOrProcessingInstruction HTMLAreaElement
instance IsElementOrProcessingInstruction HTMLAudioElement
instance IsElementOrProcessingInstruction HTMLBRElement
instance IsElementOrProcessingInstruction HTMLBaseElement
instance IsElementOrProcessingInstruction HTMLBodyElement
instance IsElementOrProcessingInstruction HTMLButtonElement
instance IsElementOrProcessingInstruction HTMLCanvasElement
instance IsElementOrProcessingInstruction HTMLDListElement
instance IsElementOrProcessingInstruction HTMLDataElement
instance IsElementOrProcessingInstruction HTMLDataListElement
instance IsElementOrProcessingInstruction HTMLDetailsElement
instance IsElementOrProcessingInstruction HTMLDialogElement
instance IsElementOrProcessingInstruction HTMLDirectoryElement
instance IsElementOrProcessingInstruction HTMLDivElement
instance IsElementOrProcessingInstruction HTMLElement
instance IsElementOrProcessingInstruction HTMLEmbedElement
instance IsElementOrProcessingInstruction HTMLFieldSetElement
instance IsElementOrProcessingInstruction HTMLFontElement
instance IsElementOrProcessingInstruction HTMLFormElement
instance IsElementOrProcessingInstruction HTMLFrameElement
instance IsElementOrProcessingInstruction HTMLFrameSetElement
instance IsElementOrProcessingInstruction HTMLHRElement
instance IsElementOrProcessingInstruction HTMLHeadElement
instance IsElementOrProcessingInstruction HTMLHeadingElement
instance IsElementOrProcessingInstruction HTMLHtmlElement
instance IsElementOrProcessingInstruction HTMLIFrameElement
instance IsElementOrProcessingInstruction HTMLImageElement
instance IsElementOrProcessingInstruction HTMLInputElement
instance IsElementOrProcessingInstruction HTMLLIElement
instance IsElementOrProcessingInstruction HTMLLabelElement
instance IsElementOrProcessingInstruction HTMLLegendElement
instance IsElementOrProcessingInstruction HTMLLinkElement
instance IsElementOrProcessingInstruction HTMLMapElement
instance IsElementOrProcessingInstruction HTMLMarqueeElement
instance IsElementOrProcessingInstruction HTMLMediaElement
instance IsElementOrProcessingInstruction HTMLMenuElement
instance IsElementOrProcessingInstruction HTMLMetaElement
instance IsElementOrProcessingInstruction HTMLMeterElement
instance IsElementOrProcessingInstruction HTMLModElement
instance IsElementOrProcessingInstruction HTMLOListElement
instance IsElementOrProcessingInstruction HTMLObjectElement
instance IsElementOrProcessingInstruction HTMLOptGroupElement
instance IsElementOrProcessingInstruction HTMLOptionElement
instance IsElementOrProcessingInstruction HTMLOutputElement
instance IsElementOrProcessingInstruction HTMLParagraphElement
instance IsElementOrProcessingInstruction HTMLParamElement
instance IsElementOrProcessingInstruction HTMLPictureElement
instance IsElementOrProcessingInstruction HTMLPreElement
instance IsElementOrProcessingInstruction HTMLProgressElement
instance IsElementOrProcessingInstruction HTMLQuoteElement
instance IsElementOrProcessingInstruction HTMLScriptElement
instance IsElementOrProcessingInstruction HTMLSelectElement
instance IsElementOrProcessingInstruction HTMLSelectedContentElement
instance IsElementOrProcessingInstruction HTMLSlotElement
instance IsElementOrProcessingInstruction HTMLSourceElement
instance IsElementOrProcessingInstruction HTMLSpanElement
instance IsElementOrProcessingInstruction HTMLStyleElement
instance IsElementOrProcessingInstruction HTMLTableCaptionElement
instance IsElementOrProcessingInstruction HTMLTableCellElement
instance IsElementOrProcessingInstruction HTMLTableColElement
instance IsElementOrProcessingInstruction HTMLTableElement
instance IsElementOrProcessingInstruction HTMLTableRowElement
instance IsElementOrProcessingInstruction HTMLTableSectionElement
instance IsElementOrProcessingInstruction HTMLTemplateElement
instance IsElementOrProcessingInstruction HTMLTextAreaElement
instance IsElementOrProcessingInstruction HTMLTimeElement
instance IsElementOrProcessingInstruction HTMLTitleElement
instance IsElementOrProcessingInstruction HTMLTrackElement
instance IsElementOrProcessingInstruction HTMLUListElement
instance IsElementOrProcessingInstruction HTMLUnknownElement
instance IsElementOrProcessingInstruction HTMLVideoElement
instance IsElementOrProcessingInstruction MathMLElement
instance IsElementOrProcessingInstruction ProcessingInstruction
instance IsElementOrProcessingInstruction SVGAElement
instance IsElementOrProcessingInstruction SVGAnimateElement
instance IsElementOrProcessingInstruction SVGAnimateMotionElement
instance IsElementOrProcessingInstruction SVGAnimateTransformElement
instance IsElementOrProcessingInstruction SVGAnimationElement
instance IsElementOrProcessingInstruction SVGCircleElement
instance IsElementOrProcessingInstruction SVGClipPathElement
instance IsElementOrProcessingInstruction SVGComponentTransferFunctionElement
instance IsElementOrProcessingInstruction SVGDefsElement
instance IsElementOrProcessingInstruction SVGDescElement
instance IsElementOrProcessingInstruction SVGElement
instance IsElementOrProcessingInstruction SVGEllipseElement
instance IsElementOrProcessingInstruction SVGFEBlendElement
instance IsElementOrProcessingInstruction SVGFEColorMatrixElement
instance IsElementOrProcessingInstruction SVGFEComponentTransferElement
instance IsElementOrProcessingInstruction SVGFECompositeElement
instance IsElementOrProcessingInstruction SVGFEConvolveMatrixElement
instance IsElementOrProcessingInstruction SVGFEDiffuseLightingElement
instance IsElementOrProcessingInstruction SVGFEDisplacementMapElement
instance IsElementOrProcessingInstruction SVGFEDistantLightElement
instance IsElementOrProcessingInstruction SVGFEDropShadowElement
instance IsElementOrProcessingInstruction SVGFEFloodElement
instance IsElementOrProcessingInstruction SVGFEFuncAElement
instance IsElementOrProcessingInstruction SVGFEFuncBElement
instance IsElementOrProcessingInstruction SVGFEFuncGElement
instance IsElementOrProcessingInstruction SVGFEFuncRElement
instance IsElementOrProcessingInstruction SVGFEGaussianBlurElement
instance IsElementOrProcessingInstruction SVGFEImageElement
instance IsElementOrProcessingInstruction SVGFEMergeElement
instance IsElementOrProcessingInstruction SVGFEMergeNodeElement
instance IsElementOrProcessingInstruction SVGFEMorphologyElement
instance IsElementOrProcessingInstruction SVGFEOffsetElement
instance IsElementOrProcessingInstruction SVGFEPointLightElement
instance IsElementOrProcessingInstruction SVGFESpecularLightingElement
instance IsElementOrProcessingInstruction SVGFESpotLightElement
instance IsElementOrProcessingInstruction SVGFETileElement
instance IsElementOrProcessingInstruction SVGFETurbulenceElement
instance IsElementOrProcessingInstruction SVGFilterElement
instance IsElementOrProcessingInstruction SVGForeignObjectElement
instance IsElementOrProcessingInstruction SVGGElement
instance IsElementOrProcessingInstruction SVGGeometryElement
instance IsElementOrProcessingInstruction SVGGradientElement
instance IsElementOrProcessingInstruction SVGGraphicsElement
instance IsElementOrProcessingInstruction SVGImageElement
instance IsElementOrProcessingInstruction SVGLineElement
instance IsElementOrProcessingInstruction SVGLinearGradientElement
instance IsElementOrProcessingInstruction SVGMPathElement
instance IsElementOrProcessingInstruction SVGMarkerElement
instance IsElementOrProcessingInstruction SVGMaskElement
instance IsElementOrProcessingInstruction SVGMetadataElement
instance IsElementOrProcessingInstruction SVGPathElement
instance IsElementOrProcessingInstruction SVGPatternElement
instance IsElementOrProcessingInstruction SVGPolygonElement
instance IsElementOrProcessingInstruction SVGPolylineElement
instance IsElementOrProcessingInstruction SVGRadialGradientElement
instance IsElementOrProcessingInstruction SVGRectElement
instance IsElementOrProcessingInstruction SVGSVGElement
instance IsElementOrProcessingInstruction SVGScriptElement
instance IsElementOrProcessingInstruction SVGSetElement
instance IsElementOrProcessingInstruction SVGStopElement
instance IsElementOrProcessingInstruction SVGStyleElement
instance IsElementOrProcessingInstruction SVGSwitchElement
instance IsElementOrProcessingInstruction SVGSymbolElement
instance IsElementOrProcessingInstruction SVGTSpanElement
instance IsElementOrProcessingInstruction SVGTextContentElement
instance IsElementOrProcessingInstruction SVGTextElement
instance IsElementOrProcessingInstruction SVGTextPathElement
instance IsElementOrProcessingInstruction SVGTextPositioningElement
instance IsElementOrProcessingInstruction SVGTitleElement
instance IsElementOrProcessingInstruction SVGUseElement
instance IsElementOrProcessingInstruction SVGViewElement

newtype ElementOrText = ElementOrText { unElementOrText :: JSVal }

instance Eq ElementOrText where
  (ElementOrText a) == (ElementOrText b) = js_eq a b

instance PToJSVal ElementOrText where
  pToJSVal = unElementOrText
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementOrText where
  pFromJSVal = ElementOrText
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementOrText where
  toJSVal = return . unElementOrText
  {-# INLINE toJSVal #-}

instance FromJSVal ElementOrText where
  fromJSVal = return . fmap ElementOrText . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementOrText
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsElementOrText o

toElementOrText :: IsElementOrText o => o -> ElementOrText
toElementOrText = ElementOrText . pToJSVal

instance IsElementOrText ElementOrText
instance IsElementOrText CDATASection
instance IsElementOrText Element
instance IsElementOrText HTMLAnchorElement
instance IsElementOrText HTMLAreaElement
instance IsElementOrText HTMLAudioElement
instance IsElementOrText HTMLBRElement
instance IsElementOrText HTMLBaseElement
instance IsElementOrText HTMLBodyElement
instance IsElementOrText HTMLButtonElement
instance IsElementOrText HTMLCanvasElement
instance IsElementOrText HTMLDListElement
instance IsElementOrText HTMLDataElement
instance IsElementOrText HTMLDataListElement
instance IsElementOrText HTMLDetailsElement
instance IsElementOrText HTMLDialogElement
instance IsElementOrText HTMLDirectoryElement
instance IsElementOrText HTMLDivElement
instance IsElementOrText HTMLElement
instance IsElementOrText HTMLEmbedElement
instance IsElementOrText HTMLFieldSetElement
instance IsElementOrText HTMLFontElement
instance IsElementOrText HTMLFormElement
instance IsElementOrText HTMLFrameElement
instance IsElementOrText HTMLFrameSetElement
instance IsElementOrText HTMLHRElement
instance IsElementOrText HTMLHeadElement
instance IsElementOrText HTMLHeadingElement
instance IsElementOrText HTMLHtmlElement
instance IsElementOrText HTMLIFrameElement
instance IsElementOrText HTMLImageElement
instance IsElementOrText HTMLInputElement
instance IsElementOrText HTMLLIElement
instance IsElementOrText HTMLLabelElement
instance IsElementOrText HTMLLegendElement
instance IsElementOrText HTMLLinkElement
instance IsElementOrText HTMLMapElement
instance IsElementOrText HTMLMarqueeElement
instance IsElementOrText HTMLMediaElement
instance IsElementOrText HTMLMenuElement
instance IsElementOrText HTMLMetaElement
instance IsElementOrText HTMLMeterElement
instance IsElementOrText HTMLModElement
instance IsElementOrText HTMLOListElement
instance IsElementOrText HTMLObjectElement
instance IsElementOrText HTMLOptGroupElement
instance IsElementOrText HTMLOptionElement
instance IsElementOrText HTMLOutputElement
instance IsElementOrText HTMLParagraphElement
instance IsElementOrText HTMLParamElement
instance IsElementOrText HTMLPictureElement
instance IsElementOrText HTMLPreElement
instance IsElementOrText HTMLProgressElement
instance IsElementOrText HTMLQuoteElement
instance IsElementOrText HTMLScriptElement
instance IsElementOrText HTMLSelectElement
instance IsElementOrText HTMLSelectedContentElement
instance IsElementOrText HTMLSlotElement
instance IsElementOrText HTMLSourceElement
instance IsElementOrText HTMLSpanElement
instance IsElementOrText HTMLStyleElement
instance IsElementOrText HTMLTableCaptionElement
instance IsElementOrText HTMLTableCellElement
instance IsElementOrText HTMLTableColElement
instance IsElementOrText HTMLTableElement
instance IsElementOrText HTMLTableRowElement
instance IsElementOrText HTMLTableSectionElement
instance IsElementOrText HTMLTemplateElement
instance IsElementOrText HTMLTextAreaElement
instance IsElementOrText HTMLTimeElement
instance IsElementOrText HTMLTitleElement
instance IsElementOrText HTMLTrackElement
instance IsElementOrText HTMLUListElement
instance IsElementOrText HTMLUnknownElement
instance IsElementOrText HTMLVideoElement
instance IsElementOrText MathMLElement
instance IsElementOrText SVGAElement
instance IsElementOrText SVGAnimateElement
instance IsElementOrText SVGAnimateMotionElement
instance IsElementOrText SVGAnimateTransformElement
instance IsElementOrText SVGAnimationElement
instance IsElementOrText SVGCircleElement
instance IsElementOrText SVGClipPathElement
instance IsElementOrText SVGComponentTransferFunctionElement
instance IsElementOrText SVGDefsElement
instance IsElementOrText SVGDescElement
instance IsElementOrText SVGElement
instance IsElementOrText SVGEllipseElement
instance IsElementOrText SVGFEBlendElement
instance IsElementOrText SVGFEColorMatrixElement
instance IsElementOrText SVGFEComponentTransferElement
instance IsElementOrText SVGFECompositeElement
instance IsElementOrText SVGFEConvolveMatrixElement
instance IsElementOrText SVGFEDiffuseLightingElement
instance IsElementOrText SVGFEDisplacementMapElement
instance IsElementOrText SVGFEDistantLightElement
instance IsElementOrText SVGFEDropShadowElement
instance IsElementOrText SVGFEFloodElement
instance IsElementOrText SVGFEFuncAElement
instance IsElementOrText SVGFEFuncBElement
instance IsElementOrText SVGFEFuncGElement
instance IsElementOrText SVGFEFuncRElement
instance IsElementOrText SVGFEGaussianBlurElement
instance IsElementOrText SVGFEImageElement
instance IsElementOrText SVGFEMergeElement
instance IsElementOrText SVGFEMergeNodeElement
instance IsElementOrText SVGFEMorphologyElement
instance IsElementOrText SVGFEOffsetElement
instance IsElementOrText SVGFEPointLightElement
instance IsElementOrText SVGFESpecularLightingElement
instance IsElementOrText SVGFESpotLightElement
instance IsElementOrText SVGFETileElement
instance IsElementOrText SVGFETurbulenceElement
instance IsElementOrText SVGFilterElement
instance IsElementOrText SVGForeignObjectElement
instance IsElementOrText SVGGElement
instance IsElementOrText SVGGeometryElement
instance IsElementOrText SVGGradientElement
instance IsElementOrText SVGGraphicsElement
instance IsElementOrText SVGImageElement
instance IsElementOrText SVGLineElement
instance IsElementOrText SVGLinearGradientElement
instance IsElementOrText SVGMPathElement
instance IsElementOrText SVGMarkerElement
instance IsElementOrText SVGMaskElement
instance IsElementOrText SVGMetadataElement
instance IsElementOrText SVGPathElement
instance IsElementOrText SVGPatternElement
instance IsElementOrText SVGPolygonElement
instance IsElementOrText SVGPolylineElement
instance IsElementOrText SVGRadialGradientElement
instance IsElementOrText SVGRectElement
instance IsElementOrText SVGSVGElement
instance IsElementOrText SVGScriptElement
instance IsElementOrText SVGSetElement
instance IsElementOrText SVGStopElement
instance IsElementOrText SVGStyleElement
instance IsElementOrText SVGSwitchElement
instance IsElementOrText SVGSymbolElement
instance IsElementOrText SVGTSpanElement
instance IsElementOrText SVGTextContentElement
instance IsElementOrText SVGTextElement
instance IsElementOrText SVGTextPathElement
instance IsElementOrText SVGTextPositioningElement
instance IsElementOrText SVGTitleElement
instance IsElementOrText SVGUseElement
instance IsElementOrText SVGViewElement
instance IsElementOrText Text

newtype EventListenerOptionsOrBool = EventListenerOptionsOrBool { unEventListenerOptionsOrBool :: JSVal }

instance Eq EventListenerOptionsOrBool where
  (EventListenerOptionsOrBool a) == (EventListenerOptionsOrBool b) = js_eq a b

instance PToJSVal EventListenerOptionsOrBool where
  pToJSVal = unEventListenerOptionsOrBool
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventListenerOptionsOrBool where
  pFromJSVal = EventListenerOptionsOrBool
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventListenerOptionsOrBool where
  toJSVal = return . unEventListenerOptionsOrBool
  {-# INLINE toJSVal #-}

instance FromJSVal EventListenerOptionsOrBool where
  fromJSVal = return . fmap EventListenerOptionsOrBool . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventListenerOptionsOrBool
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsEventListenerOptionsOrBool o

toEventListenerOptionsOrBool :: IsEventListenerOptionsOrBool o => o -> EventListenerOptionsOrBool
toEventListenerOptionsOrBool = EventListenerOptionsOrBool . pToJSVal

instance IsEventListenerOptionsOrBool EventListenerOptionsOrBool
instance IsEventListenerOptionsOrBool AddEventListenerOptions
instance IsEventListenerOptionsOrBool Bool
instance IsEventListenerOptionsOrBool EventListenerOptions

newtype EventOrUndefined = EventOrUndefined { unEventOrUndefined :: JSVal }

instance Eq EventOrUndefined where
  (EventOrUndefined a) == (EventOrUndefined b) = js_eq a b

instance PToJSVal EventOrUndefined where
  pToJSVal = unEventOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventOrUndefined where
  pFromJSVal = EventOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventOrUndefined where
  toJSVal = return . unEventOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal EventOrUndefined where
  fromJSVal = return . fmap EventOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsEventOrUndefined o

toEventOrUndefined :: IsEventOrUndefined o => o -> EventOrUndefined
toEventOrUndefined = EventOrUndefined . pToJSVal

instance IsEventOrUndefined EventOrUndefined
instance IsEventOrUndefined AnimationEvent
instance IsEventOrUndefined AnimationPlaybackEvent
instance IsEventOrUndefined AudioProcessingEvent
instance IsEventOrUndefined AutofillEvent
instance IsEventOrUndefined BeforeUnloadEvent
instance IsEventOrUndefined BlobEvent
instance IsEventOrUndefined ClipboardChangeEvent
instance IsEventOrUndefined ClipboardEvent
instance IsEventOrUndefined CloseEvent
instance IsEventOrUndefined CommandEvent
instance IsEventOrUndefined CompositionEvent
instance IsEventOrUndefined ContentVisibilityAutoStateChangeEvent
instance IsEventOrUndefined CookieChangeEvent
instance IsEventOrUndefined CustomEvent
instance IsEventOrUndefined DeviceChangeEvent
instance IsEventOrUndefined DeviceMotionEvent
instance IsEventOrUndefined DeviceOrientationEvent
instance IsEventOrUndefined DocumentPictureInPictureEvent
instance IsEventOrUndefined DragEvent
instance IsEventOrUndefined ErrorEvent
instance IsEventOrUndefined Event
instance IsEventOrUndefined ExtendableCookieChangeEvent
instance IsEventOrUndefined ExtendableEvent
instance IsEventOrUndefined ExtendableMessageEvent
instance IsEventOrUndefined FetchEvent
instance IsEventOrUndefined FocusEvent
instance IsEventOrUndefined FontFaceSetLoadEvent
instance IsEventOrUndefined FormDataEvent
instance IsEventOrUndefined GPUUncapturedErrorEvent
instance IsEventOrUndefined GamepadEvent
instance IsEventOrUndefined HashChangeEvent
instance IsEventOrUndefined IDBVersionChangeEvent
instance IsEventOrUndefined InputEvent
instance IsEventOrUndefined InstallEvent
instance IsEventOrUndefined KeyboardEvent
instance IsEventOrUndefined MIDIConnectionEvent
instance IsEventOrUndefined MIDIMessageEvent
instance IsEventOrUndefined MediaEncryptedEvent
instance IsEventOrUndefined MediaKeyMessageEvent
instance IsEventOrUndefined MediaQueryListEvent
instance IsEventOrUndefined MediaStreamTrackEvent
instance IsEventOrUndefined MessageEvent
instance IsEventOrUndefined MouseEvent
instance IsEventOrUndefined NavigateEvent
instance IsEventOrUndefined NavigationCurrentEntryChangeEvent
instance IsEventOrUndefined NavigationEvent
instance IsEventOrUndefined NotificationEvent
instance IsEventOrUndefined OfflineAudioCompletionEvent
instance IsEventOrUndefined PageRevealEvent
instance IsEventOrUndefined PageSwapEvent
instance IsEventOrUndefined PageTransitionEvent
instance IsEventOrUndefined PaymentMethodChangeEvent
instance IsEventOrUndefined PaymentRequestUpdateEvent
instance IsEventOrUndefined PictureInPictureEvent
instance IsEventOrUndefined PointerEvent
instance IsEventOrUndefined PopStateEvent
instance IsEventOrUndefined ProgressEvent
instance IsEventOrUndefined PromiseRejectionEvent
instance IsEventOrUndefined PushEvent
instance IsEventOrUndefined PushSubscriptionChangeEvent
instance IsEventOrUndefined RTCDTMFToneChangeEvent
instance IsEventOrUndefined RTCDataChannelEvent
instance IsEventOrUndefined RTCErrorEvent
instance IsEventOrUndefined RTCPeerConnectionIceErrorEvent
instance IsEventOrUndefined RTCPeerConnectionIceEvent
instance IsEventOrUndefined RTCTrackEvent
instance IsEventOrUndefined RTCTransformEvent
instance IsEventOrUndefined SecurityPolicyViolationEvent
instance IsEventOrUndefined SpeechRecognitionErrorEvent
instance IsEventOrUndefined SpeechRecognitionEvent
instance IsEventOrUndefined SpeechSynthesisErrorEvent
instance IsEventOrUndefined SpeechSynthesisEvent
instance IsEventOrUndefined StorageEvent
instance IsEventOrUndefined SubmitEvent
instance IsEventOrUndefined TaskPriorityChangeEvent
instance IsEventOrUndefined TextEvent
instance IsEventOrUndefined ToggleEvent
instance IsEventOrUndefined TouchEvent
instance IsEventOrUndefined TrackEvent
instance IsEventOrUndefined TransitionEvent
instance IsEventOrUndefined UIEvent
instance IsEventOrUndefined WebGLContextEvent
instance IsEventOrUndefined WheelEvent

newtype FileOrStringOrFormData = FileOrStringOrFormData { unFileOrStringOrFormData :: JSVal }

instance Eq FileOrStringOrFormData where
  (FileOrStringOrFormData a) == (FileOrStringOrFormData b) = js_eq a b

instance PToJSVal FileOrStringOrFormData where
  pToJSVal = unFileOrStringOrFormData
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileOrStringOrFormData where
  pFromJSVal = FileOrStringOrFormData
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileOrStringOrFormData where
  toJSVal = return . unFileOrStringOrFormData
  {-# INLINE toJSVal #-}

instance FromJSVal FileOrStringOrFormData where
  fromJSVal = return . fmap FileOrStringOrFormData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileOrStringOrFormData
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsFileOrStringOrFormData o

toFileOrStringOrFormData :: IsFileOrStringOrFormData o => o -> FileOrStringOrFormData
toFileOrStringOrFormData = FileOrStringOrFormData . pToJSVal

instance IsFileOrStringOrFormData FileOrStringOrFormData
instance IsFileOrStringOrFormData File
instance IsFileOrStringOrFormData FormData
instance IsFileOrStringOrFormData JSString
instance IsFileOrStringOrFormData String
instance IsFileOrStringOrFormData T.Text

newtype FileSystemWriteChunkType = FileSystemWriteChunkType { unFileSystemWriteChunkType :: JSVal }

instance Eq FileSystemWriteChunkType where
  (FileSystemWriteChunkType a) == (FileSystemWriteChunkType b) = js_eq a b

instance PToJSVal FileSystemWriteChunkType where
  pToJSVal = unFileSystemWriteChunkType
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemWriteChunkType where
  pFromJSVal = FileSystemWriteChunkType
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemWriteChunkType where
  toJSVal = return . unFileSystemWriteChunkType
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemWriteChunkType where
  fromJSVal = return . fmap FileSystemWriteChunkType . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemWriteChunkType
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsFileSystemWriteChunkType o

toFileSystemWriteChunkType :: IsFileSystemWriteChunkType o => o -> FileSystemWriteChunkType
toFileSystemWriteChunkType = FileSystemWriteChunkType . pToJSVal

instance IsFileSystemWriteChunkType FileSystemWriteChunkType
instance IsFileSystemWriteChunkType ArrayBuffer
instance IsFileSystemWriteChunkType ArrayBufferView
instance IsFileSystemWriteChunkType BigInt64Array
instance IsFileSystemWriteChunkType BigUint64Array
instance IsFileSystemWriteChunkType Blob
instance IsFileSystemWriteChunkType DataView
instance IsFileSystemWriteChunkType File
instance IsFileSystemWriteChunkType Float16Array
instance IsFileSystemWriteChunkType Float32Array
instance IsFileSystemWriteChunkType Float64Array
instance IsFileSystemWriteChunkType Int16Array
instance IsFileSystemWriteChunkType Int32Array
instance IsFileSystemWriteChunkType Int8Array
instance IsFileSystemWriteChunkType JSString
instance IsFileSystemWriteChunkType String
instance IsFileSystemWriteChunkType T.Text
instance IsFileSystemWriteChunkType Uint16Array
instance IsFileSystemWriteChunkType Uint32Array
instance IsFileSystemWriteChunkType Uint8Array
instance IsFileSystemWriteChunkType Uint8ClampedArray
instance IsFileSystemWriteChunkType WriteParams

newtype Float32List = Float32List { unFloat32List :: JSVal }

instance Eq Float32List where
  (Float32List a) == (Float32List b) = js_eq a b

instance PToJSVal Float32List where
  pToJSVal = unFloat32List
  {-# INLINE pToJSVal #-}

instance PFromJSVal Float32List where
  pFromJSVal = Float32List
  {-# INLINE pFromJSVal #-}

instance ToJSVal Float32List where
  toJSVal = return . unFloat32List
  {-# INLINE toJSVal #-}

instance FromJSVal Float32List where
  fromJSVal = return . fmap Float32List . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Float32List
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsFloat32List o

toFloat32List :: IsFloat32List o => o -> Float32List
toFloat32List = Float32List . pToJSVal

instance IsFloat32List Float32List
instance IsFloat32List Float32Array

newtype FormDataEntryValue = FormDataEntryValue { unFormDataEntryValue :: JSVal }

instance Eq FormDataEntryValue where
  (FormDataEntryValue a) == (FormDataEntryValue b) = js_eq a b

instance PToJSVal FormDataEntryValue where
  pToJSVal = unFormDataEntryValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal FormDataEntryValue where
  pFromJSVal = FormDataEntryValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal FormDataEntryValue where
  toJSVal = return . unFormDataEntryValue
  {-# INLINE toJSVal #-}

instance FromJSVal FormDataEntryValue where
  fromJSVal = return . fmap FormDataEntryValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FormDataEntryValue
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsFormDataEntryValue o

toFormDataEntryValue :: IsFormDataEntryValue o => o -> FormDataEntryValue
toFormDataEntryValue = FormDataEntryValue . pToJSVal

instance IsFormDataEntryValue FormDataEntryValue
instance IsFormDataEntryValue File
instance IsFormDataEntryValue JSString
instance IsFormDataEntryValue String
instance IsFormDataEntryValue T.Text

newtype GPUBindingResource = GPUBindingResource { unGPUBindingResource :: JSVal }

instance Eq GPUBindingResource where
  (GPUBindingResource a) == (GPUBindingResource b) = js_eq a b

instance PToJSVal GPUBindingResource where
  pToJSVal = unGPUBindingResource
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindingResource where
  pFromJSVal = GPUBindingResource
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindingResource where
  toJSVal = return . unGPUBindingResource
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindingResource where
  fromJSVal = return . fmap GPUBindingResource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindingResource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUBindingResource o

toGPUBindingResource :: IsGPUBindingResource o => o -> GPUBindingResource
toGPUBindingResource = GPUBindingResource . pToJSVal

instance IsGPUBindingResource GPUBindingResource
instance IsGPUBindingResource GPUBuffer
instance IsGPUBindingResource GPUBufferBinding
instance IsGPUBindingResource GPUExternalTexture
instance IsGPUBindingResource GPUSampler
instance IsGPUBindingResource GPUTexture
instance IsGPUBindingResource GPUTextureView

newtype GPUColor = GPUColor { unGPUColor :: JSVal }

instance Eq GPUColor where
  (GPUColor a) == (GPUColor b) = js_eq a b

instance PToJSVal GPUColor where
  pToJSVal = unGPUColor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUColor where
  pFromJSVal = GPUColor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUColor where
  toJSVal = return . unGPUColor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUColor where
  fromJSVal = return . fmap GPUColor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUColor
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUColor o

toGPUColor :: IsGPUColor o => o -> GPUColor
toGPUColor = GPUColor . pToJSVal

instance IsGPUColor GPUColor
instance IsGPUColor GPUColorDict

newtype GPUCopyExternalImageSource = GPUCopyExternalImageSource { unGPUCopyExternalImageSource :: JSVal }

instance Eq GPUCopyExternalImageSource where
  (GPUCopyExternalImageSource a) == (GPUCopyExternalImageSource b) = js_eq a b

instance PToJSVal GPUCopyExternalImageSource where
  pToJSVal = unGPUCopyExternalImageSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCopyExternalImageSource where
  pFromJSVal = GPUCopyExternalImageSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCopyExternalImageSource where
  toJSVal = return . unGPUCopyExternalImageSource
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCopyExternalImageSource where
  fromJSVal = return . fmap GPUCopyExternalImageSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCopyExternalImageSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUCopyExternalImageSource o

toGPUCopyExternalImageSource :: IsGPUCopyExternalImageSource o => o -> GPUCopyExternalImageSource
toGPUCopyExternalImageSource = GPUCopyExternalImageSource . pToJSVal

instance IsGPUCopyExternalImageSource GPUCopyExternalImageSource
instance IsGPUCopyExternalImageSource HTMLCanvasElement
instance IsGPUCopyExternalImageSource HTMLImageElement
instance IsGPUCopyExternalImageSource HTMLVideoElement
instance IsGPUCopyExternalImageSource ImageBitmap
instance IsGPUCopyExternalImageSource ImageData
instance IsGPUCopyExternalImageSource OffscreenCanvas
instance IsGPUCopyExternalImageSource VideoFrame

newtype GPUExtent3D = GPUExtent3D { unGPUExtent3D :: JSVal }

instance Eq GPUExtent3D where
  (GPUExtent3D a) == (GPUExtent3D b) = js_eq a b

instance PToJSVal GPUExtent3D where
  pToJSVal = unGPUExtent3D
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUExtent3D where
  pFromJSVal = GPUExtent3D
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUExtent3D where
  toJSVal = return . unGPUExtent3D
  {-# INLINE toJSVal #-}

instance FromJSVal GPUExtent3D where
  fromJSVal = return . fmap GPUExtent3D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUExtent3D
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUExtent3D o

toGPUExtent3D :: IsGPUExtent3D o => o -> GPUExtent3D
toGPUExtent3D = GPUExtent3D . pToJSVal

instance IsGPUExtent3D GPUExtent3D
instance IsGPUExtent3D GPUExtent3DDict

newtype GPUOrigin2D = GPUOrigin2D { unGPUOrigin2D :: JSVal }

instance Eq GPUOrigin2D where
  (GPUOrigin2D a) == (GPUOrigin2D b) = js_eq a b

instance PToJSVal GPUOrigin2D where
  pToJSVal = unGPUOrigin2D
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUOrigin2D where
  pFromJSVal = GPUOrigin2D
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUOrigin2D where
  toJSVal = return . unGPUOrigin2D
  {-# INLINE toJSVal #-}

instance FromJSVal GPUOrigin2D where
  fromJSVal = return . fmap GPUOrigin2D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUOrigin2D
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUOrigin2D o

toGPUOrigin2D :: IsGPUOrigin2D o => o -> GPUOrigin2D
toGPUOrigin2D = GPUOrigin2D . pToJSVal

instance IsGPUOrigin2D GPUOrigin2D
instance IsGPUOrigin2D GPUOrigin2DDict

newtype GPUOrigin3D = GPUOrigin3D { unGPUOrigin3D :: JSVal }

instance Eq GPUOrigin3D where
  (GPUOrigin3D a) == (GPUOrigin3D b) = js_eq a b

instance PToJSVal GPUOrigin3D where
  pToJSVal = unGPUOrigin3D
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUOrigin3D where
  pFromJSVal = GPUOrigin3D
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUOrigin3D where
  toJSVal = return . unGPUOrigin3D
  {-# INLINE toJSVal #-}

instance FromJSVal GPUOrigin3D where
  fromJSVal = return . fmap GPUOrigin3D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUOrigin3D
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUOrigin3D o

toGPUOrigin3D :: IsGPUOrigin3D o => o -> GPUOrigin3D
toGPUOrigin3D = GPUOrigin3D . pToJSVal

instance IsGPUOrigin3D GPUOrigin3D
instance IsGPUOrigin3D GPUOrigin3DDict

newtype GPUPipelineLayoutOrGPUAutoLayoutMode = GPUPipelineLayoutOrGPUAutoLayoutMode { unGPUPipelineLayoutOrGPUAutoLayoutMode :: JSVal }

instance Eq GPUPipelineLayoutOrGPUAutoLayoutMode where
  (GPUPipelineLayoutOrGPUAutoLayoutMode a) == (GPUPipelineLayoutOrGPUAutoLayoutMode b) = js_eq a b

instance PToJSVal GPUPipelineLayoutOrGPUAutoLayoutMode where
  pToJSVal = unGPUPipelineLayoutOrGPUAutoLayoutMode
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineLayoutOrGPUAutoLayoutMode where
  pFromJSVal = GPUPipelineLayoutOrGPUAutoLayoutMode
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineLayoutOrGPUAutoLayoutMode where
  toJSVal = return . unGPUPipelineLayoutOrGPUAutoLayoutMode
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineLayoutOrGPUAutoLayoutMode where
  fromJSVal = return . fmap GPUPipelineLayoutOrGPUAutoLayoutMode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineLayoutOrGPUAutoLayoutMode
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUPipelineLayoutOrGPUAutoLayoutMode o

toGPUPipelineLayoutOrGPUAutoLayoutMode :: IsGPUPipelineLayoutOrGPUAutoLayoutMode o => o -> GPUPipelineLayoutOrGPUAutoLayoutMode
toGPUPipelineLayoutOrGPUAutoLayoutMode = GPUPipelineLayoutOrGPUAutoLayoutMode . pToJSVal

instance IsGPUPipelineLayoutOrGPUAutoLayoutMode GPUPipelineLayoutOrGPUAutoLayoutMode
instance IsGPUPipelineLayoutOrGPUAutoLayoutMode GPUPipelineLayout

newtype GPUSize64OrUndefined = GPUSize64OrUndefined { unGPUSize64OrUndefined :: JSVal }

instance Eq GPUSize64OrUndefined where
  (GPUSize64OrUndefined a) == (GPUSize64OrUndefined b) = js_eq a b

instance PToJSVal GPUSize64OrUndefined where
  pToJSVal = unGPUSize64OrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUSize64OrUndefined where
  pFromJSVal = GPUSize64OrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUSize64OrUndefined where
  toJSVal = return . unGPUSize64OrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal GPUSize64OrUndefined where
  fromJSVal = return . fmap GPUSize64OrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUSize64OrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUSize64OrUndefined o

toGPUSize64OrUndefined :: IsGPUSize64OrUndefined o => o -> GPUSize64OrUndefined
toGPUSize64OrUndefined = GPUSize64OrUndefined . pToJSVal

instance IsGPUSize64OrUndefined GPUSize64OrUndefined
instance IsGPUSize64OrUndefined Word53

newtype GPUTextureOrGPUTextureView = GPUTextureOrGPUTextureView { unGPUTextureOrGPUTextureView :: JSVal }

instance Eq GPUTextureOrGPUTextureView where
  (GPUTextureOrGPUTextureView a) == (GPUTextureOrGPUTextureView b) = js_eq a b

instance PToJSVal GPUTextureOrGPUTextureView where
  pToJSVal = unGPUTextureOrGPUTextureView
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTextureOrGPUTextureView where
  pFromJSVal = GPUTextureOrGPUTextureView
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTextureOrGPUTextureView where
  toJSVal = return . unGPUTextureOrGPUTextureView
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTextureOrGPUTextureView where
  fromJSVal = return . fmap GPUTextureOrGPUTextureView . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTextureOrGPUTextureView
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsGPUTextureOrGPUTextureView o

toGPUTextureOrGPUTextureView :: IsGPUTextureOrGPUTextureView o => o -> GPUTextureOrGPUTextureView
toGPUTextureOrGPUTextureView = GPUTextureOrGPUTextureView . pToJSVal

instance IsGPUTextureOrGPUTextureView GPUTextureOrGPUTextureView
instance IsGPUTextureOrGPUTextureView GPUTexture
instance IsGPUTextureOrGPUTextureView GPUTextureView

newtype HTMLCanvasElementOrOffscreenCanvas = HTMLCanvasElementOrOffscreenCanvas { unHTMLCanvasElementOrOffscreenCanvas :: JSVal }

instance Eq HTMLCanvasElementOrOffscreenCanvas where
  (HTMLCanvasElementOrOffscreenCanvas a) == (HTMLCanvasElementOrOffscreenCanvas b) = js_eq a b

instance PToJSVal HTMLCanvasElementOrOffscreenCanvas where
  pToJSVal = unHTMLCanvasElementOrOffscreenCanvas
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLCanvasElementOrOffscreenCanvas where
  pFromJSVal = HTMLCanvasElementOrOffscreenCanvas
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLCanvasElementOrOffscreenCanvas where
  toJSVal = return . unHTMLCanvasElementOrOffscreenCanvas
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLCanvasElementOrOffscreenCanvas where
  fromJSVal = return . fmap HTMLCanvasElementOrOffscreenCanvas . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLCanvasElementOrOffscreenCanvas
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHTMLCanvasElementOrOffscreenCanvas o

toHTMLCanvasElementOrOffscreenCanvas :: IsHTMLCanvasElementOrOffscreenCanvas o => o -> HTMLCanvasElementOrOffscreenCanvas
toHTMLCanvasElementOrOffscreenCanvas = HTMLCanvasElementOrOffscreenCanvas . pToJSVal

instance IsHTMLCanvasElementOrOffscreenCanvas HTMLCanvasElementOrOffscreenCanvas
instance IsHTMLCanvasElementOrOffscreenCanvas HTMLCanvasElement
instance IsHTMLCanvasElementOrOffscreenCanvas OffscreenCanvas

newtype HTMLCollectionOrElement = HTMLCollectionOrElement { unHTMLCollectionOrElement :: JSVal }

instance Eq HTMLCollectionOrElement where
  (HTMLCollectionOrElement a) == (HTMLCollectionOrElement b) = js_eq a b

instance PToJSVal HTMLCollectionOrElement where
  pToJSVal = unHTMLCollectionOrElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLCollectionOrElement where
  pFromJSVal = HTMLCollectionOrElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLCollectionOrElement where
  toJSVal = return . unHTMLCollectionOrElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLCollectionOrElement where
  fromJSVal = return . fmap HTMLCollectionOrElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLCollectionOrElement
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHTMLCollectionOrElement o

toHTMLCollectionOrElement :: IsHTMLCollectionOrElement o => o -> HTMLCollectionOrElement
toHTMLCollectionOrElement = HTMLCollectionOrElement . pToJSVal

instance IsHTMLCollectionOrElement HTMLCollectionOrElement
instance IsHTMLCollectionOrElement Element
instance IsHTMLCollectionOrElement HTMLAnchorElement
instance IsHTMLCollectionOrElement HTMLAreaElement
instance IsHTMLCollectionOrElement HTMLAudioElement
instance IsHTMLCollectionOrElement HTMLBRElement
instance IsHTMLCollectionOrElement HTMLBaseElement
instance IsHTMLCollectionOrElement HTMLBodyElement
instance IsHTMLCollectionOrElement HTMLButtonElement
instance IsHTMLCollectionOrElement HTMLCanvasElement
instance IsHTMLCollectionOrElement HTMLCollection
instance IsHTMLCollectionOrElement HTMLDListElement
instance IsHTMLCollectionOrElement HTMLDataElement
instance IsHTMLCollectionOrElement HTMLDataListElement
instance IsHTMLCollectionOrElement HTMLDetailsElement
instance IsHTMLCollectionOrElement HTMLDialogElement
instance IsHTMLCollectionOrElement HTMLDirectoryElement
instance IsHTMLCollectionOrElement HTMLDivElement
instance IsHTMLCollectionOrElement HTMLElement
instance IsHTMLCollectionOrElement HTMLEmbedElement
instance IsHTMLCollectionOrElement HTMLFieldSetElement
instance IsHTMLCollectionOrElement HTMLFontElement
instance IsHTMLCollectionOrElement HTMLFormControlsCollection
instance IsHTMLCollectionOrElement HTMLFormElement
instance IsHTMLCollectionOrElement HTMLFrameElement
instance IsHTMLCollectionOrElement HTMLFrameSetElement
instance IsHTMLCollectionOrElement HTMLHRElement
instance IsHTMLCollectionOrElement HTMLHeadElement
instance IsHTMLCollectionOrElement HTMLHeadingElement
instance IsHTMLCollectionOrElement HTMLHtmlElement
instance IsHTMLCollectionOrElement HTMLIFrameElement
instance IsHTMLCollectionOrElement HTMLImageElement
instance IsHTMLCollectionOrElement HTMLInputElement
instance IsHTMLCollectionOrElement HTMLLIElement
instance IsHTMLCollectionOrElement HTMLLabelElement
instance IsHTMLCollectionOrElement HTMLLegendElement
instance IsHTMLCollectionOrElement HTMLLinkElement
instance IsHTMLCollectionOrElement HTMLMapElement
instance IsHTMLCollectionOrElement HTMLMarqueeElement
instance IsHTMLCollectionOrElement HTMLMediaElement
instance IsHTMLCollectionOrElement HTMLMenuElement
instance IsHTMLCollectionOrElement HTMLMetaElement
instance IsHTMLCollectionOrElement HTMLMeterElement
instance IsHTMLCollectionOrElement HTMLModElement
instance IsHTMLCollectionOrElement HTMLOListElement
instance IsHTMLCollectionOrElement HTMLObjectElement
instance IsHTMLCollectionOrElement HTMLOptGroupElement
instance IsHTMLCollectionOrElement HTMLOptionElement
instance IsHTMLCollectionOrElement HTMLOptionsCollection
instance IsHTMLCollectionOrElement HTMLOutputElement
instance IsHTMLCollectionOrElement HTMLParagraphElement
instance IsHTMLCollectionOrElement HTMLParamElement
instance IsHTMLCollectionOrElement HTMLPictureElement
instance IsHTMLCollectionOrElement HTMLPreElement
instance IsHTMLCollectionOrElement HTMLProgressElement
instance IsHTMLCollectionOrElement HTMLQuoteElement
instance IsHTMLCollectionOrElement HTMLScriptElement
instance IsHTMLCollectionOrElement HTMLSelectElement
instance IsHTMLCollectionOrElement HTMLSelectedContentElement
instance IsHTMLCollectionOrElement HTMLSlotElement
instance IsHTMLCollectionOrElement HTMLSourceElement
instance IsHTMLCollectionOrElement HTMLSpanElement
instance IsHTMLCollectionOrElement HTMLStyleElement
instance IsHTMLCollectionOrElement HTMLTableCaptionElement
instance IsHTMLCollectionOrElement HTMLTableCellElement
instance IsHTMLCollectionOrElement HTMLTableColElement
instance IsHTMLCollectionOrElement HTMLTableElement
instance IsHTMLCollectionOrElement HTMLTableRowElement
instance IsHTMLCollectionOrElement HTMLTableSectionElement
instance IsHTMLCollectionOrElement HTMLTemplateElement
instance IsHTMLCollectionOrElement HTMLTextAreaElement
instance IsHTMLCollectionOrElement HTMLTimeElement
instance IsHTMLCollectionOrElement HTMLTitleElement
instance IsHTMLCollectionOrElement HTMLTrackElement
instance IsHTMLCollectionOrElement HTMLUListElement
instance IsHTMLCollectionOrElement HTMLUnknownElement
instance IsHTMLCollectionOrElement HTMLVideoElement
instance IsHTMLCollectionOrElement MathMLElement
instance IsHTMLCollectionOrElement SVGAElement
instance IsHTMLCollectionOrElement SVGAnimateElement
instance IsHTMLCollectionOrElement SVGAnimateMotionElement
instance IsHTMLCollectionOrElement SVGAnimateTransformElement
instance IsHTMLCollectionOrElement SVGAnimationElement
instance IsHTMLCollectionOrElement SVGCircleElement
instance IsHTMLCollectionOrElement SVGClipPathElement
instance IsHTMLCollectionOrElement SVGComponentTransferFunctionElement
instance IsHTMLCollectionOrElement SVGDefsElement
instance IsHTMLCollectionOrElement SVGDescElement
instance IsHTMLCollectionOrElement SVGElement
instance IsHTMLCollectionOrElement SVGEllipseElement
instance IsHTMLCollectionOrElement SVGFEBlendElement
instance IsHTMLCollectionOrElement SVGFEColorMatrixElement
instance IsHTMLCollectionOrElement SVGFEComponentTransferElement
instance IsHTMLCollectionOrElement SVGFECompositeElement
instance IsHTMLCollectionOrElement SVGFEConvolveMatrixElement
instance IsHTMLCollectionOrElement SVGFEDiffuseLightingElement
instance IsHTMLCollectionOrElement SVGFEDisplacementMapElement
instance IsHTMLCollectionOrElement SVGFEDistantLightElement
instance IsHTMLCollectionOrElement SVGFEDropShadowElement
instance IsHTMLCollectionOrElement SVGFEFloodElement
instance IsHTMLCollectionOrElement SVGFEFuncAElement
instance IsHTMLCollectionOrElement SVGFEFuncBElement
instance IsHTMLCollectionOrElement SVGFEFuncGElement
instance IsHTMLCollectionOrElement SVGFEFuncRElement
instance IsHTMLCollectionOrElement SVGFEGaussianBlurElement
instance IsHTMLCollectionOrElement SVGFEImageElement
instance IsHTMLCollectionOrElement SVGFEMergeElement
instance IsHTMLCollectionOrElement SVGFEMergeNodeElement
instance IsHTMLCollectionOrElement SVGFEMorphologyElement
instance IsHTMLCollectionOrElement SVGFEOffsetElement
instance IsHTMLCollectionOrElement SVGFEPointLightElement
instance IsHTMLCollectionOrElement SVGFESpecularLightingElement
instance IsHTMLCollectionOrElement SVGFESpotLightElement
instance IsHTMLCollectionOrElement SVGFETileElement
instance IsHTMLCollectionOrElement SVGFETurbulenceElement
instance IsHTMLCollectionOrElement SVGFilterElement
instance IsHTMLCollectionOrElement SVGForeignObjectElement
instance IsHTMLCollectionOrElement SVGGElement
instance IsHTMLCollectionOrElement SVGGeometryElement
instance IsHTMLCollectionOrElement SVGGradientElement
instance IsHTMLCollectionOrElement SVGGraphicsElement
instance IsHTMLCollectionOrElement SVGImageElement
instance IsHTMLCollectionOrElement SVGLineElement
instance IsHTMLCollectionOrElement SVGLinearGradientElement
instance IsHTMLCollectionOrElement SVGMPathElement
instance IsHTMLCollectionOrElement SVGMarkerElement
instance IsHTMLCollectionOrElement SVGMaskElement
instance IsHTMLCollectionOrElement SVGMetadataElement
instance IsHTMLCollectionOrElement SVGPathElement
instance IsHTMLCollectionOrElement SVGPatternElement
instance IsHTMLCollectionOrElement SVGPolygonElement
instance IsHTMLCollectionOrElement SVGPolylineElement
instance IsHTMLCollectionOrElement SVGRadialGradientElement
instance IsHTMLCollectionOrElement SVGRectElement
instance IsHTMLCollectionOrElement SVGSVGElement
instance IsHTMLCollectionOrElement SVGScriptElement
instance IsHTMLCollectionOrElement SVGSetElement
instance IsHTMLCollectionOrElement SVGStopElement
instance IsHTMLCollectionOrElement SVGStyleElement
instance IsHTMLCollectionOrElement SVGSwitchElement
instance IsHTMLCollectionOrElement SVGSymbolElement
instance IsHTMLCollectionOrElement SVGTSpanElement
instance IsHTMLCollectionOrElement SVGTextContentElement
instance IsHTMLCollectionOrElement SVGTextElement
instance IsHTMLCollectionOrElement SVGTextPathElement
instance IsHTMLCollectionOrElement SVGTextPositioningElement
instance IsHTMLCollectionOrElement SVGTitleElement
instance IsHTMLCollectionOrElement SVGUseElement
instance IsHTMLCollectionOrElement SVGViewElement

newtype HTMLElementOrInt = HTMLElementOrInt { unHTMLElementOrInt :: JSVal }

instance Eq HTMLElementOrInt where
  (HTMLElementOrInt a) == (HTMLElementOrInt b) = js_eq a b

instance PToJSVal HTMLElementOrInt where
  pToJSVal = unHTMLElementOrInt
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLElementOrInt where
  pFromJSVal = HTMLElementOrInt
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLElementOrInt where
  toJSVal = return . unHTMLElementOrInt
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLElementOrInt where
  fromJSVal = return . fmap HTMLElementOrInt . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLElementOrInt
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHTMLElementOrInt o

toHTMLElementOrInt :: IsHTMLElementOrInt o => o -> HTMLElementOrInt
toHTMLElementOrInt = HTMLElementOrInt . pToJSVal

instance IsHTMLElementOrInt HTMLElementOrInt
instance IsHTMLElementOrInt HTMLAnchorElement
instance IsHTMLElementOrInt HTMLAreaElement
instance IsHTMLElementOrInt HTMLAudioElement
instance IsHTMLElementOrInt HTMLBRElement
instance IsHTMLElementOrInt HTMLBaseElement
instance IsHTMLElementOrInt HTMLBodyElement
instance IsHTMLElementOrInt HTMLButtonElement
instance IsHTMLElementOrInt HTMLCanvasElement
instance IsHTMLElementOrInt HTMLDListElement
instance IsHTMLElementOrInt HTMLDataElement
instance IsHTMLElementOrInt HTMLDataListElement
instance IsHTMLElementOrInt HTMLDetailsElement
instance IsHTMLElementOrInt HTMLDialogElement
instance IsHTMLElementOrInt HTMLDirectoryElement
instance IsHTMLElementOrInt HTMLDivElement
instance IsHTMLElementOrInt HTMLElement
instance IsHTMLElementOrInt HTMLEmbedElement
instance IsHTMLElementOrInt HTMLFieldSetElement
instance IsHTMLElementOrInt HTMLFontElement
instance IsHTMLElementOrInt HTMLFormElement
instance IsHTMLElementOrInt HTMLFrameElement
instance IsHTMLElementOrInt HTMLFrameSetElement
instance IsHTMLElementOrInt HTMLHRElement
instance IsHTMLElementOrInt HTMLHeadElement
instance IsHTMLElementOrInt HTMLHeadingElement
instance IsHTMLElementOrInt HTMLHtmlElement
instance IsHTMLElementOrInt HTMLIFrameElement
instance IsHTMLElementOrInt HTMLImageElement
instance IsHTMLElementOrInt HTMLInputElement
instance IsHTMLElementOrInt HTMLLIElement
instance IsHTMLElementOrInt HTMLLabelElement
instance IsHTMLElementOrInt HTMLLegendElement
instance IsHTMLElementOrInt HTMLLinkElement
instance IsHTMLElementOrInt HTMLMapElement
instance IsHTMLElementOrInt HTMLMarqueeElement
instance IsHTMLElementOrInt HTMLMediaElement
instance IsHTMLElementOrInt HTMLMenuElement
instance IsHTMLElementOrInt HTMLMetaElement
instance IsHTMLElementOrInt HTMLMeterElement
instance IsHTMLElementOrInt HTMLModElement
instance IsHTMLElementOrInt HTMLOListElement
instance IsHTMLElementOrInt HTMLObjectElement
instance IsHTMLElementOrInt HTMLOptGroupElement
instance IsHTMLElementOrInt HTMLOptionElement
instance IsHTMLElementOrInt HTMLOutputElement
instance IsHTMLElementOrInt HTMLParagraphElement
instance IsHTMLElementOrInt HTMLParamElement
instance IsHTMLElementOrInt HTMLPictureElement
instance IsHTMLElementOrInt HTMLPreElement
instance IsHTMLElementOrInt HTMLProgressElement
instance IsHTMLElementOrInt HTMLQuoteElement
instance IsHTMLElementOrInt HTMLScriptElement
instance IsHTMLElementOrInt HTMLSelectElement
instance IsHTMLElementOrInt HTMLSelectedContentElement
instance IsHTMLElementOrInt HTMLSlotElement
instance IsHTMLElementOrInt HTMLSourceElement
instance IsHTMLElementOrInt HTMLSpanElement
instance IsHTMLElementOrInt HTMLStyleElement
instance IsHTMLElementOrInt HTMLTableCaptionElement
instance IsHTMLElementOrInt HTMLTableCellElement
instance IsHTMLElementOrInt HTMLTableColElement
instance IsHTMLElementOrInt HTMLTableElement
instance IsHTMLElementOrInt HTMLTableRowElement
instance IsHTMLElementOrInt HTMLTableSectionElement
instance IsHTMLElementOrInt HTMLTemplateElement
instance IsHTMLElementOrInt HTMLTextAreaElement
instance IsHTMLElementOrInt HTMLTimeElement
instance IsHTMLElementOrInt HTMLTitleElement
instance IsHTMLElementOrInt HTMLTrackElement
instance IsHTMLElementOrInt HTMLUListElement
instance IsHTMLElementOrInt HTMLUnknownElement
instance IsHTMLElementOrInt HTMLVideoElement
instance IsHTMLElementOrInt Int

newtype HTMLOptionElementOrHTMLOptGroupElement = HTMLOptionElementOrHTMLOptGroupElement { unHTMLOptionElementOrHTMLOptGroupElement :: JSVal }

instance Eq HTMLOptionElementOrHTMLOptGroupElement where
  (HTMLOptionElementOrHTMLOptGroupElement a) == (HTMLOptionElementOrHTMLOptGroupElement b) = js_eq a b

instance PToJSVal HTMLOptionElementOrHTMLOptGroupElement where
  pToJSVal = unHTMLOptionElementOrHTMLOptGroupElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLOptionElementOrHTMLOptGroupElement where
  pFromJSVal = HTMLOptionElementOrHTMLOptGroupElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLOptionElementOrHTMLOptGroupElement where
  toJSVal = return . unHTMLOptionElementOrHTMLOptGroupElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLOptionElementOrHTMLOptGroupElement where
  fromJSVal = return . fmap HTMLOptionElementOrHTMLOptGroupElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOptionElementOrHTMLOptGroupElement
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHTMLOptionElementOrHTMLOptGroupElement o

toHTMLOptionElementOrHTMLOptGroupElement :: IsHTMLOptionElementOrHTMLOptGroupElement o => o -> HTMLOptionElementOrHTMLOptGroupElement
toHTMLOptionElementOrHTMLOptGroupElement = HTMLOptionElementOrHTMLOptGroupElement . pToJSVal

instance IsHTMLOptionElementOrHTMLOptGroupElement HTMLOptionElementOrHTMLOptGroupElement
instance IsHTMLOptionElementOrHTMLOptGroupElement HTMLOptGroupElement
instance IsHTMLOptionElementOrHTMLOptGroupElement HTMLOptionElement

newtype HTMLOrSVGScriptElement = HTMLOrSVGScriptElement { unHTMLOrSVGScriptElement :: JSVal }

instance Eq HTMLOrSVGScriptElement where
  (HTMLOrSVGScriptElement a) == (HTMLOrSVGScriptElement b) = js_eq a b

instance PToJSVal HTMLOrSVGScriptElement where
  pToJSVal = unHTMLOrSVGScriptElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLOrSVGScriptElement where
  pFromJSVal = HTMLOrSVGScriptElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLOrSVGScriptElement where
  toJSVal = return . unHTMLOrSVGScriptElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLOrSVGScriptElement where
  fromJSVal = return . fmap HTMLOrSVGScriptElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOrSVGScriptElement
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHTMLOrSVGScriptElement o

toHTMLOrSVGScriptElement :: IsHTMLOrSVGScriptElement o => o -> HTMLOrSVGScriptElement
toHTMLOrSVGScriptElement = HTMLOrSVGScriptElement . pToJSVal

instance IsHTMLOrSVGScriptElement HTMLOrSVGScriptElement
instance IsHTMLOrSVGScriptElement HTMLScriptElement
instance IsHTMLOrSVGScriptElement SVGScriptElement

newtype HTMLVideoElementOrVideoFrame = HTMLVideoElementOrVideoFrame { unHTMLVideoElementOrVideoFrame :: JSVal }

instance Eq HTMLVideoElementOrVideoFrame where
  (HTMLVideoElementOrVideoFrame a) == (HTMLVideoElementOrVideoFrame b) = js_eq a b

instance PToJSVal HTMLVideoElementOrVideoFrame where
  pToJSVal = unHTMLVideoElementOrVideoFrame
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLVideoElementOrVideoFrame where
  pFromJSVal = HTMLVideoElementOrVideoFrame
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLVideoElementOrVideoFrame where
  toJSVal = return . unHTMLVideoElementOrVideoFrame
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLVideoElementOrVideoFrame where
  fromJSVal = return . fmap HTMLVideoElementOrVideoFrame . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLVideoElementOrVideoFrame
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHTMLVideoElementOrVideoFrame o

toHTMLVideoElementOrVideoFrame :: IsHTMLVideoElementOrVideoFrame o => o -> HTMLVideoElementOrVideoFrame
toHTMLVideoElementOrVideoFrame = HTMLVideoElementOrVideoFrame . pToJSVal

instance IsHTMLVideoElementOrVideoFrame HTMLVideoElementOrVideoFrame
instance IsHTMLVideoElementOrVideoFrame HTMLVideoElement
instance IsHTMLVideoElementOrVideoFrame VideoFrame

newtype HeadersInit = HeadersInit { unHeadersInit :: JSVal }

instance Eq HeadersInit where
  (HeadersInit a) == (HeadersInit b) = js_eq a b

instance PToJSVal HeadersInit where
  pToJSVal = unHeadersInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal HeadersInit where
  pFromJSVal = HeadersInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal HeadersInit where
  toJSVal = return . unHeadersInit
  {-# INLINE toJSVal #-}

instance FromJSVal HeadersInit where
  fromJSVal = return . fmap HeadersInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HeadersInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsHeadersInit o

toHeadersInit :: IsHeadersInit o => o -> HeadersInit
toHeadersInit = HeadersInit . pToJSVal

instance IsHeadersInit HeadersInit

newtype IDBObjectStoreOrIDBIndex = IDBObjectStoreOrIDBIndex { unIDBObjectStoreOrIDBIndex :: JSVal }

instance Eq IDBObjectStoreOrIDBIndex where
  (IDBObjectStoreOrIDBIndex a) == (IDBObjectStoreOrIDBIndex b) = js_eq a b

instance PToJSVal IDBObjectStoreOrIDBIndex where
  pToJSVal = unIDBObjectStoreOrIDBIndex
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBObjectStoreOrIDBIndex where
  pFromJSVal = IDBObjectStoreOrIDBIndex
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBObjectStoreOrIDBIndex where
  toJSVal = return . unIDBObjectStoreOrIDBIndex
  {-# INLINE toJSVal #-}

instance FromJSVal IDBObjectStoreOrIDBIndex where
  fromJSVal = return . fmap IDBObjectStoreOrIDBIndex . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBObjectStoreOrIDBIndex
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsIDBObjectStoreOrIDBIndex o

toIDBObjectStoreOrIDBIndex :: IsIDBObjectStoreOrIDBIndex o => o -> IDBObjectStoreOrIDBIndex
toIDBObjectStoreOrIDBIndex = IDBObjectStoreOrIDBIndex . pToJSVal

instance IsIDBObjectStoreOrIDBIndex IDBObjectStoreOrIDBIndex
instance IsIDBObjectStoreOrIDBIndex IDBIndex
instance IsIDBObjectStoreOrIDBIndex IDBObjectStore

newtype IDBObjectStoreOrIDBIndexOrIDBCursor = IDBObjectStoreOrIDBIndexOrIDBCursor { unIDBObjectStoreOrIDBIndexOrIDBCursor :: JSVal }

instance Eq IDBObjectStoreOrIDBIndexOrIDBCursor where
  (IDBObjectStoreOrIDBIndexOrIDBCursor a) == (IDBObjectStoreOrIDBIndexOrIDBCursor b) = js_eq a b

instance PToJSVal IDBObjectStoreOrIDBIndexOrIDBCursor where
  pToJSVal = unIDBObjectStoreOrIDBIndexOrIDBCursor
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBObjectStoreOrIDBIndexOrIDBCursor where
  pFromJSVal = IDBObjectStoreOrIDBIndexOrIDBCursor
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBObjectStoreOrIDBIndexOrIDBCursor where
  toJSVal = return . unIDBObjectStoreOrIDBIndexOrIDBCursor
  {-# INLINE toJSVal #-}

instance FromJSVal IDBObjectStoreOrIDBIndexOrIDBCursor where
  fromJSVal = return . fmap IDBObjectStoreOrIDBIndexOrIDBCursor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBObjectStoreOrIDBIndexOrIDBCursor
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsIDBObjectStoreOrIDBIndexOrIDBCursor o

toIDBObjectStoreOrIDBIndexOrIDBCursor :: IsIDBObjectStoreOrIDBIndexOrIDBCursor o => o -> IDBObjectStoreOrIDBIndexOrIDBCursor
toIDBObjectStoreOrIDBIndexOrIDBCursor = IDBObjectStoreOrIDBIndexOrIDBCursor . pToJSVal

instance IsIDBObjectStoreOrIDBIndexOrIDBCursor IDBObjectStoreOrIDBIndexOrIDBCursor
instance IsIDBObjectStoreOrIDBIndexOrIDBCursor IDBCursor
instance IsIDBObjectStoreOrIDBIndexOrIDBCursor IDBCursorWithValue
instance IsIDBObjectStoreOrIDBIndexOrIDBCursor IDBIndex
instance IsIDBObjectStoreOrIDBIndexOrIDBCursor IDBObjectStore

newtype ImageBufferSource = ImageBufferSource { unImageBufferSource :: JSVal }

instance Eq ImageBufferSource where
  (ImageBufferSource a) == (ImageBufferSource b) = js_eq a b

instance PToJSVal ImageBufferSource where
  pToJSVal = unImageBufferSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageBufferSource where
  pFromJSVal = ImageBufferSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageBufferSource where
  toJSVal = return . unImageBufferSource
  {-# INLINE toJSVal #-}

instance FromJSVal ImageBufferSource where
  fromJSVal = return . fmap ImageBufferSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageBufferSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsImageBufferSource o

toImageBufferSource :: IsImageBufferSource o => o -> ImageBufferSource
toImageBufferSource = ImageBufferSource . pToJSVal

instance IsImageBufferSource ImageBufferSource
instance IsImageBufferSource ArrayBuffer
instance IsImageBufferSource ArrayBufferView
instance IsImageBufferSource BigInt64Array
instance IsImageBufferSource BigUint64Array
instance IsImageBufferSource DataView
instance IsImageBufferSource Float16Array
instance IsImageBufferSource Float32Array
instance IsImageBufferSource Float64Array
instance IsImageBufferSource Int16Array
instance IsImageBufferSource Int32Array
instance IsImageBufferSource Int8Array
instance IsImageBufferSource ReadableStream
instance IsImageBufferSource SharedArrayBuffer
instance IsImageBufferSource Uint16Array
instance IsImageBufferSource Uint32Array
instance IsImageBufferSource Uint8Array
instance IsImageBufferSource Uint8ClampedArray
instance IsImageBufferSource WebTransportReceiveStream

newtype ImageDataArray = ImageDataArray { unImageDataArray :: JSVal }

instance Eq ImageDataArray where
  (ImageDataArray a) == (ImageDataArray b) = js_eq a b

instance PToJSVal ImageDataArray where
  pToJSVal = unImageDataArray
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageDataArray where
  pFromJSVal = ImageDataArray
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageDataArray where
  toJSVal = return . unImageDataArray
  {-# INLINE toJSVal #-}

instance FromJSVal ImageDataArray where
  fromJSVal = return . fmap ImageDataArray . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageDataArray
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsImageDataArray o

toImageDataArray :: IsImageDataArray o => o -> ImageDataArray
toImageDataArray = ImageDataArray . pToJSVal

instance IsImageDataArray ImageDataArray
instance IsImageDataArray Float16Array
instance IsImageDataArray Uint8ClampedArray

newtype Int32ArrayOrSequenceGLint = Int32ArrayOrSequenceGLint { unInt32ArrayOrSequenceGLint :: JSVal }

instance Eq Int32ArrayOrSequenceGLint where
  (Int32ArrayOrSequenceGLint a) == (Int32ArrayOrSequenceGLint b) = js_eq a b

instance PToJSVal Int32ArrayOrSequenceGLint where
  pToJSVal = unInt32ArrayOrSequenceGLint
  {-# INLINE pToJSVal #-}

instance PFromJSVal Int32ArrayOrSequenceGLint where
  pFromJSVal = Int32ArrayOrSequenceGLint
  {-# INLINE pFromJSVal #-}

instance ToJSVal Int32ArrayOrSequenceGLint where
  toJSVal = return . unInt32ArrayOrSequenceGLint
  {-# INLINE toJSVal #-}

instance FromJSVal Int32ArrayOrSequenceGLint where
  fromJSVal = return . fmap Int32ArrayOrSequenceGLint . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Int32ArrayOrSequenceGLint
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsInt32ArrayOrSequenceGLint o

toInt32ArrayOrSequenceGLint :: IsInt32ArrayOrSequenceGLint o => o -> Int32ArrayOrSequenceGLint
toInt32ArrayOrSequenceGLint = Int32ArrayOrSequenceGLint . pToJSVal

instance IsInt32ArrayOrSequenceGLint Int32ArrayOrSequenceGLint
instance IsInt32ArrayOrSequenceGLint Int32Array

newtype Int32ArrayOrSequenceGLsizei = Int32ArrayOrSequenceGLsizei { unInt32ArrayOrSequenceGLsizei :: JSVal }

instance Eq Int32ArrayOrSequenceGLsizei where
  (Int32ArrayOrSequenceGLsizei a) == (Int32ArrayOrSequenceGLsizei b) = js_eq a b

instance PToJSVal Int32ArrayOrSequenceGLsizei where
  pToJSVal = unInt32ArrayOrSequenceGLsizei
  {-# INLINE pToJSVal #-}

instance PFromJSVal Int32ArrayOrSequenceGLsizei where
  pFromJSVal = Int32ArrayOrSequenceGLsizei
  {-# INLINE pFromJSVal #-}

instance ToJSVal Int32ArrayOrSequenceGLsizei where
  toJSVal = return . unInt32ArrayOrSequenceGLsizei
  {-# INLINE toJSVal #-}

instance FromJSVal Int32ArrayOrSequenceGLsizei where
  fromJSVal = return . fmap Int32ArrayOrSequenceGLsizei . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Int32ArrayOrSequenceGLsizei
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsInt32ArrayOrSequenceGLsizei o

toInt32ArrayOrSequenceGLsizei :: IsInt32ArrayOrSequenceGLsizei o => o -> Int32ArrayOrSequenceGLsizei
toInt32ArrayOrSequenceGLsizei = Int32ArrayOrSequenceGLsizei . pToJSVal

instance IsInt32ArrayOrSequenceGLsizei Int32ArrayOrSequenceGLsizei
instance IsInt32ArrayOrSequenceGLsizei Int32Array

newtype Int32List = Int32List { unInt32List :: JSVal }

instance Eq Int32List where
  (Int32List a) == (Int32List b) = js_eq a b

instance PToJSVal Int32List where
  pToJSVal = unInt32List
  {-# INLINE pToJSVal #-}

instance PFromJSVal Int32List where
  pFromJSVal = Int32List
  {-# INLINE pFromJSVal #-}

instance ToJSVal Int32List where
  toJSVal = return . unInt32List
  {-# INLINE toJSVal #-}

instance FromJSVal Int32List where
  fromJSVal = return . fmap Int32List . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Int32List
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsInt32List o

toInt32List :: IsInt32List o => o -> Int32List
toInt32List = Int32List . pToJSVal

instance IsInt32List Int32List
instance IsInt32List Int32Array

newtype LineAndPositionSetting = LineAndPositionSetting { unLineAndPositionSetting :: JSVal }

instance Eq LineAndPositionSetting where
  (LineAndPositionSetting a) == (LineAndPositionSetting b) = js_eq a b

instance PToJSVal LineAndPositionSetting where
  pToJSVal = unLineAndPositionSetting
  {-# INLINE pToJSVal #-}

instance PFromJSVal LineAndPositionSetting where
  pFromJSVal = LineAndPositionSetting
  {-# INLINE pFromJSVal #-}

instance ToJSVal LineAndPositionSetting where
  toJSVal = return . unLineAndPositionSetting
  {-# INLINE toJSVal #-}

instance FromJSVal LineAndPositionSetting where
  fromJSVal = return . fmap LineAndPositionSetting . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LineAndPositionSetting
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsLineAndPositionSetting o

toLineAndPositionSetting :: IsLineAndPositionSetting o => o -> LineAndPositionSetting
toLineAndPositionSetting = LineAndPositionSetting . pToJSVal

instance IsLineAndPositionSetting LineAndPositionSetting
instance IsLineAndPositionSetting Double

newtype MediaKeyStatusOrUndefined = MediaKeyStatusOrUndefined { unMediaKeyStatusOrUndefined :: JSVal }

instance Eq MediaKeyStatusOrUndefined where
  (MediaKeyStatusOrUndefined a) == (MediaKeyStatusOrUndefined b) = js_eq a b

instance PToJSVal MediaKeyStatusOrUndefined where
  pToJSVal = unMediaKeyStatusOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeyStatusOrUndefined where
  pFromJSVal = MediaKeyStatusOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeyStatusOrUndefined where
  toJSVal = return . unMediaKeyStatusOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeyStatusOrUndefined where
  fromJSVal = return . fmap MediaKeyStatusOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeyStatusOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsMediaKeyStatusOrUndefined o

toMediaKeyStatusOrUndefined :: IsMediaKeyStatusOrUndefined o => o -> MediaKeyStatusOrUndefined
toMediaKeyStatusOrUndefined = MediaKeyStatusOrUndefined . pToJSVal

instance IsMediaKeyStatusOrUndefined MediaKeyStatusOrUndefined

newtype MediaListOrString = MediaListOrString { unMediaListOrString :: JSVal }

instance Eq MediaListOrString where
  (MediaListOrString a) == (MediaListOrString b) = js_eq a b

instance PToJSVal MediaListOrString where
  pToJSVal = unMediaListOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaListOrString where
  pFromJSVal = MediaListOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaListOrString where
  toJSVal = return . unMediaListOrString
  {-# INLINE toJSVal #-}

instance FromJSVal MediaListOrString where
  fromJSVal = return . fmap MediaListOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaListOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsMediaListOrString o

toMediaListOrString :: IsMediaListOrString o => o -> MediaListOrString
toMediaListOrString = MediaListOrString . pToJSVal

instance IsMediaListOrString MediaListOrString
instance IsMediaListOrString JSString
instance IsMediaListOrString MediaList
instance IsMediaListOrString String
instance IsMediaListOrString T.Text

newtype MediaProvider = MediaProvider { unMediaProvider :: JSVal }

instance Eq MediaProvider where
  (MediaProvider a) == (MediaProvider b) = js_eq a b

instance PToJSVal MediaProvider where
  pToJSVal = unMediaProvider
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaProvider where
  pFromJSVal = MediaProvider
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaProvider where
  toJSVal = return . unMediaProvider
  {-# INLINE toJSVal #-}

instance FromJSVal MediaProvider where
  fromJSVal = return . fmap MediaProvider . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaProvider
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsMediaProvider o

toMediaProvider :: IsMediaProvider o => o -> MediaProvider
toMediaProvider = MediaProvider . pToJSVal

instance IsMediaProvider MediaProvider
instance IsMediaProvider Blob
instance IsMediaProvider File
instance IsMediaProvider MediaSource
instance IsMediaProvider MediaStream

newtype MediaStreamTrackOrHandle = MediaStreamTrackOrHandle { unMediaStreamTrackOrHandle :: JSVal }

instance Eq MediaStreamTrackOrHandle where
  (MediaStreamTrackOrHandle a) == (MediaStreamTrackOrHandle b) = js_eq a b

instance PToJSVal MediaStreamTrackOrHandle where
  pToJSVal = unMediaStreamTrackOrHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamTrackOrHandle where
  pFromJSVal = MediaStreamTrackOrHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamTrackOrHandle where
  toJSVal = return . unMediaStreamTrackOrHandle
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamTrackOrHandle where
  fromJSVal = return . fmap MediaStreamTrackOrHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackOrHandle
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsMediaStreamTrackOrHandle o

toMediaStreamTrackOrHandle :: IsMediaStreamTrackOrHandle o => o -> MediaStreamTrackOrHandle
toMediaStreamTrackOrHandle = MediaStreamTrackOrHandle . pToJSVal

instance IsMediaStreamTrackOrHandle MediaStreamTrackOrHandle
instance IsMediaStreamTrackOrHandle CanvasCaptureMediaStreamTrack
instance IsMediaStreamTrackOrHandle MediaStreamTrack
instance IsMediaStreamTrackOrHandle MediaStreamTrackHandle

newtype MediaStreamTrackOrString = MediaStreamTrackOrString { unMediaStreamTrackOrString :: JSVal }

instance Eq MediaStreamTrackOrString where
  (MediaStreamTrackOrString a) == (MediaStreamTrackOrString b) = js_eq a b

instance PToJSVal MediaStreamTrackOrString where
  pToJSVal = unMediaStreamTrackOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamTrackOrString where
  pFromJSVal = MediaStreamTrackOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamTrackOrString where
  toJSVal = return . unMediaStreamTrackOrString
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamTrackOrString where
  fromJSVal = return . fmap MediaStreamTrackOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsMediaStreamTrackOrString o

toMediaStreamTrackOrString :: IsMediaStreamTrackOrString o => o -> MediaStreamTrackOrString
toMediaStreamTrackOrString = MediaStreamTrackOrString . pToJSVal

instance IsMediaStreamTrackOrString MediaStreamTrackOrString
instance IsMediaStreamTrackOrString CanvasCaptureMediaStreamTrack
instance IsMediaStreamTrackOrString JSString
instance IsMediaStreamTrackOrString MediaStreamTrack
instance IsMediaStreamTrackOrString String
instance IsMediaStreamTrackOrString T.Text

newtype MessageEventSource = MessageEventSource { unMessageEventSource :: JSVal }

instance Eq MessageEventSource where
  (MessageEventSource a) == (MessageEventSource b) = js_eq a b

instance PToJSVal MessageEventSource where
  pToJSVal = unMessageEventSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal MessageEventSource where
  pFromJSVal = MessageEventSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal MessageEventSource where
  toJSVal = return . unMessageEventSource
  {-# INLINE toJSVal #-}

instance FromJSVal MessageEventSource where
  fromJSVal = return . fmap MessageEventSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MessageEventSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsMessageEventSource o

toMessageEventSource :: IsMessageEventSource o => o -> MessageEventSource
toMessageEventSource = MessageEventSource . pToJSVal

instance IsMessageEventSource MessageEventSource
instance IsMessageEventSource MessagePort
instance IsMessageEventSource ServiceWorker
instance IsMessageEventSource Window

newtype NodeOrString = NodeOrString { unNodeOrString :: JSVal }

instance Eq NodeOrString where
  (NodeOrString a) == (NodeOrString b) = js_eq a b

instance PToJSVal NodeOrString where
  pToJSVal = unNodeOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal NodeOrString where
  pFromJSVal = NodeOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal NodeOrString where
  toJSVal = return . unNodeOrString
  {-# INLINE toJSVal #-}

instance FromJSVal NodeOrString where
  fromJSVal = return . fmap NodeOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NodeOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsNodeOrString o

toNodeOrString :: IsNodeOrString o => o -> NodeOrString
toNodeOrString = NodeOrString . pToJSVal

instance IsNodeOrString NodeOrString
instance IsNodeOrString Attr
instance IsNodeOrString CDATASection
instance IsNodeOrString CharacterData
instance IsNodeOrString Comment
instance IsNodeOrString Document
instance IsNodeOrString DocumentFragment
instance IsNodeOrString DocumentType
instance IsNodeOrString Element
instance IsNodeOrString HTMLAnchorElement
instance IsNodeOrString HTMLAreaElement
instance IsNodeOrString HTMLAudioElement
instance IsNodeOrString HTMLBRElement
instance IsNodeOrString HTMLBaseElement
instance IsNodeOrString HTMLBodyElement
instance IsNodeOrString HTMLButtonElement
instance IsNodeOrString HTMLCanvasElement
instance IsNodeOrString HTMLDListElement
instance IsNodeOrString HTMLDataElement
instance IsNodeOrString HTMLDataListElement
instance IsNodeOrString HTMLDetailsElement
instance IsNodeOrString HTMLDialogElement
instance IsNodeOrString HTMLDirectoryElement
instance IsNodeOrString HTMLDivElement
instance IsNodeOrString HTMLElement
instance IsNodeOrString HTMLEmbedElement
instance IsNodeOrString HTMLFieldSetElement
instance IsNodeOrString HTMLFontElement
instance IsNodeOrString HTMLFormElement
instance IsNodeOrString HTMLFrameElement
instance IsNodeOrString HTMLFrameSetElement
instance IsNodeOrString HTMLHRElement
instance IsNodeOrString HTMLHeadElement
instance IsNodeOrString HTMLHeadingElement
instance IsNodeOrString HTMLHtmlElement
instance IsNodeOrString HTMLIFrameElement
instance IsNodeOrString HTMLImageElement
instance IsNodeOrString HTMLInputElement
instance IsNodeOrString HTMLLIElement
instance IsNodeOrString HTMLLabelElement
instance IsNodeOrString HTMLLegendElement
instance IsNodeOrString HTMLLinkElement
instance IsNodeOrString HTMLMapElement
instance IsNodeOrString HTMLMarqueeElement
instance IsNodeOrString HTMLMediaElement
instance IsNodeOrString HTMLMenuElement
instance IsNodeOrString HTMLMetaElement
instance IsNodeOrString HTMLMeterElement
instance IsNodeOrString HTMLModElement
instance IsNodeOrString HTMLOListElement
instance IsNodeOrString HTMLObjectElement
instance IsNodeOrString HTMLOptGroupElement
instance IsNodeOrString HTMLOptionElement
instance IsNodeOrString HTMLOutputElement
instance IsNodeOrString HTMLParagraphElement
instance IsNodeOrString HTMLParamElement
instance IsNodeOrString HTMLPictureElement
instance IsNodeOrString HTMLPreElement
instance IsNodeOrString HTMLProgressElement
instance IsNodeOrString HTMLQuoteElement
instance IsNodeOrString HTMLScriptElement
instance IsNodeOrString HTMLSelectElement
instance IsNodeOrString HTMLSelectedContentElement
instance IsNodeOrString HTMLSlotElement
instance IsNodeOrString HTMLSourceElement
instance IsNodeOrString HTMLSpanElement
instance IsNodeOrString HTMLStyleElement
instance IsNodeOrString HTMLTableCaptionElement
instance IsNodeOrString HTMLTableCellElement
instance IsNodeOrString HTMLTableColElement
instance IsNodeOrString HTMLTableElement
instance IsNodeOrString HTMLTableRowElement
instance IsNodeOrString HTMLTableSectionElement
instance IsNodeOrString HTMLTemplateElement
instance IsNodeOrString HTMLTextAreaElement
instance IsNodeOrString HTMLTimeElement
instance IsNodeOrString HTMLTitleElement
instance IsNodeOrString HTMLTrackElement
instance IsNodeOrString HTMLUListElement
instance IsNodeOrString HTMLUnknownElement
instance IsNodeOrString HTMLVideoElement
instance IsNodeOrString JSString
instance IsNodeOrString MathMLElement
instance IsNodeOrString Node
instance IsNodeOrString ProcessingInstruction
instance IsNodeOrString SVGAElement
instance IsNodeOrString SVGAnimateElement
instance IsNodeOrString SVGAnimateMotionElement
instance IsNodeOrString SVGAnimateTransformElement
instance IsNodeOrString SVGAnimationElement
instance IsNodeOrString SVGCircleElement
instance IsNodeOrString SVGClipPathElement
instance IsNodeOrString SVGComponentTransferFunctionElement
instance IsNodeOrString SVGDefsElement
instance IsNodeOrString SVGDescElement
instance IsNodeOrString SVGElement
instance IsNodeOrString SVGEllipseElement
instance IsNodeOrString SVGFEBlendElement
instance IsNodeOrString SVGFEColorMatrixElement
instance IsNodeOrString SVGFEComponentTransferElement
instance IsNodeOrString SVGFECompositeElement
instance IsNodeOrString SVGFEConvolveMatrixElement
instance IsNodeOrString SVGFEDiffuseLightingElement
instance IsNodeOrString SVGFEDisplacementMapElement
instance IsNodeOrString SVGFEDistantLightElement
instance IsNodeOrString SVGFEDropShadowElement
instance IsNodeOrString SVGFEFloodElement
instance IsNodeOrString SVGFEFuncAElement
instance IsNodeOrString SVGFEFuncBElement
instance IsNodeOrString SVGFEFuncGElement
instance IsNodeOrString SVGFEFuncRElement
instance IsNodeOrString SVGFEGaussianBlurElement
instance IsNodeOrString SVGFEImageElement
instance IsNodeOrString SVGFEMergeElement
instance IsNodeOrString SVGFEMergeNodeElement
instance IsNodeOrString SVGFEMorphologyElement
instance IsNodeOrString SVGFEOffsetElement
instance IsNodeOrString SVGFEPointLightElement
instance IsNodeOrString SVGFESpecularLightingElement
instance IsNodeOrString SVGFESpotLightElement
instance IsNodeOrString SVGFETileElement
instance IsNodeOrString SVGFETurbulenceElement
instance IsNodeOrString SVGFilterElement
instance IsNodeOrString SVGForeignObjectElement
instance IsNodeOrString SVGGElement
instance IsNodeOrString SVGGeometryElement
instance IsNodeOrString SVGGradientElement
instance IsNodeOrString SVGGraphicsElement
instance IsNodeOrString SVGImageElement
instance IsNodeOrString SVGLineElement
instance IsNodeOrString SVGLinearGradientElement
instance IsNodeOrString SVGMPathElement
instance IsNodeOrString SVGMarkerElement
instance IsNodeOrString SVGMaskElement
instance IsNodeOrString SVGMetadataElement
instance IsNodeOrString SVGPathElement
instance IsNodeOrString SVGPatternElement
instance IsNodeOrString SVGPolygonElement
instance IsNodeOrString SVGPolylineElement
instance IsNodeOrString SVGRadialGradientElement
instance IsNodeOrString SVGRectElement
instance IsNodeOrString SVGSVGElement
instance IsNodeOrString SVGScriptElement
instance IsNodeOrString SVGSetElement
instance IsNodeOrString SVGStopElement
instance IsNodeOrString SVGStyleElement
instance IsNodeOrString SVGSwitchElement
instance IsNodeOrString SVGSymbolElement
instance IsNodeOrString SVGTSpanElement
instance IsNodeOrString SVGTextContentElement
instance IsNodeOrString SVGTextElement
instance IsNodeOrString SVGTextPathElement
instance IsNodeOrString SVGTextPositioningElement
instance IsNodeOrString SVGTitleElement
instance IsNodeOrString SVGUseElement
instance IsNodeOrString SVGViewElement
instance IsNodeOrString ShadowRoot
instance IsNodeOrString String
instance IsNodeOrString T.Text
instance IsNodeOrString Text
instance IsNodeOrString XMLDocument

newtype OffscreenRenderingContext = OffscreenRenderingContext { unOffscreenRenderingContext :: JSVal }

instance Eq OffscreenRenderingContext where
  (OffscreenRenderingContext a) == (OffscreenRenderingContext b) = js_eq a b

instance PToJSVal OffscreenRenderingContext where
  pToJSVal = unOffscreenRenderingContext
  {-# INLINE pToJSVal #-}

instance PFromJSVal OffscreenRenderingContext where
  pFromJSVal = OffscreenRenderingContext
  {-# INLINE pFromJSVal #-}

instance ToJSVal OffscreenRenderingContext where
  toJSVal = return . unOffscreenRenderingContext
  {-# INLINE toJSVal #-}

instance FromJSVal OffscreenRenderingContext where
  fromJSVal = return . fmap OffscreenRenderingContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OffscreenRenderingContext
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsOffscreenRenderingContext o

toOffscreenRenderingContext :: IsOffscreenRenderingContext o => o -> OffscreenRenderingContext
toOffscreenRenderingContext = OffscreenRenderingContext . pToJSVal

instance IsOffscreenRenderingContext OffscreenRenderingContext
instance IsOffscreenRenderingContext GPUCanvasContext
instance IsOffscreenRenderingContext ImageBitmapRenderingContext
instance IsOffscreenRenderingContext OffscreenCanvasRenderingContext2D
instance IsOffscreenRenderingContext WebGL2RenderingContext
instance IsOffscreenRenderingContext WebGLRenderingContext

newtype ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions = ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions { unParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions :: JSVal }

instance Eq ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  (ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions a) == (ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions b) = js_eq a b

instance PToJSVal ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  pToJSVal = unParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  pFromJSVal = ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  toJSVal = return . unParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  fromJSVal = return . fmap ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions o

toParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions :: IsParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions o => o -> ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
toParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions = ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions . pToJSVal

instance IsParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions ParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions
instance IsParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions ParseHTMLUnsafeOptions
instance IsParseHTMLUnsafeOptionsOrTrustedHTMLParserOptions TrustedHTMLParserOptions

newtype PasswordCredentialInit = PasswordCredentialInit { unPasswordCredentialInit :: JSVal }

instance Eq PasswordCredentialInit where
  (PasswordCredentialInit a) == (PasswordCredentialInit b) = js_eq a b

instance PToJSVal PasswordCredentialInit where
  pToJSVal = unPasswordCredentialInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PasswordCredentialInit where
  pFromJSVal = PasswordCredentialInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PasswordCredentialInit where
  toJSVal = return . unPasswordCredentialInit
  {-# INLINE toJSVal #-}

instance FromJSVal PasswordCredentialInit where
  fromJSVal = return . fmap PasswordCredentialInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PasswordCredentialInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsPasswordCredentialInit o

toPasswordCredentialInit :: IsPasswordCredentialInit o => o -> PasswordCredentialInit
toPasswordCredentialInit = PasswordCredentialInit . pToJSVal

instance IsPasswordCredentialInit PasswordCredentialInit
instance IsPasswordCredentialInit HTMLFormElement
instance IsPasswordCredentialInit PasswordCredentialData

newtype Path2DOrString = Path2DOrString { unPath2DOrString :: JSVal }

instance Eq Path2DOrString where
  (Path2DOrString a) == (Path2DOrString b) = js_eq a b

instance PToJSVal Path2DOrString where
  pToJSVal = unPath2DOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal Path2DOrString where
  pFromJSVal = Path2DOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal Path2DOrString where
  toJSVal = return . unPath2DOrString
  {-# INLINE toJSVal #-}

instance FromJSVal Path2DOrString where
  fromJSVal = return . fmap Path2DOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Path2DOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsPath2DOrString o

toPath2DOrString :: IsPath2DOrString o => o -> Path2DOrString
toPath2DOrString = Path2DOrString . pToJSVal

instance IsPath2DOrString Path2DOrString
instance IsPath2DOrString JSString
instance IsPath2DOrString Path2D
instance IsPath2DOrString String
instance IsPath2DOrString T.Text

newtype PushMessageDataInit = PushMessageDataInit { unPushMessageDataInit :: JSVal }

instance Eq PushMessageDataInit where
  (PushMessageDataInit a) == (PushMessageDataInit b) = js_eq a b

instance PToJSVal PushMessageDataInit where
  pToJSVal = unPushMessageDataInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushMessageDataInit where
  pFromJSVal = PushMessageDataInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushMessageDataInit where
  toJSVal = return . unPushMessageDataInit
  {-# INLINE toJSVal #-}

instance FromJSVal PushMessageDataInit where
  fromJSVal = return . fmap PushMessageDataInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushMessageDataInit
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsPushMessageDataInit o

toPushMessageDataInit :: IsPushMessageDataInit o => o -> PushMessageDataInit
toPushMessageDataInit = PushMessageDataInit . pToJSVal

instance IsPushMessageDataInit PushMessageDataInit
instance IsPushMessageDataInit ArrayBuffer
instance IsPushMessageDataInit ArrayBufferView
instance IsPushMessageDataInit BigInt64Array
instance IsPushMessageDataInit BigUint64Array
instance IsPushMessageDataInit DataView
instance IsPushMessageDataInit Float16Array
instance IsPushMessageDataInit Float32Array
instance IsPushMessageDataInit Float64Array
instance IsPushMessageDataInit Int16Array
instance IsPushMessageDataInit Int32Array
instance IsPushMessageDataInit Int8Array
instance IsPushMessageDataInit JSString
instance IsPushMessageDataInit String
instance IsPushMessageDataInit T.Text
instance IsPushMessageDataInit Uint16Array
instance IsPushMessageDataInit Uint32Array
instance IsPushMessageDataInit Uint8Array
instance IsPushMessageDataInit Uint8ClampedArray

newtype RTCRtpReceiverTransform = RTCRtpReceiverTransform { unRTCRtpReceiverTransform :: JSVal }

instance Eq RTCRtpReceiverTransform where
  (RTCRtpReceiverTransform a) == (RTCRtpReceiverTransform b) = js_eq a b

instance PToJSVal RTCRtpReceiverTransform where
  pToJSVal = unRTCRtpReceiverTransform
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpReceiverTransform where
  pFromJSVal = RTCRtpReceiverTransform
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpReceiverTransform where
  toJSVal = return . unRTCRtpReceiverTransform
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpReceiverTransform where
  fromJSVal = return . fmap RTCRtpReceiverTransform . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpReceiverTransform
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRTCRtpReceiverTransform o

toRTCRtpReceiverTransform :: IsRTCRtpReceiverTransform o => o -> RTCRtpReceiverTransform
toRTCRtpReceiverTransform = RTCRtpReceiverTransform . pToJSVal

instance IsRTCRtpReceiverTransform RTCRtpReceiverTransform
instance IsRTCRtpReceiverTransform RTCRtpSFrameDecryptor
instance IsRTCRtpReceiverTransform RTCRtpScriptTransform

newtype RTCRtpSenderTransform = RTCRtpSenderTransform { unRTCRtpSenderTransform :: JSVal }

instance Eq RTCRtpSenderTransform where
  (RTCRtpSenderTransform a) == (RTCRtpSenderTransform b) = js_eq a b

instance PToJSVal RTCRtpSenderTransform where
  pToJSVal = unRTCRtpSenderTransform
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpSenderTransform where
  pFromJSVal = RTCRtpSenderTransform
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpSenderTransform where
  toJSVal = return . unRTCRtpSenderTransform
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpSenderTransform where
  fromJSVal = return . fmap RTCRtpSenderTransform . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpSenderTransform
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRTCRtpSenderTransform o

toRTCRtpSenderTransform :: IsRTCRtpSenderTransform o => o -> RTCRtpSenderTransform
toRTCRtpSenderTransform = RTCRtpSenderTransform . pToJSVal

instance IsRTCRtpSenderTransform RTCRtpSenderTransform
instance IsRTCRtpSenderTransform RTCRtpSFrameEncryptor
instance IsRTCRtpSenderTransform RTCRtpScriptTransform

newtype RadioNodeListOrElement = RadioNodeListOrElement { unRadioNodeListOrElement :: JSVal }

instance Eq RadioNodeListOrElement where
  (RadioNodeListOrElement a) == (RadioNodeListOrElement b) = js_eq a b

instance PToJSVal RadioNodeListOrElement where
  pToJSVal = unRadioNodeListOrElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal RadioNodeListOrElement where
  pFromJSVal = RadioNodeListOrElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal RadioNodeListOrElement where
  toJSVal = return . unRadioNodeListOrElement
  {-# INLINE toJSVal #-}

instance FromJSVal RadioNodeListOrElement where
  fromJSVal = return . fmap RadioNodeListOrElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RadioNodeListOrElement
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRadioNodeListOrElement o

toRadioNodeListOrElement :: IsRadioNodeListOrElement o => o -> RadioNodeListOrElement
toRadioNodeListOrElement = RadioNodeListOrElement . pToJSVal

instance IsRadioNodeListOrElement RadioNodeListOrElement
instance IsRadioNodeListOrElement Element
instance IsRadioNodeListOrElement HTMLAnchorElement
instance IsRadioNodeListOrElement HTMLAreaElement
instance IsRadioNodeListOrElement HTMLAudioElement
instance IsRadioNodeListOrElement HTMLBRElement
instance IsRadioNodeListOrElement HTMLBaseElement
instance IsRadioNodeListOrElement HTMLBodyElement
instance IsRadioNodeListOrElement HTMLButtonElement
instance IsRadioNodeListOrElement HTMLCanvasElement
instance IsRadioNodeListOrElement HTMLDListElement
instance IsRadioNodeListOrElement HTMLDataElement
instance IsRadioNodeListOrElement HTMLDataListElement
instance IsRadioNodeListOrElement HTMLDetailsElement
instance IsRadioNodeListOrElement HTMLDialogElement
instance IsRadioNodeListOrElement HTMLDirectoryElement
instance IsRadioNodeListOrElement HTMLDivElement
instance IsRadioNodeListOrElement HTMLElement
instance IsRadioNodeListOrElement HTMLEmbedElement
instance IsRadioNodeListOrElement HTMLFieldSetElement
instance IsRadioNodeListOrElement HTMLFontElement
instance IsRadioNodeListOrElement HTMLFormElement
instance IsRadioNodeListOrElement HTMLFrameElement
instance IsRadioNodeListOrElement HTMLFrameSetElement
instance IsRadioNodeListOrElement HTMLHRElement
instance IsRadioNodeListOrElement HTMLHeadElement
instance IsRadioNodeListOrElement HTMLHeadingElement
instance IsRadioNodeListOrElement HTMLHtmlElement
instance IsRadioNodeListOrElement HTMLIFrameElement
instance IsRadioNodeListOrElement HTMLImageElement
instance IsRadioNodeListOrElement HTMLInputElement
instance IsRadioNodeListOrElement HTMLLIElement
instance IsRadioNodeListOrElement HTMLLabelElement
instance IsRadioNodeListOrElement HTMLLegendElement
instance IsRadioNodeListOrElement HTMLLinkElement
instance IsRadioNodeListOrElement HTMLMapElement
instance IsRadioNodeListOrElement HTMLMarqueeElement
instance IsRadioNodeListOrElement HTMLMediaElement
instance IsRadioNodeListOrElement HTMLMenuElement
instance IsRadioNodeListOrElement HTMLMetaElement
instance IsRadioNodeListOrElement HTMLMeterElement
instance IsRadioNodeListOrElement HTMLModElement
instance IsRadioNodeListOrElement HTMLOListElement
instance IsRadioNodeListOrElement HTMLObjectElement
instance IsRadioNodeListOrElement HTMLOptGroupElement
instance IsRadioNodeListOrElement HTMLOptionElement
instance IsRadioNodeListOrElement HTMLOutputElement
instance IsRadioNodeListOrElement HTMLParagraphElement
instance IsRadioNodeListOrElement HTMLParamElement
instance IsRadioNodeListOrElement HTMLPictureElement
instance IsRadioNodeListOrElement HTMLPreElement
instance IsRadioNodeListOrElement HTMLProgressElement
instance IsRadioNodeListOrElement HTMLQuoteElement
instance IsRadioNodeListOrElement HTMLScriptElement
instance IsRadioNodeListOrElement HTMLSelectElement
instance IsRadioNodeListOrElement HTMLSelectedContentElement
instance IsRadioNodeListOrElement HTMLSlotElement
instance IsRadioNodeListOrElement HTMLSourceElement
instance IsRadioNodeListOrElement HTMLSpanElement
instance IsRadioNodeListOrElement HTMLStyleElement
instance IsRadioNodeListOrElement HTMLTableCaptionElement
instance IsRadioNodeListOrElement HTMLTableCellElement
instance IsRadioNodeListOrElement HTMLTableColElement
instance IsRadioNodeListOrElement HTMLTableElement
instance IsRadioNodeListOrElement HTMLTableRowElement
instance IsRadioNodeListOrElement HTMLTableSectionElement
instance IsRadioNodeListOrElement HTMLTemplateElement
instance IsRadioNodeListOrElement HTMLTextAreaElement
instance IsRadioNodeListOrElement HTMLTimeElement
instance IsRadioNodeListOrElement HTMLTitleElement
instance IsRadioNodeListOrElement HTMLTrackElement
instance IsRadioNodeListOrElement HTMLUListElement
instance IsRadioNodeListOrElement HTMLUnknownElement
instance IsRadioNodeListOrElement HTMLVideoElement
instance IsRadioNodeListOrElement MathMLElement
instance IsRadioNodeListOrElement RadioNodeList
instance IsRadioNodeListOrElement SVGAElement
instance IsRadioNodeListOrElement SVGAnimateElement
instance IsRadioNodeListOrElement SVGAnimateMotionElement
instance IsRadioNodeListOrElement SVGAnimateTransformElement
instance IsRadioNodeListOrElement SVGAnimationElement
instance IsRadioNodeListOrElement SVGCircleElement
instance IsRadioNodeListOrElement SVGClipPathElement
instance IsRadioNodeListOrElement SVGComponentTransferFunctionElement
instance IsRadioNodeListOrElement SVGDefsElement
instance IsRadioNodeListOrElement SVGDescElement
instance IsRadioNodeListOrElement SVGElement
instance IsRadioNodeListOrElement SVGEllipseElement
instance IsRadioNodeListOrElement SVGFEBlendElement
instance IsRadioNodeListOrElement SVGFEColorMatrixElement
instance IsRadioNodeListOrElement SVGFEComponentTransferElement
instance IsRadioNodeListOrElement SVGFECompositeElement
instance IsRadioNodeListOrElement SVGFEConvolveMatrixElement
instance IsRadioNodeListOrElement SVGFEDiffuseLightingElement
instance IsRadioNodeListOrElement SVGFEDisplacementMapElement
instance IsRadioNodeListOrElement SVGFEDistantLightElement
instance IsRadioNodeListOrElement SVGFEDropShadowElement
instance IsRadioNodeListOrElement SVGFEFloodElement
instance IsRadioNodeListOrElement SVGFEFuncAElement
instance IsRadioNodeListOrElement SVGFEFuncBElement
instance IsRadioNodeListOrElement SVGFEFuncGElement
instance IsRadioNodeListOrElement SVGFEFuncRElement
instance IsRadioNodeListOrElement SVGFEGaussianBlurElement
instance IsRadioNodeListOrElement SVGFEImageElement
instance IsRadioNodeListOrElement SVGFEMergeElement
instance IsRadioNodeListOrElement SVGFEMergeNodeElement
instance IsRadioNodeListOrElement SVGFEMorphologyElement
instance IsRadioNodeListOrElement SVGFEOffsetElement
instance IsRadioNodeListOrElement SVGFEPointLightElement
instance IsRadioNodeListOrElement SVGFESpecularLightingElement
instance IsRadioNodeListOrElement SVGFESpotLightElement
instance IsRadioNodeListOrElement SVGFETileElement
instance IsRadioNodeListOrElement SVGFETurbulenceElement
instance IsRadioNodeListOrElement SVGFilterElement
instance IsRadioNodeListOrElement SVGForeignObjectElement
instance IsRadioNodeListOrElement SVGGElement
instance IsRadioNodeListOrElement SVGGeometryElement
instance IsRadioNodeListOrElement SVGGradientElement
instance IsRadioNodeListOrElement SVGGraphicsElement
instance IsRadioNodeListOrElement SVGImageElement
instance IsRadioNodeListOrElement SVGLineElement
instance IsRadioNodeListOrElement SVGLinearGradientElement
instance IsRadioNodeListOrElement SVGMPathElement
instance IsRadioNodeListOrElement SVGMarkerElement
instance IsRadioNodeListOrElement SVGMaskElement
instance IsRadioNodeListOrElement SVGMetadataElement
instance IsRadioNodeListOrElement SVGPathElement
instance IsRadioNodeListOrElement SVGPatternElement
instance IsRadioNodeListOrElement SVGPolygonElement
instance IsRadioNodeListOrElement SVGPolylineElement
instance IsRadioNodeListOrElement SVGRadialGradientElement
instance IsRadioNodeListOrElement SVGRectElement
instance IsRadioNodeListOrElement SVGSVGElement
instance IsRadioNodeListOrElement SVGScriptElement
instance IsRadioNodeListOrElement SVGSetElement
instance IsRadioNodeListOrElement SVGStopElement
instance IsRadioNodeListOrElement SVGStyleElement
instance IsRadioNodeListOrElement SVGSwitchElement
instance IsRadioNodeListOrElement SVGSymbolElement
instance IsRadioNodeListOrElement SVGTSpanElement
instance IsRadioNodeListOrElement SVGTextContentElement
instance IsRadioNodeListOrElement SVGTextElement
instance IsRadioNodeListOrElement SVGTextPathElement
instance IsRadioNodeListOrElement SVGTextPositioningElement
instance IsRadioNodeListOrElement SVGTitleElement
instance IsRadioNodeListOrElement SVGUseElement
instance IsRadioNodeListOrElement SVGViewElement

newtype ReadableStreamReader = ReadableStreamReader { unReadableStreamReader :: JSVal }

instance Eq ReadableStreamReader where
  (ReadableStreamReader a) == (ReadableStreamReader b) = js_eq a b

instance PToJSVal ReadableStreamReader where
  pToJSVal = unReadableStreamReader
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamReader where
  pFromJSVal = ReadableStreamReader
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamReader where
  toJSVal = return . unReadableStreamReader
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamReader where
  fromJSVal = return . fmap ReadableStreamReader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamReader
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsReadableStreamReader o

toReadableStreamReader :: IsReadableStreamReader o => o -> ReadableStreamReader
toReadableStreamReader = ReadableStreamReader . pToJSVal

instance IsReadableStreamReader ReadableStreamReader
instance IsReadableStreamReader ReadableStreamBYOBReader
instance IsReadableStreamReader ReadableStreamDefaultReader

newtype RenderingContext = RenderingContext { unRenderingContext :: JSVal }

instance Eq RenderingContext where
  (RenderingContext a) == (RenderingContext b) = js_eq a b

instance PToJSVal RenderingContext where
  pToJSVal = unRenderingContext
  {-# INLINE pToJSVal #-}

instance PFromJSVal RenderingContext where
  pFromJSVal = RenderingContext
  {-# INLINE pFromJSVal #-}

instance ToJSVal RenderingContext where
  toJSVal = return . unRenderingContext
  {-# INLINE toJSVal #-}

instance FromJSVal RenderingContext where
  fromJSVal = return . fmap RenderingContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RenderingContext
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRenderingContext o

toRenderingContext :: IsRenderingContext o => o -> RenderingContext
toRenderingContext = RenderingContext . pToJSVal

instance IsRenderingContext RenderingContext
instance IsRenderingContext CanvasRenderingContext2D
instance IsRenderingContext GPUCanvasContext
instance IsRenderingContext ImageBitmapRenderingContext
instance IsRenderingContext WebGL2RenderingContext
instance IsRenderingContext WebGLRenderingContext

newtype RequestInfo = RequestInfo { unRequestInfo :: JSVal }

instance Eq RequestInfo where
  (RequestInfo a) == (RequestInfo b) = js_eq a b

instance PToJSVal RequestInfo where
  pToJSVal = unRequestInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal RequestInfo where
  pFromJSVal = RequestInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal RequestInfo where
  toJSVal = return . unRequestInfo
  {-# INLINE toJSVal #-}

instance FromJSVal RequestInfo where
  fromJSVal = return . fmap RequestInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RequestInfo
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRequestInfo o

toRequestInfo :: IsRequestInfo o => o -> RequestInfo
toRequestInfo = RequestInfo . pToJSVal

instance IsRequestInfo RequestInfo
instance IsRequestInfo JSString
instance IsRequestInfo Request
instance IsRequestInfo String
instance IsRequestInfo T.Text

newtype ResponseOrUndefined = ResponseOrUndefined { unResponseOrUndefined :: JSVal }

instance Eq ResponseOrUndefined where
  (ResponseOrUndefined a) == (ResponseOrUndefined b) = js_eq a b

instance PToJSVal ResponseOrUndefined where
  pToJSVal = unResponseOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal ResponseOrUndefined where
  pFromJSVal = ResponseOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal ResponseOrUndefined where
  toJSVal = return . unResponseOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal ResponseOrUndefined where
  fromJSVal = return . fmap ResponseOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ResponseOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsResponseOrUndefined o

toResponseOrUndefined :: IsResponseOrUndefined o => o -> ResponseOrUndefined
toResponseOrUndefined = ResponseOrUndefined . pToJSVal

instance IsResponseOrUndefined ResponseOrUndefined
instance IsResponseOrUndefined Response

newtype RouterRuleOrSequenceRouterRule = RouterRuleOrSequenceRouterRule { unRouterRuleOrSequenceRouterRule :: JSVal }

instance Eq RouterRuleOrSequenceRouterRule where
  (RouterRuleOrSequenceRouterRule a) == (RouterRuleOrSequenceRouterRule b) = js_eq a b

instance PToJSVal RouterRuleOrSequenceRouterRule where
  pToJSVal = unRouterRuleOrSequenceRouterRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal RouterRuleOrSequenceRouterRule where
  pFromJSVal = RouterRuleOrSequenceRouterRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal RouterRuleOrSequenceRouterRule where
  toJSVal = return . unRouterRuleOrSequenceRouterRule
  {-# INLINE toJSVal #-}

instance FromJSVal RouterRuleOrSequenceRouterRule where
  fromJSVal = return . fmap RouterRuleOrSequenceRouterRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RouterRuleOrSequenceRouterRule
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRouterRuleOrSequenceRouterRule o

toRouterRuleOrSequenceRouterRule :: IsRouterRuleOrSequenceRouterRule o => o -> RouterRuleOrSequenceRouterRule
toRouterRuleOrSequenceRouterRule = RouterRuleOrSequenceRouterRule . pToJSVal

instance IsRouterRuleOrSequenceRouterRule RouterRuleOrSequenceRouterRule
instance IsRouterRuleOrSequenceRouterRule RouterRule

newtype RouterSource = RouterSource { unRouterSource :: JSVal }

instance Eq RouterSource where
  (RouterSource a) == (RouterSource b) = js_eq a b

instance PToJSVal RouterSource where
  pToJSVal = unRouterSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal RouterSource where
  pFromJSVal = RouterSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal RouterSource where
  toJSVal = return . unRouterSource
  {-# INLINE toJSVal #-}

instance FromJSVal RouterSource where
  fromJSVal = return . fmap RouterSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RouterSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsRouterSource o

toRouterSource :: IsRouterSource o => o -> RouterSource
toRouterSource = RouterSource . pToJSVal

instance IsRouterSource RouterSource
instance IsRouterSource RouterSourceDict

newtype SanitizerAttribute = SanitizerAttribute { unSanitizerAttribute :: JSVal }

instance Eq SanitizerAttribute where
  (SanitizerAttribute a) == (SanitizerAttribute b) = js_eq a b

instance PToJSVal SanitizerAttribute where
  pToJSVal = unSanitizerAttribute
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerAttribute where
  pFromJSVal = SanitizerAttribute
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerAttribute where
  toJSVal = return . unSanitizerAttribute
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerAttribute where
  fromJSVal = return . fmap SanitizerAttribute . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerAttribute
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSanitizerAttribute o

toSanitizerAttribute :: IsSanitizerAttribute o => o -> SanitizerAttribute
toSanitizerAttribute = SanitizerAttribute . pToJSVal

instance IsSanitizerAttribute SanitizerAttribute
instance IsSanitizerAttribute JSString
instance IsSanitizerAttribute SanitizerAttributeNamespace
instance IsSanitizerAttribute String
instance IsSanitizerAttribute T.Text

newtype SanitizerConfigOrSanitizerPresets = SanitizerConfigOrSanitizerPresets { unSanitizerConfigOrSanitizerPresets :: JSVal }

instance Eq SanitizerConfigOrSanitizerPresets where
  (SanitizerConfigOrSanitizerPresets a) == (SanitizerConfigOrSanitizerPresets b) = js_eq a b

instance PToJSVal SanitizerConfigOrSanitizerPresets where
  pToJSVal = unSanitizerConfigOrSanitizerPresets
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerConfigOrSanitizerPresets where
  pFromJSVal = SanitizerConfigOrSanitizerPresets
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerConfigOrSanitizerPresets where
  toJSVal = return . unSanitizerConfigOrSanitizerPresets
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerConfigOrSanitizerPresets where
  fromJSVal = return . fmap SanitizerConfigOrSanitizerPresets . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerConfigOrSanitizerPresets
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSanitizerConfigOrSanitizerPresets o

toSanitizerConfigOrSanitizerPresets :: IsSanitizerConfigOrSanitizerPresets o => o -> SanitizerConfigOrSanitizerPresets
toSanitizerConfigOrSanitizerPresets = SanitizerConfigOrSanitizerPresets . pToJSVal

instance IsSanitizerConfigOrSanitizerPresets SanitizerConfigOrSanitizerPresets
instance IsSanitizerConfigOrSanitizerPresets SanitizerConfig

newtype SanitizerElement = SanitizerElement { unSanitizerElement :: JSVal }

instance Eq SanitizerElement where
  (SanitizerElement a) == (SanitizerElement b) = js_eq a b

instance PToJSVal SanitizerElement where
  pToJSVal = unSanitizerElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerElement where
  pFromJSVal = SanitizerElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerElement where
  toJSVal = return . unSanitizerElement
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerElement where
  fromJSVal = return . fmap SanitizerElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerElement
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSanitizerElement o

toSanitizerElement :: IsSanitizerElement o => o -> SanitizerElement
toSanitizerElement = SanitizerElement . pToJSVal

instance IsSanitizerElement SanitizerElement
instance IsSanitizerElement JSString
instance IsSanitizerElement SanitizerElementNamespace
instance IsSanitizerElement SanitizerElementNamespaceWithAttributes
instance IsSanitizerElement String
instance IsSanitizerElement T.Text

newtype SanitizerElementWithAttributes = SanitizerElementWithAttributes { unSanitizerElementWithAttributes :: JSVal }

instance Eq SanitizerElementWithAttributes where
  (SanitizerElementWithAttributes a) == (SanitizerElementWithAttributes b) = js_eq a b

instance PToJSVal SanitizerElementWithAttributes where
  pToJSVal = unSanitizerElementWithAttributes
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerElementWithAttributes where
  pFromJSVal = SanitizerElementWithAttributes
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerElementWithAttributes where
  toJSVal = return . unSanitizerElementWithAttributes
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerElementWithAttributes where
  fromJSVal = return . fmap SanitizerElementWithAttributes . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerElementWithAttributes
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSanitizerElementWithAttributes o

toSanitizerElementWithAttributes :: IsSanitizerElementWithAttributes o => o -> SanitizerElementWithAttributes
toSanitizerElementWithAttributes = SanitizerElementWithAttributes . pToJSVal

instance IsSanitizerElementWithAttributes SanitizerElementWithAttributes
instance IsSanitizerElementWithAttributes JSString
instance IsSanitizerElementWithAttributes SanitizerElementNamespaceWithAttributes
instance IsSanitizerElementWithAttributes String
instance IsSanitizerElementWithAttributes T.Text

newtype SanitizerOrSanitizerConfigOrSanitizerPresets = SanitizerOrSanitizerConfigOrSanitizerPresets { unSanitizerOrSanitizerConfigOrSanitizerPresets :: JSVal }

instance Eq SanitizerOrSanitizerConfigOrSanitizerPresets where
  (SanitizerOrSanitizerConfigOrSanitizerPresets a) == (SanitizerOrSanitizerConfigOrSanitizerPresets b) = js_eq a b

instance PToJSVal SanitizerOrSanitizerConfigOrSanitizerPresets where
  pToJSVal = unSanitizerOrSanitizerConfigOrSanitizerPresets
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerOrSanitizerConfigOrSanitizerPresets where
  pFromJSVal = SanitizerOrSanitizerConfigOrSanitizerPresets
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerOrSanitizerConfigOrSanitizerPresets where
  toJSVal = return . unSanitizerOrSanitizerConfigOrSanitizerPresets
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerOrSanitizerConfigOrSanitizerPresets where
  fromJSVal = return . fmap SanitizerOrSanitizerConfigOrSanitizerPresets . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerOrSanitizerConfigOrSanitizerPresets
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSanitizerOrSanitizerConfigOrSanitizerPresets o

toSanitizerOrSanitizerConfigOrSanitizerPresets :: IsSanitizerOrSanitizerConfigOrSanitizerPresets o => o -> SanitizerOrSanitizerConfigOrSanitizerPresets
toSanitizerOrSanitizerConfigOrSanitizerPresets = SanitizerOrSanitizerConfigOrSanitizerPresets . pToJSVal

instance IsSanitizerOrSanitizerConfigOrSanitizerPresets SanitizerOrSanitizerConfigOrSanitizerPresets
instance IsSanitizerOrSanitizerConfigOrSanitizerPresets Sanitizer
instance IsSanitizerOrSanitizerConfigOrSanitizerPresets SanitizerConfig

newtype SanitizerPI = SanitizerPI { unSanitizerPI :: JSVal }

instance Eq SanitizerPI where
  (SanitizerPI a) == (SanitizerPI b) = js_eq a b

instance PToJSVal SanitizerPI where
  pToJSVal = unSanitizerPI
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerPI where
  pFromJSVal = SanitizerPI
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerPI where
  toJSVal = return . unSanitizerPI
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerPI where
  fromJSVal = return . fmap SanitizerPI . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerPI
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSanitizerPI o

toSanitizerPI :: IsSanitizerPI o => o -> SanitizerPI
toSanitizerPI = SanitizerPI . pToJSVal

instance IsSanitizerPI SanitizerPI
instance IsSanitizerPI JSString
instance IsSanitizerPI SanitizerProcessingInstruction
instance IsSanitizerPI String
instance IsSanitizerPI T.Text

newtype SequenceSequenceStringOrRecordStringStringOrString = SequenceSequenceStringOrRecordStringStringOrString { unSequenceSequenceStringOrRecordStringStringOrString :: JSVal }

instance Eq SequenceSequenceStringOrRecordStringStringOrString where
  (SequenceSequenceStringOrRecordStringStringOrString a) == (SequenceSequenceStringOrRecordStringStringOrString b) = js_eq a b

instance PToJSVal SequenceSequenceStringOrRecordStringStringOrString where
  pToJSVal = unSequenceSequenceStringOrRecordStringStringOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal SequenceSequenceStringOrRecordStringStringOrString where
  pFromJSVal = SequenceSequenceStringOrRecordStringStringOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal SequenceSequenceStringOrRecordStringStringOrString where
  toJSVal = return . unSequenceSequenceStringOrRecordStringStringOrString
  {-# INLINE toJSVal #-}

instance FromJSVal SequenceSequenceStringOrRecordStringStringOrString where
  fromJSVal = return . fmap SequenceSequenceStringOrRecordStringStringOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SequenceSequenceStringOrRecordStringStringOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSequenceSequenceStringOrRecordStringStringOrString o

toSequenceSequenceStringOrRecordStringStringOrString :: IsSequenceSequenceStringOrRecordStringStringOrString o => o -> SequenceSequenceStringOrRecordStringStringOrString
toSequenceSequenceStringOrRecordStringStringOrString = SequenceSequenceStringOrRecordStringStringOrString . pToJSVal

instance IsSequenceSequenceStringOrRecordStringStringOrString SequenceSequenceStringOrRecordStringStringOrString
instance IsSequenceSequenceStringOrRecordStringStringOrString JSString
instance IsSequenceSequenceStringOrRecordStringStringOrString String
instance IsSequenceSequenceStringOrRecordStringStringOrString T.Text

newtype ServiceWorkerRegistrationOrUndefined = ServiceWorkerRegistrationOrUndefined { unServiceWorkerRegistrationOrUndefined :: JSVal }

instance Eq ServiceWorkerRegistrationOrUndefined where
  (ServiceWorkerRegistrationOrUndefined a) == (ServiceWorkerRegistrationOrUndefined b) = js_eq a b

instance PToJSVal ServiceWorkerRegistrationOrUndefined where
  pToJSVal = unServiceWorkerRegistrationOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal ServiceWorkerRegistrationOrUndefined where
  pFromJSVal = ServiceWorkerRegistrationOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal ServiceWorkerRegistrationOrUndefined where
  toJSVal = return . unServiceWorkerRegistrationOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal ServiceWorkerRegistrationOrUndefined where
  fromJSVal = return . fmap ServiceWorkerRegistrationOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ServiceWorkerRegistrationOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsServiceWorkerRegistrationOrUndefined o

toServiceWorkerRegistrationOrUndefined :: IsServiceWorkerRegistrationOrUndefined o => o -> ServiceWorkerRegistrationOrUndefined
toServiceWorkerRegistrationOrUndefined = ServiceWorkerRegistrationOrUndefined . pToJSVal

instance IsServiceWorkerRegistrationOrUndefined ServiceWorkerRegistrationOrUndefined
instance IsServiceWorkerRegistrationOrUndefined ServiceWorkerRegistration

newtype SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions = SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions { unSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions :: JSVal }

instance Eq SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  (SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions a) == (SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions b) = js_eq a b

instance PToJSVal SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  pToJSVal = unSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  pFromJSVal = SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  toJSVal = return . unSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions where
  fromJSVal = return . fmap SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions o

toSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions :: IsSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions o => o -> SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
toSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions = SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions . pToJSVal

instance IsSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions SetHTMLUnsafeOptionsOrTrustedHTMLParserOptions
instance IsSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions SetHTMLUnsafeOptions
instance IsSetHTMLUnsafeOptionsOrTrustedHTMLParserOptions TrustedHTMLParserOptions

newtype StringOrArrayBuffer = StringOrArrayBuffer { unStringOrArrayBuffer :: JSVal }

instance Eq StringOrArrayBuffer where
  (StringOrArrayBuffer a) == (StringOrArrayBuffer b) = js_eq a b

instance PToJSVal StringOrArrayBuffer where
  pToJSVal = unStringOrArrayBuffer
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrArrayBuffer where
  pFromJSVal = StringOrArrayBuffer
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrArrayBuffer where
  toJSVal = return . unStringOrArrayBuffer
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrArrayBuffer where
  fromJSVal = return . fmap StringOrArrayBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrArrayBuffer
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrArrayBuffer o

toStringOrArrayBuffer :: IsStringOrArrayBuffer o => o -> StringOrArrayBuffer
toStringOrArrayBuffer = StringOrArrayBuffer . pToJSVal

instance IsStringOrArrayBuffer StringOrArrayBuffer
instance IsStringOrArrayBuffer ArrayBuffer
instance IsStringOrArrayBuffer JSString
instance IsStringOrArrayBuffer String
instance IsStringOrArrayBuffer T.Text

newtype StringOrAudioSinkOptions = StringOrAudioSinkOptions { unStringOrAudioSinkOptions :: JSVal }

instance Eq StringOrAudioSinkOptions where
  (StringOrAudioSinkOptions a) == (StringOrAudioSinkOptions b) = js_eq a b

instance PToJSVal StringOrAudioSinkOptions where
  pToJSVal = unStringOrAudioSinkOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrAudioSinkOptions where
  pFromJSVal = StringOrAudioSinkOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrAudioSinkOptions where
  toJSVal = return . unStringOrAudioSinkOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrAudioSinkOptions where
  fromJSVal = return . fmap StringOrAudioSinkOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrAudioSinkOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrAudioSinkOptions o

toStringOrAudioSinkOptions :: IsStringOrAudioSinkOptions o => o -> StringOrAudioSinkOptions
toStringOrAudioSinkOptions = StringOrAudioSinkOptions . pToJSVal

instance IsStringOrAudioSinkOptions StringOrAudioSinkOptions
instance IsStringOrAudioSinkOptions AudioSinkOptions
instance IsStringOrAudioSinkOptions JSString
instance IsStringOrAudioSinkOptions String
instance IsStringOrAudioSinkOptions T.Text

newtype StringOrBufferSource = StringOrBufferSource { unStringOrBufferSource :: JSVal }

instance Eq StringOrBufferSource where
  (StringOrBufferSource a) == (StringOrBufferSource b) = js_eq a b

instance PToJSVal StringOrBufferSource where
  pToJSVal = unStringOrBufferSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrBufferSource where
  pFromJSVal = StringOrBufferSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrBufferSource where
  toJSVal = return . unStringOrBufferSource
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrBufferSource where
  fromJSVal = return . fmap StringOrBufferSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrBufferSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrBufferSource o

toStringOrBufferSource :: IsStringOrBufferSource o => o -> StringOrBufferSource
toStringOrBufferSource = StringOrBufferSource . pToJSVal

instance IsStringOrBufferSource StringOrBufferSource
instance IsStringOrBufferSource ArrayBuffer
instance IsStringOrBufferSource ArrayBufferView
instance IsStringOrBufferSource BigInt64Array
instance IsStringOrBufferSource BigUint64Array
instance IsStringOrBufferSource DataView
instance IsStringOrBufferSource Float16Array
instance IsStringOrBufferSource Float32Array
instance IsStringOrBufferSource Float64Array
instance IsStringOrBufferSource Int16Array
instance IsStringOrBufferSource Int32Array
instance IsStringOrBufferSource Int8Array
instance IsStringOrBufferSource JSString
instance IsStringOrBufferSource String
instance IsStringOrBufferSource T.Text
instance IsStringOrBufferSource Uint16Array
instance IsStringOrBufferSource Uint32Array
instance IsStringOrBufferSource Uint8Array
instance IsStringOrBufferSource Uint8ClampedArray

newtype StringOrCanvasGradientOrCanvasPattern = StringOrCanvasGradientOrCanvasPattern { unStringOrCanvasGradientOrCanvasPattern :: JSVal }

instance Eq StringOrCanvasGradientOrCanvasPattern where
  (StringOrCanvasGradientOrCanvasPattern a) == (StringOrCanvasGradientOrCanvasPattern b) = js_eq a b

instance PToJSVal StringOrCanvasGradientOrCanvasPattern where
  pToJSVal = unStringOrCanvasGradientOrCanvasPattern
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrCanvasGradientOrCanvasPattern where
  pFromJSVal = StringOrCanvasGradientOrCanvasPattern
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrCanvasGradientOrCanvasPattern where
  toJSVal = return . unStringOrCanvasGradientOrCanvasPattern
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrCanvasGradientOrCanvasPattern where
  fromJSVal = return . fmap StringOrCanvasGradientOrCanvasPattern . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrCanvasGradientOrCanvasPattern
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrCanvasGradientOrCanvasPattern o

toStringOrCanvasGradientOrCanvasPattern :: IsStringOrCanvasGradientOrCanvasPattern o => o -> StringOrCanvasGradientOrCanvasPattern
toStringOrCanvasGradientOrCanvasPattern = StringOrCanvasGradientOrCanvasPattern . pToJSVal

instance IsStringOrCanvasGradientOrCanvasPattern StringOrCanvasGradientOrCanvasPattern
instance IsStringOrCanvasGradientOrCanvasPattern CanvasGradient
instance IsStringOrCanvasGradientOrCanvasPattern CanvasPattern
instance IsStringOrCanvasGradientOrCanvasPattern JSString
instance IsStringOrCanvasGradientOrCanvasPattern String
instance IsStringOrCanvasGradientOrCanvasPattern T.Text

newtype StringOrDOMHighResTimeStamp = StringOrDOMHighResTimeStamp { unStringOrDOMHighResTimeStamp :: JSVal }

instance Eq StringOrDOMHighResTimeStamp where
  (StringOrDOMHighResTimeStamp a) == (StringOrDOMHighResTimeStamp b) = js_eq a b

instance PToJSVal StringOrDOMHighResTimeStamp where
  pToJSVal = unStringOrDOMHighResTimeStamp
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrDOMHighResTimeStamp where
  pFromJSVal = StringOrDOMHighResTimeStamp
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrDOMHighResTimeStamp where
  toJSVal = return . unStringOrDOMHighResTimeStamp
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrDOMHighResTimeStamp where
  fromJSVal = return . fmap StringOrDOMHighResTimeStamp . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrDOMHighResTimeStamp
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrDOMHighResTimeStamp o

toStringOrDOMHighResTimeStamp :: IsStringOrDOMHighResTimeStamp o => o -> StringOrDOMHighResTimeStamp
toStringOrDOMHighResTimeStamp = StringOrDOMHighResTimeStamp . pToJSVal

instance IsStringOrDOMHighResTimeStamp StringOrDOMHighResTimeStamp
instance IsStringOrDOMHighResTimeStamp Double
instance IsStringOrDOMHighResTimeStamp JSString
instance IsStringOrDOMHighResTimeStamp String
instance IsStringOrDOMHighResTimeStamp T.Text

newtype StringOrElementCreationOptions = StringOrElementCreationOptions { unStringOrElementCreationOptions :: JSVal }

instance Eq StringOrElementCreationOptions where
  (StringOrElementCreationOptions a) == (StringOrElementCreationOptions b) = js_eq a b

instance PToJSVal StringOrElementCreationOptions where
  pToJSVal = unStringOrElementCreationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrElementCreationOptions where
  pFromJSVal = StringOrElementCreationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrElementCreationOptions where
  toJSVal = return . unStringOrElementCreationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrElementCreationOptions where
  fromJSVal = return . fmap StringOrElementCreationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrElementCreationOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrElementCreationOptions o

toStringOrElementCreationOptions :: IsStringOrElementCreationOptions o => o -> StringOrElementCreationOptions
toStringOrElementCreationOptions = StringOrElementCreationOptions . pToJSVal

instance IsStringOrElementCreationOptions StringOrElementCreationOptions
instance IsStringOrElementCreationOptions ElementCreationOptions
instance IsStringOrElementCreationOptions JSString
instance IsStringOrElementCreationOptions String
instance IsStringOrElementCreationOptions T.Text

newtype StringOrPerformanceMeasureOptions = StringOrPerformanceMeasureOptions { unStringOrPerformanceMeasureOptions :: JSVal }

instance Eq StringOrPerformanceMeasureOptions where
  (StringOrPerformanceMeasureOptions a) == (StringOrPerformanceMeasureOptions b) = js_eq a b

instance PToJSVal StringOrPerformanceMeasureOptions where
  pToJSVal = unStringOrPerformanceMeasureOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrPerformanceMeasureOptions where
  pFromJSVal = StringOrPerformanceMeasureOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrPerformanceMeasureOptions where
  toJSVal = return . unStringOrPerformanceMeasureOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrPerformanceMeasureOptions where
  fromJSVal = return . fmap StringOrPerformanceMeasureOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrPerformanceMeasureOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrPerformanceMeasureOptions o

toStringOrPerformanceMeasureOptions :: IsStringOrPerformanceMeasureOptions o => o -> StringOrPerformanceMeasureOptions
toStringOrPerformanceMeasureOptions = StringOrPerformanceMeasureOptions . pToJSVal

instance IsStringOrPerformanceMeasureOptions StringOrPerformanceMeasureOptions
instance IsStringOrPerformanceMeasureOptions JSString
instance IsStringOrPerformanceMeasureOptions PerformanceMeasureOptions
instance IsStringOrPerformanceMeasureOptions String
instance IsStringOrPerformanceMeasureOptions T.Text

newtype StringOrSequenceCSSNumericValueOrCSSKeywordValue = StringOrSequenceCSSNumericValueOrCSSKeywordValue { unStringOrSequenceCSSNumericValueOrCSSKeywordValue :: JSVal }

instance Eq StringOrSequenceCSSNumericValueOrCSSKeywordValue where
  (StringOrSequenceCSSNumericValueOrCSSKeywordValue a) == (StringOrSequenceCSSNumericValueOrCSSKeywordValue b) = js_eq a b

instance PToJSVal StringOrSequenceCSSNumericValueOrCSSKeywordValue where
  pToJSVal = unStringOrSequenceCSSNumericValueOrCSSKeywordValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrSequenceCSSNumericValueOrCSSKeywordValue where
  pFromJSVal = StringOrSequenceCSSNumericValueOrCSSKeywordValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrSequenceCSSNumericValueOrCSSKeywordValue where
  toJSVal = return . unStringOrSequenceCSSNumericValueOrCSSKeywordValue
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrSequenceCSSNumericValueOrCSSKeywordValue where
  fromJSVal = return . fmap StringOrSequenceCSSNumericValueOrCSSKeywordValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrSequenceCSSNumericValueOrCSSKeywordValue
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrSequenceCSSNumericValueOrCSSKeywordValue o

toStringOrSequenceCSSNumericValueOrCSSKeywordValue :: IsStringOrSequenceCSSNumericValueOrCSSKeywordValue o => o -> StringOrSequenceCSSNumericValueOrCSSKeywordValue
toStringOrSequenceCSSNumericValueOrCSSKeywordValue = StringOrSequenceCSSNumericValueOrCSSKeywordValue . pToJSVal

instance IsStringOrSequenceCSSNumericValueOrCSSKeywordValue StringOrSequenceCSSNumericValueOrCSSKeywordValue
instance IsStringOrSequenceCSSNumericValueOrCSSKeywordValue JSString
instance IsStringOrSequenceCSSNumericValueOrCSSKeywordValue String
instance IsStringOrSequenceCSSNumericValueOrCSSKeywordValue T.Text

newtype StringOrSequenceDouble = StringOrSequenceDouble { unStringOrSequenceDouble :: JSVal }

instance Eq StringOrSequenceDouble where
  (StringOrSequenceDouble a) == (StringOrSequenceDouble b) = js_eq a b

instance PToJSVal StringOrSequenceDouble where
  pToJSVal = unStringOrSequenceDouble
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrSequenceDouble where
  pFromJSVal = StringOrSequenceDouble
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrSequenceDouble where
  toJSVal = return . unStringOrSequenceDouble
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrSequenceDouble where
  fromJSVal = return . fmap StringOrSequenceDouble . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrSequenceDouble
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrSequenceDouble o

toStringOrSequenceDouble :: IsStringOrSequenceDouble o => o -> StringOrSequenceDouble
toStringOrSequenceDouble = StringOrSequenceDouble . pToJSVal

instance IsStringOrSequenceDouble StringOrSequenceDouble
instance IsStringOrSequenceDouble JSString
instance IsStringOrSequenceDouble String
instance IsStringOrSequenceDouble T.Text

newtype StringOrSequenceString = StringOrSequenceString { unStringOrSequenceString :: JSVal }

instance Eq StringOrSequenceString where
  (StringOrSequenceString a) == (StringOrSequenceString b) = js_eq a b

instance PToJSVal StringOrSequenceString where
  pToJSVal = unStringOrSequenceString
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrSequenceString where
  pFromJSVal = StringOrSequenceString
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrSequenceString where
  toJSVal = return . unStringOrSequenceString
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrSequenceString where
  fromJSVal = return . fmap StringOrSequenceString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrSequenceString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrSequenceString o

toStringOrSequenceString :: IsStringOrSequenceString o => o -> StringOrSequenceString
toStringOrSequenceString = StringOrSequenceString . pToJSVal

instance IsStringOrSequenceString StringOrSequenceString
instance IsStringOrSequenceString JSString
instance IsStringOrSequenceString String
instance IsStringOrSequenceString T.Text

newtype StringOrSharedWorkerOptions = StringOrSharedWorkerOptions { unStringOrSharedWorkerOptions :: JSVal }

instance Eq StringOrSharedWorkerOptions where
  (StringOrSharedWorkerOptions a) == (StringOrSharedWorkerOptions b) = js_eq a b

instance PToJSVal StringOrSharedWorkerOptions where
  pToJSVal = unStringOrSharedWorkerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrSharedWorkerOptions where
  pFromJSVal = StringOrSharedWorkerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrSharedWorkerOptions where
  toJSVal = return . unStringOrSharedWorkerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrSharedWorkerOptions where
  fromJSVal = return . fmap StringOrSharedWorkerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrSharedWorkerOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrSharedWorkerOptions o

toStringOrSharedWorkerOptions :: IsStringOrSharedWorkerOptions o => o -> StringOrSharedWorkerOptions
toStringOrSharedWorkerOptions = StringOrSharedWorkerOptions . pToJSVal

instance IsStringOrSharedWorkerOptions StringOrSharedWorkerOptions
instance IsStringOrSharedWorkerOptions JSString
instance IsStringOrSharedWorkerOptions SharedWorkerOptions
instance IsStringOrSharedWorkerOptions String
instance IsStringOrSharedWorkerOptions T.Text

newtype StringOrTrustedScriptURL = StringOrTrustedScriptURL { unStringOrTrustedScriptURL :: JSVal }

instance Eq StringOrTrustedScriptURL where
  (StringOrTrustedScriptURL a) == (StringOrTrustedScriptURL b) = js_eq a b

instance PToJSVal StringOrTrustedScriptURL where
  pToJSVal = unStringOrTrustedScriptURL
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrTrustedScriptURL where
  pFromJSVal = StringOrTrustedScriptURL
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrTrustedScriptURL where
  toJSVal = return . unStringOrTrustedScriptURL
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrTrustedScriptURL where
  fromJSVal = return . fmap StringOrTrustedScriptURL . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrTrustedScriptURL
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrTrustedScriptURL o

toStringOrTrustedScriptURL :: IsStringOrTrustedScriptURL o => o -> StringOrTrustedScriptURL
toStringOrTrustedScriptURL = StringOrTrustedScriptURL . pToJSVal

instance IsStringOrTrustedScriptURL StringOrTrustedScriptURL
instance IsStringOrTrustedScriptURL JSString
instance IsStringOrTrustedScriptURL String
instance IsStringOrTrustedScriptURL T.Text
instance IsStringOrTrustedScriptURL TrustedScriptURL

newtype StringOrUndefined = StringOrUndefined { unStringOrUndefined :: JSVal }

instance Eq StringOrUndefined where
  (StringOrUndefined a) == (StringOrUndefined b) = js_eq a b

instance PToJSVal StringOrUndefined where
  pToJSVal = unStringOrUndefined
  {-# INLINE pToJSVal #-}

instance PFromJSVal StringOrUndefined where
  pFromJSVal = StringOrUndefined
  {-# INLINE pFromJSVal #-}

instance ToJSVal StringOrUndefined where
  toJSVal = return . unStringOrUndefined
  {-# INLINE toJSVal #-}

instance FromJSVal StringOrUndefined where
  fromJSVal = return . fmap StringOrUndefined . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StringOrUndefined
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsStringOrUndefined o

toStringOrUndefined :: IsStringOrUndefined o => o -> StringOrUndefined
toStringOrUndefined = StringOrUndefined . pToJSVal

instance IsStringOrUndefined StringOrUndefined
instance IsStringOrUndefined JSString
instance IsStringOrUndefined String
instance IsStringOrUndefined T.Text

newtype TaskPriorityOrTaskSignal = TaskPriorityOrTaskSignal { unTaskPriorityOrTaskSignal :: JSVal }

instance Eq TaskPriorityOrTaskSignal where
  (TaskPriorityOrTaskSignal a) == (TaskPriorityOrTaskSignal b) = js_eq a b

instance PToJSVal TaskPriorityOrTaskSignal where
  pToJSVal = unTaskPriorityOrTaskSignal
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskPriorityOrTaskSignal where
  pFromJSVal = TaskPriorityOrTaskSignal
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskPriorityOrTaskSignal where
  toJSVal = return . unTaskPriorityOrTaskSignal
  {-# INLINE toJSVal #-}

instance FromJSVal TaskPriorityOrTaskSignal where
  fromJSVal = return . fmap TaskPriorityOrTaskSignal . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskPriorityOrTaskSignal
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTaskPriorityOrTaskSignal o

toTaskPriorityOrTaskSignal :: IsTaskPriorityOrTaskSignal o => o -> TaskPriorityOrTaskSignal
toTaskPriorityOrTaskSignal = TaskPriorityOrTaskSignal . pToJSVal

instance IsTaskPriorityOrTaskSignal TaskPriorityOrTaskSignal
instance IsTaskPriorityOrTaskSignal TaskSignal

newtype TexImageSource = TexImageSource { unTexImageSource :: JSVal }

instance Eq TexImageSource where
  (TexImageSource a) == (TexImageSource b) = js_eq a b

instance PToJSVal TexImageSource where
  pToJSVal = unTexImageSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal TexImageSource where
  pFromJSVal = TexImageSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal TexImageSource where
  toJSVal = return . unTexImageSource
  {-# INLINE toJSVal #-}

instance FromJSVal TexImageSource where
  fromJSVal = return . fmap TexImageSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TexImageSource
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTexImageSource o

toTexImageSource :: IsTexImageSource o => o -> TexImageSource
toTexImageSource = TexImageSource . pToJSVal

instance IsTexImageSource TexImageSource
instance IsTexImageSource HTMLCanvasElement
instance IsTexImageSource HTMLImageElement
instance IsTexImageSource HTMLVideoElement
instance IsTexImageSource ImageBitmap
instance IsTexImageSource ImageData
instance IsTexImageSource OffscreenCanvas
instance IsTexImageSource VideoFrame

newtype TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString = TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString { unTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString :: JSVal }

instance Eq TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString where
  (TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString a) == (TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString b) = js_eq a b

instance PToJSVal TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString where
  pToJSVal = unTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString where
  pFromJSVal = TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString where
  toJSVal = return . unTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
  {-# INLINE toJSVal #-}

instance FromJSVal TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString where
  fromJSVal = return . fmap TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString o

toTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString :: IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString o => o -> TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
toTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString = TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString . pToJSVal

instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString TimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSKeywordValue
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathClamp
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathInvert
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathMax
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathMin
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathNegate
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathProduct
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathSum
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSMathValue
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSNumericValue
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString CSSUnitValue
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString JSString
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString String
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString T.Text
instance IsTimelineRangeOffsetOrCSSNumericValueOrCSSKeywordValueOrString TimelineRangeOffset

newtype TimerHandler = TimerHandler { unTimerHandler :: JSVal }

instance Eq TimerHandler where
  (TimerHandler a) == (TimerHandler b) = js_eq a b

instance PToJSVal TimerHandler where
  pToJSVal = unTimerHandler
  {-# INLINE pToJSVal #-}

instance PFromJSVal TimerHandler where
  pFromJSVal = TimerHandler
  {-# INLINE pFromJSVal #-}

instance ToJSVal TimerHandler where
  toJSVal = return . unTimerHandler
  {-# INLINE toJSVal #-}

instance FromJSVal TimerHandler where
  fromJSVal = return . fmap TimerHandler . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TimerHandler
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTimerHandler o

toTimerHandler :: IsTimerHandler o => o -> TimerHandler
toTimerHandler = TimerHandler . pToJSVal

instance IsTimerHandler TimerHandler
instance IsTimerHandler Function
instance IsTimerHandler JSString
instance IsTimerHandler String
instance IsTimerHandler T.Text
instance IsTimerHandler TrustedScript

newtype TogglePopoverOptionsOrBool = TogglePopoverOptionsOrBool { unTogglePopoverOptionsOrBool :: JSVal }

instance Eq TogglePopoverOptionsOrBool where
  (TogglePopoverOptionsOrBool a) == (TogglePopoverOptionsOrBool b) = js_eq a b

instance PToJSVal TogglePopoverOptionsOrBool where
  pToJSVal = unTogglePopoverOptionsOrBool
  {-# INLINE pToJSVal #-}

instance PFromJSVal TogglePopoverOptionsOrBool where
  pFromJSVal = TogglePopoverOptionsOrBool
  {-# INLINE pFromJSVal #-}

instance ToJSVal TogglePopoverOptionsOrBool where
  toJSVal = return . unTogglePopoverOptionsOrBool
  {-# INLINE toJSVal #-}

instance FromJSVal TogglePopoverOptionsOrBool where
  fromJSVal = return . fmap TogglePopoverOptionsOrBool . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TogglePopoverOptionsOrBool
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTogglePopoverOptionsOrBool o

toTogglePopoverOptionsOrBool :: IsTogglePopoverOptionsOrBool o => o -> TogglePopoverOptionsOrBool
toTogglePopoverOptionsOrBool = TogglePopoverOptionsOrBool . pToJSVal

instance IsTogglePopoverOptionsOrBool TogglePopoverOptionsOrBool
instance IsTogglePopoverOptionsOrBool Bool
instance IsTogglePopoverOptionsOrBool TogglePopoverOptions

newtype TrustedHTMLOrString = TrustedHTMLOrString { unTrustedHTMLOrString :: JSVal }

instance Eq TrustedHTMLOrString where
  (TrustedHTMLOrString a) == (TrustedHTMLOrString b) = js_eq a b

instance PToJSVal TrustedHTMLOrString where
  pToJSVal = unTrustedHTMLOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedHTMLOrString where
  pFromJSVal = TrustedHTMLOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedHTMLOrString where
  toJSVal = return . unTrustedHTMLOrString
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedHTMLOrString where
  fromJSVal = return . fmap TrustedHTMLOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedHTMLOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTrustedHTMLOrString o

toTrustedHTMLOrString :: IsTrustedHTMLOrString o => o -> TrustedHTMLOrString
toTrustedHTMLOrString = TrustedHTMLOrString . pToJSVal

instance IsTrustedHTMLOrString TrustedHTMLOrString
instance IsTrustedHTMLOrString JSString
instance IsTrustedHTMLOrString String
instance IsTrustedHTMLOrString T.Text
instance IsTrustedHTMLOrString TrustedHTML

newtype TrustedScriptOrString = TrustedScriptOrString { unTrustedScriptOrString :: JSVal }

instance Eq TrustedScriptOrString where
  (TrustedScriptOrString a) == (TrustedScriptOrString b) = js_eq a b

instance PToJSVal TrustedScriptOrString where
  pToJSVal = unTrustedScriptOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedScriptOrString where
  pFromJSVal = TrustedScriptOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedScriptOrString where
  toJSVal = return . unTrustedScriptOrString
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedScriptOrString where
  fromJSVal = return . fmap TrustedScriptOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedScriptOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTrustedScriptOrString o

toTrustedScriptOrString :: IsTrustedScriptOrString o => o -> TrustedScriptOrString
toTrustedScriptOrString = TrustedScriptOrString . pToJSVal

instance IsTrustedScriptOrString TrustedScriptOrString
instance IsTrustedScriptOrString JSString
instance IsTrustedScriptOrString String
instance IsTrustedScriptOrString T.Text
instance IsTrustedScriptOrString TrustedScript

newtype TrustedScriptURLOrString = TrustedScriptURLOrString { unTrustedScriptURLOrString :: JSVal }

instance Eq TrustedScriptURLOrString where
  (TrustedScriptURLOrString a) == (TrustedScriptURLOrString b) = js_eq a b

instance PToJSVal TrustedScriptURLOrString where
  pToJSVal = unTrustedScriptURLOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedScriptURLOrString where
  pFromJSVal = TrustedScriptURLOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedScriptURLOrString where
  toJSVal = return . unTrustedScriptURLOrString
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedScriptURLOrString where
  fromJSVal = return . fmap TrustedScriptURLOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedScriptURLOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTrustedScriptURLOrString o

toTrustedScriptURLOrString :: IsTrustedScriptURLOrString o => o -> TrustedScriptURLOrString
toTrustedScriptURLOrString = TrustedScriptURLOrString . pToJSVal

instance IsTrustedScriptURLOrString TrustedScriptURLOrString
instance IsTrustedScriptURLOrString JSString
instance IsTrustedScriptURLOrString String
instance IsTrustedScriptURLOrString T.Text
instance IsTrustedScriptURLOrString TrustedScriptURL

newtype TrustedTypeOrString = TrustedTypeOrString { unTrustedTypeOrString :: JSVal }

instance Eq TrustedTypeOrString where
  (TrustedTypeOrString a) == (TrustedTypeOrString b) = js_eq a b

instance PToJSVal TrustedTypeOrString where
  pToJSVal = unTrustedTypeOrString
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedTypeOrString where
  pFromJSVal = TrustedTypeOrString
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedTypeOrString where
  toJSVal = return . unTrustedTypeOrString
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedTypeOrString where
  fromJSVal = return . fmap TrustedTypeOrString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedTypeOrString
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsTrustedTypeOrString o

toTrustedTypeOrString :: IsTrustedTypeOrString o => o -> TrustedTypeOrString
toTrustedTypeOrString = TrustedTypeOrString . pToJSVal

instance IsTrustedTypeOrString TrustedTypeOrString
instance IsTrustedTypeOrString JSString
instance IsTrustedTypeOrString String
instance IsTrustedTypeOrString T.Text
instance IsTrustedTypeOrString TrustedHTML
instance IsTrustedTypeOrString TrustedScript
instance IsTrustedTypeOrString TrustedScriptURL

newtype URLPatternCompatible = URLPatternCompatible { unURLPatternCompatible :: JSVal }

instance Eq URLPatternCompatible where
  (URLPatternCompatible a) == (URLPatternCompatible b) = js_eq a b

instance PToJSVal URLPatternCompatible where
  pToJSVal = unURLPatternCompatible
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPatternCompatible where
  pFromJSVal = URLPatternCompatible
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPatternCompatible where
  toJSVal = return . unURLPatternCompatible
  {-# INLINE toJSVal #-}

instance FromJSVal URLPatternCompatible where
  fromJSVal = return . fmap URLPatternCompatible . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPatternCompatible
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsURLPatternCompatible o

toURLPatternCompatible :: IsURLPatternCompatible o => o -> URLPatternCompatible
toURLPatternCompatible = URLPatternCompatible . pToJSVal

instance IsURLPatternCompatible URLPatternCompatible
instance IsURLPatternCompatible JSString
instance IsURLPatternCompatible String
instance IsURLPatternCompatible T.Text
instance IsURLPatternCompatible URLPattern
instance IsURLPatternCompatible URLPatternInit

newtype URLPatternInput = URLPatternInput { unURLPatternInput :: JSVal }

instance Eq URLPatternInput where
  (URLPatternInput a) == (URLPatternInput b) = js_eq a b

instance PToJSVal URLPatternInput where
  pToJSVal = unURLPatternInput
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPatternInput where
  pFromJSVal = URLPatternInput
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPatternInput where
  toJSVal = return . unURLPatternInput
  {-# INLINE toJSVal #-}

instance FromJSVal URLPatternInput where
  fromJSVal = return . fmap URLPatternInput . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPatternInput
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsURLPatternInput o

toURLPatternInput :: IsURLPatternInput o => o -> URLPatternInput
toURLPatternInput = URLPatternInput . pToJSVal

instance IsURLPatternInput URLPatternInput
instance IsURLPatternInput JSString
instance IsURLPatternInput String
instance IsURLPatternInput T.Text
instance IsURLPatternInput URLPatternInit

newtype Uint32List = Uint32List { unUint32List :: JSVal }

instance Eq Uint32List where
  (Uint32List a) == (Uint32List b) = js_eq a b

instance PToJSVal Uint32List where
  pToJSVal = unUint32List
  {-# INLINE pToJSVal #-}

instance PFromJSVal Uint32List where
  pFromJSVal = Uint32List
  {-# INLINE pFromJSVal #-}

instance ToJSVal Uint32List where
  toJSVal = return . unUint32List
  {-# INLINE toJSVal #-}

instance FromJSVal Uint32List where
  fromJSVal = return . fmap Uint32List . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Uint32List
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsUint32List o

toUint32List :: IsUint32List o => o -> Uint32List
toUint32List = Uint32List . pToJSVal

instance IsUint32List Uint32List
instance IsUint32List Uint32Array

newtype UndefinedOrCSSStyleValue = UndefinedOrCSSStyleValue { unUndefinedOrCSSStyleValue :: JSVal }

instance Eq UndefinedOrCSSStyleValue where
  (UndefinedOrCSSStyleValue a) == (UndefinedOrCSSStyleValue b) = js_eq a b

instance PToJSVal UndefinedOrCSSStyleValue where
  pToJSVal = unUndefinedOrCSSStyleValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal UndefinedOrCSSStyleValue where
  pFromJSVal = UndefinedOrCSSStyleValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal UndefinedOrCSSStyleValue where
  toJSVal = return . unUndefinedOrCSSStyleValue
  {-# INLINE toJSVal #-}

instance FromJSVal UndefinedOrCSSStyleValue where
  fromJSVal = return . fmap UndefinedOrCSSStyleValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . UndefinedOrCSSStyleValue
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsUndefinedOrCSSStyleValue o

toUndefinedOrCSSStyleValue :: IsUndefinedOrCSSStyleValue o => o -> UndefinedOrCSSStyleValue
toUndefinedOrCSSStyleValue = UndefinedOrCSSStyleValue . pToJSVal

instance IsUndefinedOrCSSStyleValue UndefinedOrCSSStyleValue
instance IsUndefinedOrCSSStyleValue CSSImageValue
instance IsUndefinedOrCSSStyleValue CSSKeywordValue
instance IsUndefinedOrCSSStyleValue CSSMathClamp
instance IsUndefinedOrCSSStyleValue CSSMathInvert
instance IsUndefinedOrCSSStyleValue CSSMathMax
instance IsUndefinedOrCSSStyleValue CSSMathMin
instance IsUndefinedOrCSSStyleValue CSSMathNegate
instance IsUndefinedOrCSSStyleValue CSSMathProduct
instance IsUndefinedOrCSSStyleValue CSSMathSum
instance IsUndefinedOrCSSStyleValue CSSMathValue
instance IsUndefinedOrCSSStyleValue CSSNumericValue
instance IsUndefinedOrCSSStyleValue CSSStyleValue
instance IsUndefinedOrCSSStyleValue CSSTransformValue
instance IsUndefinedOrCSSStyleValue CSSUnitValue
instance IsUndefinedOrCSSStyleValue CSSUnparsedValue

newtype VibratePattern = VibratePattern { unVibratePattern :: JSVal }

instance Eq VibratePattern where
  (VibratePattern a) == (VibratePattern b) = js_eq a b

instance PToJSVal VibratePattern where
  pToJSVal = unVibratePattern
  {-# INLINE pToJSVal #-}

instance PFromJSVal VibratePattern where
  pFromJSVal = VibratePattern
  {-# INLINE pFromJSVal #-}

instance ToJSVal VibratePattern where
  toJSVal = return . unVibratePattern
  {-# INLINE toJSVal #-}

instance FromJSVal VibratePattern where
  fromJSVal = return . fmap VibratePattern . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VibratePattern
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsVibratePattern o

toVibratePattern :: IsVibratePattern o => o -> VibratePattern
toVibratePattern = VibratePattern . pToJSVal

instance IsVibratePattern VibratePattern
instance IsVibratePattern Word

newtype VideoTrackOrAudioTrackOrTextTrack = VideoTrackOrAudioTrackOrTextTrack { unVideoTrackOrAudioTrackOrTextTrack :: JSVal }

instance Eq VideoTrackOrAudioTrackOrTextTrack where
  (VideoTrackOrAudioTrackOrTextTrack a) == (VideoTrackOrAudioTrackOrTextTrack b) = js_eq a b

instance PToJSVal VideoTrackOrAudioTrackOrTextTrack where
  pToJSVal = unVideoTrackOrAudioTrackOrTextTrack
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoTrackOrAudioTrackOrTextTrack where
  pFromJSVal = VideoTrackOrAudioTrackOrTextTrack
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoTrackOrAudioTrackOrTextTrack where
  toJSVal = return . unVideoTrackOrAudioTrackOrTextTrack
  {-# INLINE toJSVal #-}

instance FromJSVal VideoTrackOrAudioTrackOrTextTrack where
  fromJSVal = return . fmap VideoTrackOrAudioTrackOrTextTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoTrackOrAudioTrackOrTextTrack
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsVideoTrackOrAudioTrackOrTextTrack o

toVideoTrackOrAudioTrackOrTextTrack :: IsVideoTrackOrAudioTrackOrTextTrack o => o -> VideoTrackOrAudioTrackOrTextTrack
toVideoTrackOrAudioTrackOrTextTrack = VideoTrackOrAudioTrackOrTextTrack . pToJSVal

instance IsVideoTrackOrAudioTrackOrTextTrack VideoTrackOrAudioTrackOrTextTrack
instance IsVideoTrackOrAudioTrackOrTextTrack AudioTrack
instance IsVideoTrackOrAudioTrackOrTextTrack TextTrack
instance IsVideoTrackOrAudioTrackOrTextTrack VideoTrack

newtype ViewTransitionUpdateCallbackOrStartViewTransitionOptions = ViewTransitionUpdateCallbackOrStartViewTransitionOptions { unViewTransitionUpdateCallbackOrStartViewTransitionOptions :: JSVal }

instance Eq ViewTransitionUpdateCallbackOrStartViewTransitionOptions where
  (ViewTransitionUpdateCallbackOrStartViewTransitionOptions a) == (ViewTransitionUpdateCallbackOrStartViewTransitionOptions b) = js_eq a b

instance PToJSVal ViewTransitionUpdateCallbackOrStartViewTransitionOptions where
  pToJSVal = unViewTransitionUpdateCallbackOrStartViewTransitionOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ViewTransitionUpdateCallbackOrStartViewTransitionOptions where
  pFromJSVal = ViewTransitionUpdateCallbackOrStartViewTransitionOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ViewTransitionUpdateCallbackOrStartViewTransitionOptions where
  toJSVal = return . unViewTransitionUpdateCallbackOrStartViewTransitionOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ViewTransitionUpdateCallbackOrStartViewTransitionOptions where
  fromJSVal = return . fmap ViewTransitionUpdateCallbackOrStartViewTransitionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ViewTransitionUpdateCallbackOrStartViewTransitionOptions
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsViewTransitionUpdateCallbackOrStartViewTransitionOptions o

toViewTransitionUpdateCallbackOrStartViewTransitionOptions :: IsViewTransitionUpdateCallbackOrStartViewTransitionOptions o => o -> ViewTransitionUpdateCallbackOrStartViewTransitionOptions
toViewTransitionUpdateCallbackOrStartViewTransitionOptions = ViewTransitionUpdateCallbackOrStartViewTransitionOptions . pToJSVal

instance IsViewTransitionUpdateCallbackOrStartViewTransitionOptions ViewTransitionUpdateCallbackOrStartViewTransitionOptions
instance IsViewTransitionUpdateCallbackOrStartViewTransitionOptions StartViewTransitionOptions
instance IsViewTransitionUpdateCallbackOrStartViewTransitionOptions ViewTransitionUpdateCallback

newtype WorkerOrWorkerAndParameters = WorkerOrWorkerAndParameters { unWorkerOrWorkerAndParameters :: JSVal }

instance Eq WorkerOrWorkerAndParameters where
  (WorkerOrWorkerAndParameters a) == (WorkerOrWorkerAndParameters b) = js_eq a b

instance PToJSVal WorkerOrWorkerAndParameters where
  pToJSVal = unWorkerOrWorkerAndParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal WorkerOrWorkerAndParameters where
  pFromJSVal = WorkerOrWorkerAndParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal WorkerOrWorkerAndParameters where
  toJSVal = return . unWorkerOrWorkerAndParameters
  {-# INLINE toJSVal #-}

instance FromJSVal WorkerOrWorkerAndParameters where
  fromJSVal = return . fmap WorkerOrWorkerAndParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkerOrWorkerAndParameters
  {-# INLINE fromJSValUnchecked #-}

class (PToJSVal o, ToJSVal o) => IsWorkerOrWorkerAndParameters o

toWorkerOrWorkerAndParameters :: IsWorkerOrWorkerAndParameters o => o -> WorkerOrWorkerAndParameters
toWorkerOrWorkerAndParameters = WorkerOrWorkerAndParameters . pToJSVal

instance IsWorkerOrWorkerAndParameters WorkerOrWorkerAndParameters
instance IsWorkerOrWorkerAndParameters Worker
instance IsWorkerOrWorkerAndParameters WorkerAndParameters

newtype AudioDataOutputCallback = AudioDataOutputCallback (Callback (JSVal -> IO ()))
noAudioDataOutputCallback :: Maybe AudioDataOutputCallback
noAudioDataOutputCallback = Nothing
{-# INLINE noAudioDataOutputCallback #-}
instance PToJSVal AudioDataOutputCallback where pToJSVal (AudioDataOutputCallback r) = jsval r
instance ToJSVal AudioDataOutputCallback where toJSVal = return . pToJSVal

newtype AudioWorkletProcessorConstructor = AudioWorkletProcessorConstructor (Callback (JSVal -> IO ()))
noAudioWorkletProcessorConstructor :: Maybe AudioWorkletProcessorConstructor
noAudioWorkletProcessorConstructor = Nothing
{-# INLINE noAudioWorkletProcessorConstructor #-}
instance PToJSVal AudioWorkletProcessorConstructor where pToJSVal (AudioWorkletProcessorConstructor r) = jsval r
instance ToJSVal AudioWorkletProcessorConstructor where toJSVal = return . pToJSVal

newtype BlobCallback = BlobCallback (Callback (JSVal -> IO ()))
noBlobCallback :: Maybe BlobCallback
noBlobCallback = Nothing
{-# INLINE noBlobCallback #-}
instance PToJSVal BlobCallback where pToJSVal (BlobCallback r) = jsval r
instance ToJSVal BlobCallback where toJSVal = return . pToJSVal

newtype CreateHTMLCallback = CreateHTMLCallback (Callback (JSVal -> IO ()))
noCreateHTMLCallback :: Maybe CreateHTMLCallback
noCreateHTMLCallback = Nothing
{-# INLINE noCreateHTMLCallback #-}
instance PToJSVal CreateHTMLCallback where pToJSVal (CreateHTMLCallback r) = jsval r
instance ToJSVal CreateHTMLCallback where toJSVal = return . pToJSVal

newtype CreateParserOptionsCallback = CreateParserOptionsCallback (Callback (JSVal -> IO ()))
noCreateParserOptionsCallback :: Maybe CreateParserOptionsCallback
noCreateParserOptionsCallback = Nothing
{-# INLINE noCreateParserOptionsCallback #-}
instance PToJSVal CreateParserOptionsCallback where pToJSVal (CreateParserOptionsCallback r) = jsval r
instance ToJSVal CreateParserOptionsCallback where toJSVal = return . pToJSVal

newtype CreateScriptCallback = CreateScriptCallback (Callback (JSVal -> IO ()))
noCreateScriptCallback :: Maybe CreateScriptCallback
noCreateScriptCallback = Nothing
{-# INLINE noCreateScriptCallback #-}
instance PToJSVal CreateScriptCallback where pToJSVal (CreateScriptCallback r) = jsval r
instance ToJSVal CreateScriptCallback where toJSVal = return . pToJSVal

newtype CreateScriptURLCallback = CreateScriptURLCallback (Callback (JSVal -> IO ()))
noCreateScriptURLCallback :: Maybe CreateScriptURLCallback
noCreateScriptURLCallback = Nothing
{-# INLINE noCreateScriptURLCallback #-}
instance PToJSVal CreateScriptURLCallback where pToJSVal (CreateScriptURLCallback r) = jsval r
instance ToJSVal CreateScriptURLCallback where toJSVal = return . pToJSVal

newtype CustomElementConstructor = CustomElementConstructor (Callback (JSVal -> IO ()))
noCustomElementConstructor :: Maybe CustomElementConstructor
noCustomElementConstructor = Nothing
{-# INLINE noCustomElementConstructor #-}
instance PToJSVal CustomElementConstructor where pToJSVal (CustomElementConstructor r) = jsval r
instance ToJSVal CustomElementConstructor where toJSVal = return . pToJSVal

newtype DecodeErrorCallback = DecodeErrorCallback (Callback (JSVal -> IO ()))
noDecodeErrorCallback :: Maybe DecodeErrorCallback
noDecodeErrorCallback = Nothing
{-# INLINE noDecodeErrorCallback #-}
instance PToJSVal DecodeErrorCallback where pToJSVal (DecodeErrorCallback r) = jsval r
instance ToJSVal DecodeErrorCallback where toJSVal = return . pToJSVal

newtype DecodeSuccessCallback = DecodeSuccessCallback (Callback (JSVal -> IO ()))
noDecodeSuccessCallback :: Maybe DecodeSuccessCallback
noDecodeSuccessCallback = Nothing
{-# INLINE noDecodeSuccessCallback #-}
instance PToJSVal DecodeSuccessCallback where pToJSVal (DecodeSuccessCallback r) = jsval r
instance ToJSVal DecodeSuccessCallback where toJSVal = return . pToJSVal

newtype EncodedAudioChunkOutputCallback = EncodedAudioChunkOutputCallback (Callback (JSVal -> IO ()))
noEncodedAudioChunkOutputCallback :: Maybe EncodedAudioChunkOutputCallback
noEncodedAudioChunkOutputCallback = Nothing
{-# INLINE noEncodedAudioChunkOutputCallback #-}
instance PToJSVal EncodedAudioChunkOutputCallback where pToJSVal (EncodedAudioChunkOutputCallback r) = jsval r
instance ToJSVal EncodedAudioChunkOutputCallback where toJSVal = return . pToJSVal

newtype EncodedVideoChunkOutputCallback = EncodedVideoChunkOutputCallback (Callback (JSVal -> IO ()))
noEncodedVideoChunkOutputCallback :: Maybe EncodedVideoChunkOutputCallback
noEncodedVideoChunkOutputCallback = Nothing
{-# INLINE noEncodedVideoChunkOutputCallback #-}
instance PToJSVal EncodedVideoChunkOutputCallback where pToJSVal (EncodedVideoChunkOutputCallback r) = jsval r
instance ToJSVal EncodedVideoChunkOutputCallback where toJSVal = return . pToJSVal

newtype ErrorCallback = ErrorCallback (Callback (JSVal -> IO ()))
noErrorCallback :: Maybe ErrorCallback
noErrorCallback = Nothing
{-# INLINE noErrorCallback #-}
instance PToJSVal ErrorCallback where pToJSVal (ErrorCallback r) = jsval r
instance ToJSVal ErrorCallback where toJSVal = return . pToJSVal

newtype FileCallback = FileCallback (Callback (JSVal -> IO ()))
noFileCallback :: Maybe FileCallback
noFileCallback = Nothing
{-# INLINE noFileCallback #-}
instance PToJSVal FileCallback where pToJSVal (FileCallback r) = jsval r
instance ToJSVal FileCallback where toJSVal = return . pToJSVal

newtype FileSystemEntriesCallback = FileSystemEntriesCallback (Callback (JSVal -> IO ()))
noFileSystemEntriesCallback :: Maybe FileSystemEntriesCallback
noFileSystemEntriesCallback = Nothing
{-# INLINE noFileSystemEntriesCallback #-}
instance PToJSVal FileSystemEntriesCallback where pToJSVal (FileSystemEntriesCallback r) = jsval r
instance ToJSVal FileSystemEntriesCallback where toJSVal = return . pToJSVal

newtype FileSystemEntryCallback = FileSystemEntryCallback (Callback (JSVal -> IO ()))
noFileSystemEntryCallback :: Maybe FileSystemEntryCallback
noFileSystemEntryCallback = Nothing
{-# INLINE noFileSystemEntryCallback #-}
instance PToJSVal FileSystemEntryCallback where pToJSVal (FileSystemEntryCallback r) = jsval r
instance ToJSVal FileSystemEntryCallback where toJSVal = return . pToJSVal

newtype FrameRequestCallback = FrameRequestCallback (Callback (JSVal -> IO ()))
noFrameRequestCallback :: Maybe FrameRequestCallback
noFrameRequestCallback = Nothing
{-# INLINE noFrameRequestCallback #-}
instance PToJSVal FrameRequestCallback where pToJSVal (FrameRequestCallback r) = jsval r
instance ToJSVal FrameRequestCallback where toJSVal = return . pToJSVal

newtype FunctionStringCallback = FunctionStringCallback (Callback (JSVal -> IO ()))
noFunctionStringCallback :: Maybe FunctionStringCallback
noFunctionStringCallback = Nothing
{-# INLINE noFunctionStringCallback #-}
instance PToJSVal FunctionStringCallback where pToJSVal (FunctionStringCallback r) = jsval r
instance ToJSVal FunctionStringCallback where toJSVal = return . pToJSVal

newtype IdleRequestCallback = IdleRequestCallback (Callback (JSVal -> IO ()))
noIdleRequestCallback :: Maybe IdleRequestCallback
noIdleRequestCallback = Nothing
{-# INLINE noIdleRequestCallback #-}
instance PToJSVal IdleRequestCallback where pToJSVal (IdleRequestCallback r) = jsval r
instance ToJSVal IdleRequestCallback where toJSVal = return . pToJSVal

newtype IntersectionObserverCallback = IntersectionObserverCallback (Callback (JSVal -> IO ()))
noIntersectionObserverCallback :: Maybe IntersectionObserverCallback
noIntersectionObserverCallback = Nothing
{-# INLINE noIntersectionObserverCallback #-}
instance PToJSVal IntersectionObserverCallback where pToJSVal (IntersectionObserverCallback r) = jsval r
instance ToJSVal IntersectionObserverCallback where toJSVal = return . pToJSVal

newtype LockGrantedCallback = LockGrantedCallback (Callback (JSVal -> IO ()))
noLockGrantedCallback :: Maybe LockGrantedCallback
noLockGrantedCallback = Nothing
{-# INLINE noLockGrantedCallback #-}
instance PToJSVal LockGrantedCallback where pToJSVal (LockGrantedCallback r) = jsval r
instance ToJSVal LockGrantedCallback where toJSVal = return . pToJSVal

newtype MediaSessionActionHandler = MediaSessionActionHandler (Callback (JSVal -> IO ()))
noMediaSessionActionHandler :: Maybe MediaSessionActionHandler
noMediaSessionActionHandler = Nothing
{-# INLINE noMediaSessionActionHandler #-}
instance PToJSVal MediaSessionActionHandler where pToJSVal (MediaSessionActionHandler r) = jsval r
instance ToJSVal MediaSessionActionHandler where toJSVal = return . pToJSVal

newtype MutationCallback = MutationCallback (Callback (JSVal -> IO ()))
noMutationCallback :: Maybe MutationCallback
noMutationCallback = Nothing
{-# INLINE noMutationCallback #-}
instance PToJSVal MutationCallback where pToJSVal (MutationCallback r) = jsval r
instance ToJSVal MutationCallback where toJSVal = return . pToJSVal

newtype NavigationInterceptHandler = NavigationInterceptHandler (Callback (JSVal -> IO ()))
noNavigationInterceptHandler :: Maybe NavigationInterceptHandler
noNavigationInterceptHandler = Nothing
{-# INLINE noNavigationInterceptHandler #-}
instance PToJSVal NavigationInterceptHandler where pToJSVal (NavigationInterceptHandler r) = jsval r
instance ToJSVal NavigationInterceptHandler where toJSVal = return . pToJSVal

newtype NavigationPrecommitHandler = NavigationPrecommitHandler (Callback (JSVal -> IO ()))
noNavigationPrecommitHandler :: Maybe NavigationPrecommitHandler
noNavigationPrecommitHandler = Nothing
{-# INLINE noNavigationPrecommitHandler #-}
instance PToJSVal NavigationPrecommitHandler where pToJSVal (NavigationPrecommitHandler r) = jsval r
instance ToJSVal NavigationPrecommitHandler where toJSVal = return . pToJSVal

newtype NodeFilter = NodeFilter (Callback (JSVal -> IO ()))
noNodeFilter :: Maybe NodeFilter
noNodeFilter = Nothing
{-# INLINE noNodeFilter #-}
instance PToJSVal NodeFilter where pToJSVal (NodeFilter r) = jsval r
instance ToJSVal NodeFilter where toJSVal = return . pToJSVal

newtype NotificationPermissionCallback = NotificationPermissionCallback (Callback (JSVal -> IO ()))
noNotificationPermissionCallback :: Maybe NotificationPermissionCallback
noNotificationPermissionCallback = Nothing
{-# INLINE noNotificationPermissionCallback #-}
instance PToJSVal NotificationPermissionCallback where pToJSVal (NotificationPermissionCallback r) = jsval r
instance ToJSVal NotificationPermissionCallback where toJSVal = return . pToJSVal

newtype PerformanceObserverCallback = PerformanceObserverCallback (Callback (JSVal -> IO ()))
noPerformanceObserverCallback :: Maybe PerformanceObserverCallback
noPerformanceObserverCallback = Nothing
{-# INLINE noPerformanceObserverCallback #-}
instance PToJSVal PerformanceObserverCallback where pToJSVal (PerformanceObserverCallback r) = jsval r
instance ToJSVal PerformanceObserverCallback where toJSVal = return . pToJSVal

newtype PositionCallback = PositionCallback (Callback (JSVal -> IO ()))
noPositionCallback :: Maybe PositionCallback
noPositionCallback = Nothing
{-# INLINE noPositionCallback #-}
instance PToJSVal PositionCallback where pToJSVal (PositionCallback r) = jsval r
instance ToJSVal PositionCallback where toJSVal = return . pToJSVal

newtype PositionErrorCallback = PositionErrorCallback (Callback (JSVal -> IO ()))
noPositionErrorCallback :: Maybe PositionErrorCallback
noPositionErrorCallback = Nothing
{-# INLINE noPositionErrorCallback #-}
instance PToJSVal PositionErrorCallback where pToJSVal (PositionErrorCallback r) = jsval r
instance ToJSVal PositionErrorCallback where toJSVal = return . pToJSVal

newtype QueuingStrategySize = QueuingStrategySize (Callback (JSVal -> IO ()))
noQueuingStrategySize :: Maybe QueuingStrategySize
noQueuingStrategySize = Nothing
{-# INLINE noQueuingStrategySize #-}
instance PToJSVal QueuingStrategySize where pToJSVal (QueuingStrategySize r) = jsval r
instance ToJSVal QueuingStrategySize where toJSVal = return . pToJSVal

newtype RTCPeerConnectionErrorCallback = RTCPeerConnectionErrorCallback (Callback (JSVal -> IO ()))
noRTCPeerConnectionErrorCallback :: Maybe RTCPeerConnectionErrorCallback
noRTCPeerConnectionErrorCallback = Nothing
{-# INLINE noRTCPeerConnectionErrorCallback #-}
instance PToJSVal RTCPeerConnectionErrorCallback where pToJSVal (RTCPeerConnectionErrorCallback r) = jsval r
instance ToJSVal RTCPeerConnectionErrorCallback where toJSVal = return . pToJSVal

newtype RTCSessionDescriptionCallback = RTCSessionDescriptionCallback (Callback (JSVal -> IO ()))
noRTCSessionDescriptionCallback :: Maybe RTCSessionDescriptionCallback
noRTCSessionDescriptionCallback = Nothing
{-# INLINE noRTCSessionDescriptionCallback #-}
instance PToJSVal RTCSessionDescriptionCallback where pToJSVal (RTCSessionDescriptionCallback r) = jsval r
instance ToJSVal RTCSessionDescriptionCallback where toJSVal = return . pToJSVal

newtype RemotePlaybackAvailabilityCallback = RemotePlaybackAvailabilityCallback (Callback (JSVal -> IO ()))
noRemotePlaybackAvailabilityCallback :: Maybe RemotePlaybackAvailabilityCallback
noRemotePlaybackAvailabilityCallback = Nothing
{-# INLINE noRemotePlaybackAvailabilityCallback #-}
instance PToJSVal RemotePlaybackAvailabilityCallback where pToJSVal (RemotePlaybackAvailabilityCallback r) = jsval r
instance ToJSVal RemotePlaybackAvailabilityCallback where toJSVal = return . pToJSVal

newtype ReportingObserverCallback = ReportingObserverCallback (Callback (JSVal -> IO ()))
noReportingObserverCallback :: Maybe ReportingObserverCallback
noReportingObserverCallback = Nothing
{-# INLINE noReportingObserverCallback #-}
instance PToJSVal ReportingObserverCallback where pToJSVal (ReportingObserverCallback r) = jsval r
instance ToJSVal ReportingObserverCallback where toJSVal = return . pToJSVal

newtype ResizeObserverCallback = ResizeObserverCallback (Callback (JSVal -> IO ()))
noResizeObserverCallback :: Maybe ResizeObserverCallback
noResizeObserverCallback = Nothing
{-# INLINE noResizeObserverCallback #-}
instance PToJSVal ResizeObserverCallback where pToJSVal (ResizeObserverCallback r) = jsval r
instance ToJSVal ResizeObserverCallback where toJSVal = return . pToJSVal

newtype SchedulerPostTaskCallback = SchedulerPostTaskCallback (Callback (JSVal -> IO ()))
noSchedulerPostTaskCallback :: Maybe SchedulerPostTaskCallback
noSchedulerPostTaskCallback = Nothing
{-# INLINE noSchedulerPostTaskCallback #-}
instance PToJSVal SchedulerPostTaskCallback where pToJSVal (SchedulerPostTaskCallback r) = jsval r
instance ToJSVal SchedulerPostTaskCallback where toJSVal = return . pToJSVal

newtype VideoFrameOutputCallback = VideoFrameOutputCallback (Callback (JSVal -> IO ()))
noVideoFrameOutputCallback :: Maybe VideoFrameOutputCallback
noVideoFrameOutputCallback = Nothing
{-# INLINE noVideoFrameOutputCallback #-}
instance PToJSVal VideoFrameOutputCallback where pToJSVal (VideoFrameOutputCallback r) = jsval r
instance ToJSVal VideoFrameOutputCallback where toJSVal = return . pToJSVal

newtype VideoFrameRequestCallback = VideoFrameRequestCallback (Callback (JSVal -> IO ()))
noVideoFrameRequestCallback :: Maybe VideoFrameRequestCallback
noVideoFrameRequestCallback = Nothing
{-# INLINE noVideoFrameRequestCallback #-}
instance PToJSVal VideoFrameRequestCallback where pToJSVal (VideoFrameRequestCallback r) = jsval r
instance ToJSVal VideoFrameRequestCallback where toJSVal = return . pToJSVal

newtype ViewTransitionUpdateCallback = ViewTransitionUpdateCallback (Callback (JSVal -> IO ()))
noViewTransitionUpdateCallback :: Maybe ViewTransitionUpdateCallback
noViewTransitionUpdateCallback = Nothing
{-# INLINE noViewTransitionUpdateCallback #-}
instance PToJSVal ViewTransitionUpdateCallback where pToJSVal (ViewTransitionUpdateCallback r) = jsval r
instance ToJSVal ViewTransitionUpdateCallback where toJSVal = return . pToJSVal

newtype VoidFunction = VoidFunction (Callback (JSVal -> IO ()))
noVoidFunction :: Maybe VoidFunction
noVoidFunction = Nothing
{-# INLINE noVoidFunction #-}
instance PToJSVal VoidFunction where pToJSVal (VoidFunction r) = jsval r
instance ToJSVal VoidFunction where toJSVal = return . pToJSVal

newtype WebCodecsErrorCallback = WebCodecsErrorCallback (Callback (JSVal -> IO ()))
noWebCodecsErrorCallback :: Maybe WebCodecsErrorCallback
noWebCodecsErrorCallback = Nothing
{-# INLINE noWebCodecsErrorCallback #-}
instance PToJSVal WebCodecsErrorCallback where pToJSVal (WebCodecsErrorCallback r) = jsval r
instance ToJSVal WebCodecsErrorCallback where toJSVal = return . pToJSVal

newtype XPathNSResolver = XPathNSResolver (Callback (JSVal -> IO ()))
noXPathNSResolver :: Maybe XPathNSResolver
noXPathNSResolver = Nothing
{-# INLINE noXPathNSResolver #-}
instance PToJSVal XPathNSResolver where pToJSVal (XPathNSResolver r) = jsval r
instance ToJSVal XPathNSResolver where toJSVal = return . pToJSVal

-- | Functions for this interface are in "GHCJS.DOM.ANGLE_instanced_arrays" (ANGLE_instanced_arrays).
newtype ANGLE_instanced_arrays = ANGLE_instanced_arrays { unANGLE_instanced_arrays :: JSVal }

instance Eq ANGLE_instanced_arrays where
  (ANGLE_instanced_arrays a) == (ANGLE_instanced_arrays b) = js_eq a b

instance PToJSVal ANGLE_instanced_arrays where
  pToJSVal = unANGLE_instanced_arrays
  {-# INLINE pToJSVal #-}

instance PFromJSVal ANGLE_instanced_arrays where
  pFromJSVal = ANGLE_instanced_arrays
  {-# INLINE pFromJSVal #-}

instance ToJSVal ANGLE_instanced_arrays where
  toJSVal = return . unANGLE_instanced_arrays
  {-# INLINE toJSVal #-}

instance FromJSVal ANGLE_instanced_arrays where
  fromJSVal = return . fmap ANGLE_instanced_arrays . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ANGLE_instanced_arrays
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ANGLE_instanced_arrays where
  typeGType _ = gTypeANGLE_instanced_arrays
  {-# INLINE typeGType #-}

noANGLE_instanced_arrays :: Maybe ANGLE_instanced_arrays
noANGLE_instanced_arrays = Nothing
{-# INLINE noANGLE_instanced_arrays #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeANGLE_instanced_arrays :: GType

-- | Functions for this interface are in "GHCJS.DOM.ARIAMixin" (wai-aria-1.3).
newtype ARIAMixin = ARIAMixin { unARIAMixin :: JSVal }

instance Eq ARIAMixin where
  (ARIAMixin a) == (ARIAMixin b) = js_eq a b

instance PToJSVal ARIAMixin where
  pToJSVal = unARIAMixin
  {-# INLINE pToJSVal #-}

instance PFromJSVal ARIAMixin where
  pFromJSVal = ARIAMixin
  {-# INLINE pFromJSVal #-}

instance ToJSVal ARIAMixin where
  toJSVal = return . unARIAMixin
  {-# INLINE toJSVal #-}

instance FromJSVal ARIAMixin where
  fromJSVal = return . fmap ARIAMixin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ARIAMixin
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsARIAMixin o
toARIAMixin :: IsARIAMixin o => o -> ARIAMixin
toARIAMixin = ARIAMixin . coerce

instance IsARIAMixin ARIAMixin

instance IsGObject ARIAMixin where
  typeGType _ = gTypeARIAMixin
  {-# INLINE typeGType #-}

noARIAMixin :: Maybe ARIAMixin
noARIAMixin = Nothing
{-# INLINE noARIAMixin #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeARIAMixin :: GType

-- | Functions for this interface are in "GHCJS.DOM.ARIANotifyMixin" (wai-aria-1.3).
newtype ARIANotifyMixin = ARIANotifyMixin { unARIANotifyMixin :: JSVal }

instance Eq ARIANotifyMixin where
  (ARIANotifyMixin a) == (ARIANotifyMixin b) = js_eq a b

instance PToJSVal ARIANotifyMixin where
  pToJSVal = unARIANotifyMixin
  {-# INLINE pToJSVal #-}

instance PFromJSVal ARIANotifyMixin where
  pFromJSVal = ARIANotifyMixin
  {-# INLINE pFromJSVal #-}

instance ToJSVal ARIANotifyMixin where
  toJSVal = return . unARIANotifyMixin
  {-# INLINE toJSVal #-}

instance FromJSVal ARIANotifyMixin where
  fromJSVal = return . fmap ARIANotifyMixin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ARIANotifyMixin
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsARIANotifyMixin o
toARIANotifyMixin :: IsARIANotifyMixin o => o -> ARIANotifyMixin
toARIANotifyMixin = ARIANotifyMixin . coerce

instance IsARIANotifyMixin ARIANotifyMixin

instance IsGObject ARIANotifyMixin where
  typeGType _ = gTypeARIANotifyMixin
  {-# INLINE typeGType #-}

noARIANotifyMixin :: Maybe ARIANotifyMixin
noARIANotifyMixin = Nothing
{-# INLINE noARIANotifyMixin #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeARIANotifyMixin :: GType

-- | Dictionary AacEncoderConfig (webcodecs-aac-codec-registration)
newtype AacEncoderConfig = AacEncoderConfig { unAacEncoderConfig :: JSVal }

instance Eq AacEncoderConfig where
  (AacEncoderConfig a) == (AacEncoderConfig b) = js_eq a b

instance PToJSVal AacEncoderConfig where
  pToJSVal = unAacEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal AacEncoderConfig where
  pFromJSVal = AacEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal AacEncoderConfig where
  toJSVal = return . unAacEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal AacEncoderConfig where
  fromJSVal = return . fmap AacEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AacEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AacEncoderConfig where
  typeGType _ = gTypeAacEncoderConfig
  {-# INLINE typeGType #-}

noAacEncoderConfig :: Maybe AacEncoderConfig
noAacEncoderConfig = Nothing
{-# INLINE noAacEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAacEncoderConfig :: GType

-- | Functions for this interface are in "GHCJS.DOM.AbortController" (dom).
newtype AbortController = AbortController { unAbortController :: JSVal }

instance Eq AbortController where
  (AbortController a) == (AbortController b) = js_eq a b

instance PToJSVal AbortController where
  pToJSVal = unAbortController
  {-# INLINE pToJSVal #-}

instance PFromJSVal AbortController where
  pFromJSVal = AbortController
  {-# INLINE pFromJSVal #-}

instance ToJSVal AbortController where
  toJSVal = return . unAbortController
  {-# INLINE toJSVal #-}

instance FromJSVal AbortController where
  fromJSVal = return . fmap AbortController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AbortController
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAbortController o
toAbortController :: IsAbortController o => o -> AbortController
toAbortController = AbortController . coerce

instance IsAbortController AbortController

instance IsGObject AbortController where
  typeGType _ = gTypeAbortController
  {-# INLINE typeGType #-}

noAbortController :: Maybe AbortController
noAbortController = Nothing
{-# INLINE noAbortController #-}

foreign import javascript unsafe "(() => globalThis[\"AbortController\"])" gTypeAbortController :: GType

-- | Functions for this interface are in "GHCJS.DOM.AbortSignal" (dom).
newtype AbortSignal = AbortSignal { unAbortSignal :: JSVal }

instance Eq AbortSignal where
  (AbortSignal a) == (AbortSignal b) = js_eq a b

instance PToJSVal AbortSignal where
  pToJSVal = unAbortSignal
  {-# INLINE pToJSVal #-}

instance PFromJSVal AbortSignal where
  pFromJSVal = AbortSignal
  {-# INLINE pFromJSVal #-}

instance ToJSVal AbortSignal where
  toJSVal = return . unAbortSignal
  {-# INLINE toJSVal #-}

instance FromJSVal AbortSignal where
  fromJSVal = return . fmap AbortSignal . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AbortSignal
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject o) => IsAbortSignal o
toAbortSignal :: IsAbortSignal o => o -> AbortSignal
toAbortSignal = AbortSignal . coerce

instance IsAbortSignal AbortSignal
instance IsEventTarget AbortSignal

instance IsGObject AbortSignal where
  typeGType _ = gTypeAbortSignal
  {-# INLINE typeGType #-}

noAbortSignal :: Maybe AbortSignal
noAbortSignal = Nothing
{-# INLINE noAbortSignal #-}

foreign import javascript unsafe "(() => globalThis[\"AbortSignal\"])" gTypeAbortSignal :: GType

-- | Functions for this interface are in "GHCJS.DOM.AbstractRange" (dom).
newtype AbstractRange = AbstractRange { unAbstractRange :: JSVal }

instance Eq AbstractRange where
  (AbstractRange a) == (AbstractRange b) = js_eq a b

instance PToJSVal AbstractRange where
  pToJSVal = unAbstractRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal AbstractRange where
  pFromJSVal = AbstractRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal AbstractRange where
  toJSVal = return . unAbstractRange
  {-# INLINE toJSVal #-}

instance FromJSVal AbstractRange where
  fromJSVal = return . fmap AbstractRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AbstractRange
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAbstractRange o
toAbstractRange :: IsAbstractRange o => o -> AbstractRange
toAbstractRange = AbstractRange . coerce

instance IsAbstractRange AbstractRange

instance IsGObject AbstractRange where
  typeGType _ = gTypeAbstractRange
  {-# INLINE typeGType #-}

noAbstractRange :: Maybe AbstractRange
noAbstractRange = Nothing
{-# INLINE noAbstractRange #-}

foreign import javascript unsafe "(() => globalThis[\"AbstractRange\"])" gTypeAbstractRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.AbstractWorker" (html).
newtype AbstractWorker = AbstractWorker { unAbstractWorker :: JSVal }

instance Eq AbstractWorker where
  (AbstractWorker a) == (AbstractWorker b) = js_eq a b

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 = return . fmap AbstractWorker . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AbstractWorker
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAbstractWorker o
toAbstractWorker :: IsAbstractWorker o => o -> AbstractWorker
toAbstractWorker = AbstractWorker . coerce

instance IsAbstractWorker AbstractWorker

instance IsGObject AbstractWorker where
  typeGType _ = gTypeAbstractWorker
  {-# INLINE typeGType #-}

noAbstractWorker :: Maybe AbstractWorker
noAbstractWorker = Nothing
{-# INLINE noAbstractWorker #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAbstractWorker :: GType

-- | Dictionary AddEventListenerOptions (dom)
newtype AddEventListenerOptions = AddEventListenerOptions { unAddEventListenerOptions :: JSVal }

instance Eq AddEventListenerOptions where
  (AddEventListenerOptions a) == (AddEventListenerOptions b) = js_eq a b

instance PToJSVal AddEventListenerOptions where
  pToJSVal = unAddEventListenerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AddEventListenerOptions where
  pFromJSVal = AddEventListenerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AddEventListenerOptions where
  toJSVal = return . unAddEventListenerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AddEventListenerOptions where
  fromJSVal = return . fmap AddEventListenerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AddEventListenerOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsEventListenerOptions AddEventListenerOptions

instance IsGObject AddEventListenerOptions where
  typeGType _ = gTypeAddEventListenerOptions
  {-# INLINE typeGType #-}

noAddEventListenerOptions :: Maybe AddEventListenerOptions
noAddEventListenerOptions = Nothing
{-# INLINE noAddEventListenerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAddEventListenerOptions :: GType

-- | Dictionary AddressErrors (payment-request)
newtype AddressErrors = AddressErrors { unAddressErrors :: JSVal }

instance Eq AddressErrors where
  (AddressErrors a) == (AddressErrors b) = js_eq a b

instance PToJSVal AddressErrors where
  pToJSVal = unAddressErrors
  {-# INLINE pToJSVal #-}

instance PFromJSVal AddressErrors where
  pFromJSVal = AddressErrors
  {-# INLINE pFromJSVal #-}

instance ToJSVal AddressErrors where
  toJSVal = return . unAddressErrors
  {-# INLINE toJSVal #-}

instance FromJSVal AddressErrors where
  fromJSVal = return . fmap AddressErrors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AddressErrors
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AddressErrors where
  typeGType _ = gTypeAddressErrors
  {-# INLINE typeGType #-}

noAddressErrors :: Maybe AddressErrors
noAddressErrors = Nothing
{-# INLINE noAddressErrors #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAddressErrors :: GType

-- | Dictionary AllAcceptedCredentialsOptions (webauthn-4)
newtype AllAcceptedCredentialsOptions = AllAcceptedCredentialsOptions { unAllAcceptedCredentialsOptions :: JSVal }

instance Eq AllAcceptedCredentialsOptions where
  (AllAcceptedCredentialsOptions a) == (AllAcceptedCredentialsOptions b) = js_eq a b

instance PToJSVal AllAcceptedCredentialsOptions where
  pToJSVal = unAllAcceptedCredentialsOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AllAcceptedCredentialsOptions where
  pFromJSVal = AllAcceptedCredentialsOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AllAcceptedCredentialsOptions where
  toJSVal = return . unAllAcceptedCredentialsOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AllAcceptedCredentialsOptions where
  fromJSVal = return . fmap AllAcceptedCredentialsOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AllAcceptedCredentialsOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AllAcceptedCredentialsOptions where
  typeGType _ = gTypeAllAcceptedCredentialsOptions
  {-# INLINE typeGType #-}

noAllAcceptedCredentialsOptions :: Maybe AllAcceptedCredentialsOptions
noAllAcceptedCredentialsOptions = Nothing
{-# INLINE noAllAcceptedCredentialsOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAllAcceptedCredentialsOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnalyserNode" (webaudio-1.1).
newtype AnalyserNode = AnalyserNode { unAnalyserNode :: JSVal }

instance Eq AnalyserNode where
  (AnalyserNode a) == (AnalyserNode b) = js_eq a b

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 = return . fmap AnalyserNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnalyserNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode AnalyserNode
instance IsEventTarget AnalyserNode

instance IsGObject AnalyserNode where
  typeGType _ = gTypeAnalyserNode
  {-# INLINE typeGType #-}

noAnalyserNode :: Maybe AnalyserNode
noAnalyserNode = Nothing
{-# INLINE noAnalyserNode #-}

foreign import javascript unsafe "(() => globalThis[\"AnalyserNode\"])" gTypeAnalyserNode :: GType

-- | Dictionary AnalyserOptions (webaudio-1.1)
newtype AnalyserOptions = AnalyserOptions { unAnalyserOptions :: JSVal }

instance Eq AnalyserOptions where
  (AnalyserOptions a) == (AnalyserOptions b) = js_eq a b

instance PToJSVal AnalyserOptions where
  pToJSVal = unAnalyserOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnalyserOptions where
  pFromJSVal = AnalyserOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnalyserOptions where
  toJSVal = return . unAnalyserOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AnalyserOptions where
  fromJSVal = return . fmap AnalyserOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnalyserOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions AnalyserOptions

instance IsGObject AnalyserOptions where
  typeGType _ = gTypeAnalyserOptions
  {-# INLINE typeGType #-}

noAnalyserOptions :: Maybe AnalyserOptions
noAnalyserOptions = Nothing
{-# INLINE noAnalyserOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAnalyserOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Animatable" (web-animations-1).
newtype Animatable = Animatable { unAnimatable :: JSVal }

instance Eq Animatable where
  (Animatable a) == (Animatable b) = js_eq a b

instance PToJSVal Animatable where
  pToJSVal = unAnimatable
  {-# INLINE pToJSVal #-}

instance PFromJSVal Animatable where
  pFromJSVal = Animatable
  {-# INLINE pFromJSVal #-}

instance ToJSVal Animatable where
  toJSVal = return . unAnimatable
  {-# INLINE toJSVal #-}

instance FromJSVal Animatable where
  fromJSVal = return . fmap Animatable . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Animatable
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAnimatable o
toAnimatable :: IsAnimatable o => o -> Animatable
toAnimatable = Animatable . coerce

instance IsAnimatable Animatable

instance IsGObject Animatable where
  typeGType _ = gTypeAnimatable
  {-# INLINE typeGType #-}

noAnimatable :: Maybe Animatable
noAnimatable = Nothing
{-# INLINE noAnimatable #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAnimatable :: GType

-- | Functions for this interface are in "GHCJS.DOM.Animation" (web-animations-1).
newtype Animation = Animation { unAnimation :: JSVal }

instance Eq Animation where
  (Animation a) == (Animation b) = js_eq a b

instance PToJSVal Animation where
  pToJSVal = unAnimation
  {-# INLINE pToJSVal #-}

instance PFromJSVal Animation where
  pFromJSVal = Animation
  {-# INLINE pFromJSVal #-}

instance ToJSVal Animation where
  toJSVal = return . unAnimation
  {-# INLINE toJSVal #-}

instance FromJSVal Animation where
  fromJSVal = return . fmap Animation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Animation
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject o) => IsAnimation o
toAnimation :: IsAnimation o => o -> Animation
toAnimation = Animation . coerce

instance IsAnimation Animation
instance IsEventTarget Animation

instance IsGObject Animation where
  typeGType _ = gTypeAnimation
  {-# INLINE typeGType #-}

noAnimation :: Maybe Animation
noAnimation = Nothing
{-# INLINE noAnimation #-}

foreign import javascript unsafe "(() => globalThis[\"Animation\"])" gTypeAnimation :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnimationEffect" (web-animations-1).
newtype AnimationEffect = AnimationEffect { unAnimationEffect :: JSVal }

instance Eq AnimationEffect where
  (AnimationEffect a) == (AnimationEffect b) = js_eq a b

instance PToJSVal AnimationEffect where
  pToJSVal = unAnimationEffect
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationEffect where
  pFromJSVal = AnimationEffect
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationEffect where
  toJSVal = return . unAnimationEffect
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationEffect where
  fromJSVal = return . fmap AnimationEffect . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationEffect
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAnimationEffect o
toAnimationEffect :: IsAnimationEffect o => o -> AnimationEffect
toAnimationEffect = AnimationEffect . coerce

instance IsAnimationEffect AnimationEffect

instance IsGObject AnimationEffect where
  typeGType _ = gTypeAnimationEffect
  {-# INLINE typeGType #-}

noAnimationEffect :: Maybe AnimationEffect
noAnimationEffect = Nothing
{-# INLINE noAnimationEffect #-}

foreign import javascript unsafe "(() => globalThis[\"AnimationEffect\"])" gTypeAnimationEffect :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnimationEvent" (css-animations-1).
newtype AnimationEvent = AnimationEvent { unAnimationEvent :: JSVal }

instance Eq AnimationEvent where
  (AnimationEvent a) == (AnimationEvent b) = js_eq a b

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 = return . fmap AnimationEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent AnimationEvent

instance IsGObject AnimationEvent where
  typeGType _ = gTypeAnimationEvent
  {-# INLINE typeGType #-}

noAnimationEvent :: Maybe AnimationEvent
noAnimationEvent = Nothing
{-# INLINE noAnimationEvent #-}

foreign import javascript unsafe "(() => globalThis[\"AnimationEvent\"])" gTypeAnimationEvent :: GType

-- | Dictionary AnimationEventInit (css-animations-1)
newtype AnimationEventInit = AnimationEventInit { unAnimationEventInit :: JSVal }

instance Eq AnimationEventInit where
  (AnimationEventInit a) == (AnimationEventInit b) = js_eq a b

instance PToJSVal AnimationEventInit where
  pToJSVal = unAnimationEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationEventInit where
  pFromJSVal = AnimationEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationEventInit where
  toJSVal = return . unAnimationEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationEventInit where
  fromJSVal = return . fmap AnimationEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit AnimationEventInit

instance IsGObject AnimationEventInit where
  typeGType _ = gTypeAnimationEventInit
  {-# INLINE typeGType #-}

noAnimationEventInit :: Maybe AnimationEventInit
noAnimationEventInit = Nothing
{-# INLINE noAnimationEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAnimationEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnimationFrameProvider" (html).
newtype AnimationFrameProvider = AnimationFrameProvider { unAnimationFrameProvider :: JSVal }

instance Eq AnimationFrameProvider where
  (AnimationFrameProvider a) == (AnimationFrameProvider b) = js_eq a b

instance PToJSVal AnimationFrameProvider where
  pToJSVal = unAnimationFrameProvider
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationFrameProvider where
  pFromJSVal = AnimationFrameProvider
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationFrameProvider where
  toJSVal = return . unAnimationFrameProvider
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationFrameProvider where
  fromJSVal = return . fmap AnimationFrameProvider . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationFrameProvider
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAnimationFrameProvider o
toAnimationFrameProvider :: IsAnimationFrameProvider o => o -> AnimationFrameProvider
toAnimationFrameProvider = AnimationFrameProvider . coerce

instance IsAnimationFrameProvider AnimationFrameProvider

instance IsGObject AnimationFrameProvider where
  typeGType _ = gTypeAnimationFrameProvider
  {-# INLINE typeGType #-}

noAnimationFrameProvider :: Maybe AnimationFrameProvider
noAnimationFrameProvider = Nothing
{-# INLINE noAnimationFrameProvider #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAnimationFrameProvider :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnimationPlaybackEvent" (web-animations-2).
newtype AnimationPlaybackEvent = AnimationPlaybackEvent { unAnimationPlaybackEvent :: JSVal }

instance Eq AnimationPlaybackEvent where
  (AnimationPlaybackEvent a) == (AnimationPlaybackEvent b) = js_eq a b

instance PToJSVal AnimationPlaybackEvent where
  pToJSVal = unAnimationPlaybackEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationPlaybackEvent where
  pFromJSVal = AnimationPlaybackEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationPlaybackEvent where
  toJSVal = return . unAnimationPlaybackEvent
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationPlaybackEvent where
  fromJSVal = return . fmap AnimationPlaybackEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationPlaybackEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent AnimationPlaybackEvent

instance IsGObject AnimationPlaybackEvent where
  typeGType _ = gTypeAnimationPlaybackEvent
  {-# INLINE typeGType #-}

noAnimationPlaybackEvent :: Maybe AnimationPlaybackEvent
noAnimationPlaybackEvent = Nothing
{-# INLINE noAnimationPlaybackEvent #-}

foreign import javascript unsafe "(() => globalThis[\"AnimationPlaybackEvent\"])" gTypeAnimationPlaybackEvent :: GType

-- | Dictionary AnimationPlaybackEventInit (web-animations-2)
newtype AnimationPlaybackEventInit = AnimationPlaybackEventInit { unAnimationPlaybackEventInit :: JSVal }

instance Eq AnimationPlaybackEventInit where
  (AnimationPlaybackEventInit a) == (AnimationPlaybackEventInit b) = js_eq a b

instance PToJSVal AnimationPlaybackEventInit where
  pToJSVal = unAnimationPlaybackEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationPlaybackEventInit where
  pFromJSVal = AnimationPlaybackEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationPlaybackEventInit where
  toJSVal = return . unAnimationPlaybackEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationPlaybackEventInit where
  fromJSVal = return . fmap AnimationPlaybackEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationPlaybackEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit AnimationPlaybackEventInit

instance IsGObject AnimationPlaybackEventInit where
  typeGType _ = gTypeAnimationPlaybackEventInit
  {-# INLINE typeGType #-}

noAnimationPlaybackEventInit :: Maybe AnimationPlaybackEventInit
noAnimationPlaybackEventInit = Nothing
{-# INLINE noAnimationPlaybackEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAnimationPlaybackEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnimationTimeline" (web-animations-1).
newtype AnimationTimeline = AnimationTimeline { unAnimationTimeline :: JSVal }

instance Eq AnimationTimeline where
  (AnimationTimeline a) == (AnimationTimeline b) = js_eq a b

instance PToJSVal AnimationTimeline where
  pToJSVal = unAnimationTimeline
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationTimeline where
  pFromJSVal = AnimationTimeline
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationTimeline where
  toJSVal = return . unAnimationTimeline
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationTimeline where
  fromJSVal = return . fmap AnimationTimeline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationTimeline
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAnimationTimeline o
toAnimationTimeline :: IsAnimationTimeline o => o -> AnimationTimeline
toAnimationTimeline = AnimationTimeline . coerce

instance IsAnimationTimeline AnimationTimeline

instance IsGObject AnimationTimeline where
  typeGType _ = gTypeAnimationTimeline
  {-# INLINE typeGType #-}

noAnimationTimeline :: Maybe AnimationTimeline
noAnimationTimeline = Nothing
{-# INLINE noAnimationTimeline #-}

foreign import javascript unsafe "(() => globalThis[\"AnimationTimeline\"])" gTypeAnimationTimeline :: GType

-- | Functions for this interface are in "GHCJS.DOM.AnimationTrigger" (animation-triggers-1).
newtype AnimationTrigger = AnimationTrigger { unAnimationTrigger :: JSVal }

instance Eq AnimationTrigger where
  (AnimationTrigger a) == (AnimationTrigger b) = js_eq a b

instance PToJSVal AnimationTrigger where
  pToJSVal = unAnimationTrigger
  {-# INLINE pToJSVal #-}

instance PFromJSVal AnimationTrigger where
  pFromJSVal = AnimationTrigger
  {-# INLINE pFromJSVal #-}

instance ToJSVal AnimationTrigger where
  toJSVal = return . unAnimationTrigger
  {-# INLINE toJSVal #-}

instance FromJSVal AnimationTrigger where
  fromJSVal = return . fmap AnimationTrigger . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AnimationTrigger
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AnimationTrigger where
  typeGType _ = gTypeAnimationTrigger
  {-# INLINE typeGType #-}

noAnimationTrigger :: Maybe AnimationTrigger
noAnimationTrigger = Nothing
{-# INLINE noAnimationTrigger #-}

foreign import javascript unsafe "(() => globalThis[\"AnimationTrigger\"])" gTypeAnimationTrigger :: GType

-- | Dictionary AriaNotificationOptions (wai-aria-1.3)
newtype AriaNotificationOptions = AriaNotificationOptions { unAriaNotificationOptions :: JSVal }

instance Eq AriaNotificationOptions where
  (AriaNotificationOptions a) == (AriaNotificationOptions b) = js_eq a b

instance PToJSVal AriaNotificationOptions where
  pToJSVal = unAriaNotificationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AriaNotificationOptions where
  pFromJSVal = AriaNotificationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AriaNotificationOptions where
  toJSVal = return . unAriaNotificationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AriaNotificationOptions where
  fromJSVal = return . fmap AriaNotificationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AriaNotificationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AriaNotificationOptions where
  typeGType _ = gTypeAriaNotificationOptions
  {-# INLINE typeGType #-}

noAriaNotificationOptions :: Maybe AriaNotificationOptions
noAriaNotificationOptions = Nothing
{-# INLINE noAriaNotificationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAriaNotificationOptions :: GType

-- | Dictionary AssignedNodesOptions (html)
newtype AssignedNodesOptions = AssignedNodesOptions { unAssignedNodesOptions :: JSVal }

instance Eq AssignedNodesOptions where
  (AssignedNodesOptions a) == (AssignedNodesOptions b) = js_eq a b

instance PToJSVal AssignedNodesOptions where
  pToJSVal = unAssignedNodesOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AssignedNodesOptions where
  pFromJSVal = AssignedNodesOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AssignedNodesOptions where
  toJSVal = return . unAssignedNodesOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AssignedNodesOptions where
  fromJSVal = return . fmap AssignedNodesOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AssignedNodesOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AssignedNodesOptions where
  typeGType _ = gTypeAssignedNodesOptions
  {-# INLINE typeGType #-}

noAssignedNodesOptions :: Maybe AssignedNodesOptions
noAssignedNodesOptions = Nothing
{-# INLINE noAssignedNodesOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAssignedNodesOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Attr" (dom).
newtype Attr = Attr { unAttr :: JSVal }

instance Eq Attr where
  (Attr a) == (Attr b) = js_eq a b

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 = return . fmap Attr . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Attr
  {-# INLINE fromJSValUnchecked #-}

instance IsNode Attr
instance IsEventTarget Attr

instance IsGObject Attr where
  typeGType _ = gTypeAttr
  {-# INLINE typeGType #-}

noAttr :: Maybe Attr
noAttr = Nothing
{-# INLINE noAttr #-}

foreign import javascript unsafe "(() => globalThis[\"Attr\"])" gTypeAttr :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioBuffer" (webaudio-1.1).
newtype AudioBuffer = AudioBuffer { unAudioBuffer :: JSVal }

instance Eq AudioBuffer where
  (AudioBuffer a) == (AudioBuffer b) = js_eq a b

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 = return . fmap AudioBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioBuffer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioBuffer where
  typeGType _ = gTypeAudioBuffer
  {-# INLINE typeGType #-}

noAudioBuffer :: Maybe AudioBuffer
noAudioBuffer = Nothing
{-# INLINE noAudioBuffer #-}

foreign import javascript unsafe "(() => globalThis[\"AudioBuffer\"])" gTypeAudioBuffer :: GType

-- | Dictionary AudioBufferOptions (webaudio-1.1)
newtype AudioBufferOptions = AudioBufferOptions { unAudioBufferOptions :: JSVal }

instance Eq AudioBufferOptions where
  (AudioBufferOptions a) == (AudioBufferOptions b) = js_eq a b

instance PToJSVal AudioBufferOptions where
  pToJSVal = unAudioBufferOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioBufferOptions where
  pFromJSVal = AudioBufferOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioBufferOptions where
  toJSVal = return . unAudioBufferOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioBufferOptions where
  fromJSVal = return . fmap AudioBufferOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioBufferOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioBufferOptions where
  typeGType _ = gTypeAudioBufferOptions
  {-# INLINE typeGType #-}

noAudioBufferOptions :: Maybe AudioBufferOptions
noAudioBufferOptions = Nothing
{-# INLINE noAudioBufferOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioBufferOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioBufferSourceNode" (webaudio-1.1).
newtype AudioBufferSourceNode = AudioBufferSourceNode { unAudioBufferSourceNode :: JSVal }

instance Eq AudioBufferSourceNode where
  (AudioBufferSourceNode a) == (AudioBufferSourceNode b) = js_eq a b

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 = return . fmap AudioBufferSourceNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioBufferSourceNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioScheduledSourceNode AudioBufferSourceNode
instance IsAudioNode AudioBufferSourceNode
instance IsEventTarget AudioBufferSourceNode

instance IsGObject AudioBufferSourceNode where
  typeGType _ = gTypeAudioBufferSourceNode
  {-# INLINE typeGType #-}

noAudioBufferSourceNode :: Maybe AudioBufferSourceNode
noAudioBufferSourceNode = Nothing
{-# INLINE noAudioBufferSourceNode #-}

foreign import javascript unsafe "(() => globalThis[\"AudioBufferSourceNode\"])" gTypeAudioBufferSourceNode :: GType

-- | Dictionary AudioBufferSourceOptions (webaudio-1.1)
newtype AudioBufferSourceOptions = AudioBufferSourceOptions { unAudioBufferSourceOptions :: JSVal }

instance Eq AudioBufferSourceOptions where
  (AudioBufferSourceOptions a) == (AudioBufferSourceOptions b) = js_eq a b

instance PToJSVal AudioBufferSourceOptions where
  pToJSVal = unAudioBufferSourceOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioBufferSourceOptions where
  pFromJSVal = AudioBufferSourceOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioBufferSourceOptions where
  toJSVal = return . unAudioBufferSourceOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioBufferSourceOptions where
  fromJSVal = return . fmap AudioBufferSourceOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioBufferSourceOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioBufferSourceOptions where
  typeGType _ = gTypeAudioBufferSourceOptions
  {-# INLINE typeGType #-}

noAudioBufferSourceOptions :: Maybe AudioBufferSourceOptions
noAudioBufferSourceOptions = Nothing
{-# INLINE noAudioBufferSourceOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioBufferSourceOptions :: GType

-- | Dictionary AudioConfiguration (media-capabilities)
newtype AudioConfiguration = AudioConfiguration { unAudioConfiguration :: JSVal }

instance Eq AudioConfiguration where
  (AudioConfiguration a) == (AudioConfiguration b) = js_eq a b

instance PToJSVal AudioConfiguration where
  pToJSVal = unAudioConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioConfiguration where
  pFromJSVal = AudioConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioConfiguration where
  toJSVal = return . unAudioConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal AudioConfiguration where
  fromJSVal = return . fmap AudioConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioConfiguration where
  typeGType _ = gTypeAudioConfiguration
  {-# INLINE typeGType #-}

noAudioConfiguration :: Maybe AudioConfiguration
noAudioConfiguration = Nothing
{-# INLINE noAudioConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioContext" (webaudio-1.1).
newtype AudioContext = AudioContext { unAudioContext :: JSVal }

instance Eq AudioContext where
  (AudioContext a) == (AudioContext b) = js_eq a b

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 = return . fmap AudioContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioContext
  {-# INLINE fromJSValUnchecked #-}

instance IsBaseAudioContext AudioContext
instance IsEventTarget AudioContext

instance IsGObject AudioContext where
  typeGType _ = gTypeAudioContext
  {-# INLINE typeGType #-}

noAudioContext :: Maybe AudioContext
noAudioContext = Nothing
{-# INLINE noAudioContext #-}

foreign import javascript unsafe "(() => globalThis[\"AudioContext\"])" gTypeAudioContext :: GType

-- | Dictionary AudioContextOptions (webaudio-1.1)
newtype AudioContextOptions = AudioContextOptions { unAudioContextOptions :: JSVal }

instance Eq AudioContextOptions where
  (AudioContextOptions a) == (AudioContextOptions b) = js_eq a b

instance PToJSVal AudioContextOptions where
  pToJSVal = unAudioContextOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioContextOptions where
  pFromJSVal = AudioContextOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioContextOptions where
  toJSVal = return . unAudioContextOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioContextOptions where
  fromJSVal = return . fmap AudioContextOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioContextOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioContextOptions where
  typeGType _ = gTypeAudioContextOptions
  {-# INLINE typeGType #-}

noAudioContextOptions :: Maybe AudioContextOptions
noAudioContextOptions = Nothing
{-# INLINE noAudioContextOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioContextOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioData" (webcodecs).
newtype AudioData = AudioData { unAudioData :: JSVal }

instance Eq AudioData where
  (AudioData a) == (AudioData b) = js_eq a b

instance PToJSVal AudioData where
  pToJSVal = unAudioData
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioData where
  pFromJSVal = AudioData
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioData where
  toJSVal = return . unAudioData
  {-# INLINE toJSVal #-}

instance FromJSVal AudioData where
  fromJSVal = return . fmap AudioData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioData
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioData where
  typeGType _ = gTypeAudioData
  {-# INLINE typeGType #-}

noAudioData :: Maybe AudioData
noAudioData = Nothing
{-# INLINE noAudioData #-}

foreign import javascript unsafe "(() => globalThis[\"AudioData\"])" gTypeAudioData :: GType

-- | Dictionary AudioDataCopyToOptions (webcodecs)
newtype AudioDataCopyToOptions = AudioDataCopyToOptions { unAudioDataCopyToOptions :: JSVal }

instance Eq AudioDataCopyToOptions where
  (AudioDataCopyToOptions a) == (AudioDataCopyToOptions b) = js_eq a b

instance PToJSVal AudioDataCopyToOptions where
  pToJSVal = unAudioDataCopyToOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioDataCopyToOptions where
  pFromJSVal = AudioDataCopyToOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioDataCopyToOptions where
  toJSVal = return . unAudioDataCopyToOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioDataCopyToOptions where
  fromJSVal = return . fmap AudioDataCopyToOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDataCopyToOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioDataCopyToOptions where
  typeGType _ = gTypeAudioDataCopyToOptions
  {-# INLINE typeGType #-}

noAudioDataCopyToOptions :: Maybe AudioDataCopyToOptions
noAudioDataCopyToOptions = Nothing
{-# INLINE noAudioDataCopyToOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioDataCopyToOptions :: GType

-- | Dictionary AudioDataInit (webcodecs)
newtype AudioDataInit = AudioDataInit { unAudioDataInit :: JSVal }

instance Eq AudioDataInit where
  (AudioDataInit a) == (AudioDataInit b) = js_eq a b

instance PToJSVal AudioDataInit where
  pToJSVal = unAudioDataInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioDataInit where
  pFromJSVal = AudioDataInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioDataInit where
  toJSVal = return . unAudioDataInit
  {-# INLINE toJSVal #-}

instance FromJSVal AudioDataInit where
  fromJSVal = return . fmap AudioDataInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDataInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioDataInit where
  typeGType _ = gTypeAudioDataInit
  {-# INLINE typeGType #-}

noAudioDataInit :: Maybe AudioDataInit
noAudioDataInit = Nothing
{-# INLINE noAudioDataInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioDataInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioDecoder" (webcodecs).
newtype AudioDecoder = AudioDecoder { unAudioDecoder :: JSVal }

instance Eq AudioDecoder where
  (AudioDecoder a) == (AudioDecoder b) = js_eq a b

instance PToJSVal AudioDecoder where
  pToJSVal = unAudioDecoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioDecoder where
  pFromJSVal = AudioDecoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioDecoder where
  toJSVal = return . unAudioDecoder
  {-# INLINE toJSVal #-}

instance FromJSVal AudioDecoder where
  fromJSVal = return . fmap AudioDecoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDecoder
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget AudioDecoder

instance IsGObject AudioDecoder where
  typeGType _ = gTypeAudioDecoder
  {-# INLINE typeGType #-}

noAudioDecoder :: Maybe AudioDecoder
noAudioDecoder = Nothing
{-# INLINE noAudioDecoder #-}

foreign import javascript unsafe "(() => globalThis[\"AudioDecoder\"])" gTypeAudioDecoder :: GType

-- | Dictionary AudioDecoderConfig (webcodecs)
newtype AudioDecoderConfig = AudioDecoderConfig { unAudioDecoderConfig :: JSVal }

instance Eq AudioDecoderConfig where
  (AudioDecoderConfig a) == (AudioDecoderConfig b) = js_eq a b

instance PToJSVal AudioDecoderConfig where
  pToJSVal = unAudioDecoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioDecoderConfig where
  pFromJSVal = AudioDecoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioDecoderConfig where
  toJSVal = return . unAudioDecoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal AudioDecoderConfig where
  fromJSVal = return . fmap AudioDecoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDecoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioDecoderConfig where
  typeGType _ = gTypeAudioDecoderConfig
  {-# INLINE typeGType #-}

noAudioDecoderConfig :: Maybe AudioDecoderConfig
noAudioDecoderConfig = Nothing
{-# INLINE noAudioDecoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioDecoderConfig :: GType

-- | Dictionary AudioDecoderInit (webcodecs)
newtype AudioDecoderInit = AudioDecoderInit { unAudioDecoderInit :: JSVal }

instance Eq AudioDecoderInit where
  (AudioDecoderInit a) == (AudioDecoderInit b) = js_eq a b

instance PToJSVal AudioDecoderInit where
  pToJSVal = unAudioDecoderInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioDecoderInit where
  pFromJSVal = AudioDecoderInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioDecoderInit where
  toJSVal = return . unAudioDecoderInit
  {-# INLINE toJSVal #-}

instance FromJSVal AudioDecoderInit where
  fromJSVal = return . fmap AudioDecoderInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDecoderInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioDecoderInit where
  typeGType _ = gTypeAudioDecoderInit
  {-# INLINE typeGType #-}

noAudioDecoderInit :: Maybe AudioDecoderInit
noAudioDecoderInit = Nothing
{-# INLINE noAudioDecoderInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioDecoderInit :: GType

-- | Dictionary AudioDecoderSupport (webcodecs)
newtype AudioDecoderSupport = AudioDecoderSupport { unAudioDecoderSupport :: JSVal }

instance Eq AudioDecoderSupport where
  (AudioDecoderSupport a) == (AudioDecoderSupport b) = js_eq a b

instance PToJSVal AudioDecoderSupport where
  pToJSVal = unAudioDecoderSupport
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioDecoderSupport where
  pFromJSVal = AudioDecoderSupport
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioDecoderSupport where
  toJSVal = return . unAudioDecoderSupport
  {-# INLINE toJSVal #-}

instance FromJSVal AudioDecoderSupport where
  fromJSVal = return . fmap AudioDecoderSupport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDecoderSupport
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioDecoderSupport where
  typeGType _ = gTypeAudioDecoderSupport
  {-# INLINE typeGType #-}

noAudioDecoderSupport :: Maybe AudioDecoderSupport
noAudioDecoderSupport = Nothing
{-# INLINE noAudioDecoderSupport #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioDecoderSupport :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioDestinationNode" (webaudio-1.1).
newtype AudioDestinationNode = AudioDestinationNode { unAudioDestinationNode :: JSVal }

instance Eq AudioDestinationNode where
  (AudioDestinationNode a) == (AudioDestinationNode b) = js_eq a b

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 = return . fmap AudioDestinationNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioDestinationNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode AudioDestinationNode
instance IsEventTarget AudioDestinationNode

instance IsGObject AudioDestinationNode where
  typeGType _ = gTypeAudioDestinationNode
  {-# INLINE typeGType #-}

noAudioDestinationNode :: Maybe AudioDestinationNode
noAudioDestinationNode = Nothing
{-# INLINE noAudioDestinationNode #-}

foreign import javascript unsafe "(() => globalThis[\"AudioDestinationNode\"])" gTypeAudioDestinationNode :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioEncoder" (webcodecs).
newtype AudioEncoder = AudioEncoder { unAudioEncoder :: JSVal }

instance Eq AudioEncoder where
  (AudioEncoder a) == (AudioEncoder b) = js_eq a b

instance PToJSVal AudioEncoder where
  pToJSVal = unAudioEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioEncoder where
  pFromJSVal = AudioEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioEncoder where
  toJSVal = return . unAudioEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal AudioEncoder where
  fromJSVal = return . fmap AudioEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget AudioEncoder

instance IsGObject AudioEncoder where
  typeGType _ = gTypeAudioEncoder
  {-# INLINE typeGType #-}

noAudioEncoder :: Maybe AudioEncoder
noAudioEncoder = Nothing
{-# INLINE noAudioEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"AudioEncoder\"])" gTypeAudioEncoder :: GType

-- | Dictionary AudioEncoderConfig (webcodecs)
newtype AudioEncoderConfig = AudioEncoderConfig { unAudioEncoderConfig :: JSVal }

instance Eq AudioEncoderConfig where
  (AudioEncoderConfig a) == (AudioEncoderConfig b) = js_eq a b

instance PToJSVal AudioEncoderConfig where
  pToJSVal = unAudioEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioEncoderConfig where
  pFromJSVal = AudioEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioEncoderConfig where
  toJSVal = return . unAudioEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal AudioEncoderConfig where
  fromJSVal = return . fmap AudioEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioEncoderConfig where
  typeGType _ = gTypeAudioEncoderConfig
  {-# INLINE typeGType #-}

noAudioEncoderConfig :: Maybe AudioEncoderConfig
noAudioEncoderConfig = Nothing
{-# INLINE noAudioEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioEncoderConfig :: GType

-- | Dictionary AudioEncoderInit (webcodecs)
newtype AudioEncoderInit = AudioEncoderInit { unAudioEncoderInit :: JSVal }

instance Eq AudioEncoderInit where
  (AudioEncoderInit a) == (AudioEncoderInit b) = js_eq a b

instance PToJSVal AudioEncoderInit where
  pToJSVal = unAudioEncoderInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioEncoderInit where
  pFromJSVal = AudioEncoderInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioEncoderInit where
  toJSVal = return . unAudioEncoderInit
  {-# INLINE toJSVal #-}

instance FromJSVal AudioEncoderInit where
  fromJSVal = return . fmap AudioEncoderInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioEncoderInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioEncoderInit where
  typeGType _ = gTypeAudioEncoderInit
  {-# INLINE typeGType #-}

noAudioEncoderInit :: Maybe AudioEncoderInit
noAudioEncoderInit = Nothing
{-# INLINE noAudioEncoderInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioEncoderInit :: GType

-- | Dictionary AudioEncoderSupport (webcodecs)
newtype AudioEncoderSupport = AudioEncoderSupport { unAudioEncoderSupport :: JSVal }

instance Eq AudioEncoderSupport where
  (AudioEncoderSupport a) == (AudioEncoderSupport b) = js_eq a b

instance PToJSVal AudioEncoderSupport where
  pToJSVal = unAudioEncoderSupport
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioEncoderSupport where
  pFromJSVal = AudioEncoderSupport
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioEncoderSupport where
  toJSVal = return . unAudioEncoderSupport
  {-# INLINE toJSVal #-}

instance FromJSVal AudioEncoderSupport where
  fromJSVal = return . fmap AudioEncoderSupport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioEncoderSupport
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioEncoderSupport where
  typeGType _ = gTypeAudioEncoderSupport
  {-# INLINE typeGType #-}

noAudioEncoderSupport :: Maybe AudioEncoderSupport
noAudioEncoderSupport = Nothing
{-# INLINE noAudioEncoderSupport #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioEncoderSupport :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioListener" (webaudio-1.1).
newtype AudioListener = AudioListener { unAudioListener :: JSVal }

instance Eq AudioListener where
  (AudioListener a) == (AudioListener b) = js_eq a b

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 = return . fmap AudioListener . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioListener
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioListener where
  typeGType _ = gTypeAudioListener
  {-# INLINE typeGType #-}

noAudioListener :: Maybe AudioListener
noAudioListener = Nothing
{-# INLINE noAudioListener #-}

foreign import javascript unsafe "(() => globalThis[\"AudioListener\"])" gTypeAudioListener :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioNode" (webaudio-1.1).
newtype AudioNode = AudioNode { unAudioNode :: JSVal }

instance Eq AudioNode where
  (AudioNode a) == (AudioNode b) = js_eq a b

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 = return . fmap AudioNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioNode
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject 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 #-}

noAudioNode :: Maybe AudioNode
noAudioNode = Nothing
{-# INLINE noAudioNode #-}

foreign import javascript unsafe "(() => globalThis[\"AudioNode\"])" gTypeAudioNode :: GType

-- | Dictionary AudioNodeOptions (webaudio-1.1)
newtype AudioNodeOptions = AudioNodeOptions { unAudioNodeOptions :: JSVal }

instance Eq AudioNodeOptions where
  (AudioNodeOptions a) == (AudioNodeOptions b) = js_eq a b

instance PToJSVal AudioNodeOptions where
  pToJSVal = unAudioNodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioNodeOptions where
  pFromJSVal = AudioNodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioNodeOptions where
  toJSVal = return . unAudioNodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioNodeOptions where
  fromJSVal = return . fmap AudioNodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioNodeOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAudioNodeOptions o
toAudioNodeOptions :: IsAudioNodeOptions o => o -> AudioNodeOptions
toAudioNodeOptions = AudioNodeOptions . coerce

instance IsAudioNodeOptions AudioNodeOptions

instance IsGObject AudioNodeOptions where
  typeGType _ = gTypeAudioNodeOptions
  {-# INLINE typeGType #-}

noAudioNodeOptions :: Maybe AudioNodeOptions
noAudioNodeOptions = Nothing
{-# INLINE noAudioNodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioNodeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioParam" (webaudio-1.1).
newtype AudioParam = AudioParam { unAudioParam :: JSVal }

instance Eq AudioParam where
  (AudioParam a) == (AudioParam b) = js_eq a b

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 = return . fmap AudioParam . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioParam
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioParam where
  typeGType _ = gTypeAudioParam
  {-# INLINE typeGType #-}

noAudioParam :: Maybe AudioParam
noAudioParam = Nothing
{-# INLINE noAudioParam #-}

foreign import javascript unsafe "(() => globalThis[\"AudioParam\"])" gTypeAudioParam :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioParamMap" (webaudio-1.1).
newtype AudioParamMap = AudioParamMap { unAudioParamMap :: JSVal }

instance Eq AudioParamMap where
  (AudioParamMap a) == (AudioParamMap b) = js_eq a b

instance PToJSVal AudioParamMap where
  pToJSVal = unAudioParamMap
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioParamMap where
  pFromJSVal = AudioParamMap
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioParamMap where
  toJSVal = return . unAudioParamMap
  {-# INLINE toJSVal #-}

instance FromJSVal AudioParamMap where
  fromJSVal = return . fmap AudioParamMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioParamMap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioParamMap where
  typeGType _ = gTypeAudioParamMap
  {-# INLINE typeGType #-}

noAudioParamMap :: Maybe AudioParamMap
noAudioParamMap = Nothing
{-# INLINE noAudioParamMap #-}

foreign import javascript unsafe "(() => globalThis[\"AudioParamMap\"])" gTypeAudioParamMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioProcessingEvent" (webaudio-1.1).
newtype AudioProcessingEvent = AudioProcessingEvent { unAudioProcessingEvent :: JSVal }

instance Eq AudioProcessingEvent where
  (AudioProcessingEvent a) == (AudioProcessingEvent b) = js_eq a b

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 = return . fmap AudioProcessingEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioProcessingEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent AudioProcessingEvent

instance IsGObject AudioProcessingEvent where
  typeGType _ = gTypeAudioProcessingEvent
  {-# INLINE typeGType #-}

noAudioProcessingEvent :: Maybe AudioProcessingEvent
noAudioProcessingEvent = Nothing
{-# INLINE noAudioProcessingEvent #-}

foreign import javascript unsafe "(() => globalThis[\"AudioProcessingEvent\"])" gTypeAudioProcessingEvent :: GType

-- | Dictionary AudioProcessingEventInit (webaudio-1.1)
newtype AudioProcessingEventInit = AudioProcessingEventInit { unAudioProcessingEventInit :: JSVal }

instance Eq AudioProcessingEventInit where
  (AudioProcessingEventInit a) == (AudioProcessingEventInit b) = js_eq a b

instance PToJSVal AudioProcessingEventInit where
  pToJSVal = unAudioProcessingEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioProcessingEventInit where
  pFromJSVal = AudioProcessingEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioProcessingEventInit where
  toJSVal = return . unAudioProcessingEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal AudioProcessingEventInit where
  fromJSVal = return . fmap AudioProcessingEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioProcessingEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit AudioProcessingEventInit

instance IsGObject AudioProcessingEventInit where
  typeGType _ = gTypeAudioProcessingEventInit
  {-# INLINE typeGType #-}

noAudioProcessingEventInit :: Maybe AudioProcessingEventInit
noAudioProcessingEventInit = Nothing
{-# INLINE noAudioProcessingEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioProcessingEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioScheduledSourceNode" (webaudio-1.1).
newtype AudioScheduledSourceNode = AudioScheduledSourceNode { unAudioScheduledSourceNode :: JSVal }

instance Eq AudioScheduledSourceNode where
  (AudioScheduledSourceNode a) == (AudioScheduledSourceNode b) = js_eq a b

instance PToJSVal AudioScheduledSourceNode where
  pToJSVal = unAudioScheduledSourceNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioScheduledSourceNode where
  pFromJSVal = AudioScheduledSourceNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioScheduledSourceNode where
  toJSVal = return . unAudioScheduledSourceNode
  {-# INLINE toJSVal #-}

instance FromJSVal AudioScheduledSourceNode where
  fromJSVal = return . fmap AudioScheduledSourceNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioScheduledSourceNode
  {-# INLINE fromJSValUnchecked #-}

class (IsAudioNode o, IsGObject o) => IsAudioScheduledSourceNode o
toAudioScheduledSourceNode :: IsAudioScheduledSourceNode o => o -> AudioScheduledSourceNode
toAudioScheduledSourceNode = AudioScheduledSourceNode . coerce

instance IsAudioScheduledSourceNode AudioScheduledSourceNode
instance IsAudioNode AudioScheduledSourceNode
instance IsEventTarget AudioScheduledSourceNode

instance IsGObject AudioScheduledSourceNode where
  typeGType _ = gTypeAudioScheduledSourceNode
  {-# INLINE typeGType #-}

noAudioScheduledSourceNode :: Maybe AudioScheduledSourceNode
noAudioScheduledSourceNode = Nothing
{-# INLINE noAudioScheduledSourceNode #-}

foreign import javascript unsafe "(() => globalThis[\"AudioScheduledSourceNode\"])" gTypeAudioScheduledSourceNode :: GType

-- | Dictionary AudioSinkOptions (webaudio-1.1)
newtype AudioSinkOptions = AudioSinkOptions { unAudioSinkOptions :: JSVal }

instance Eq AudioSinkOptions where
  (AudioSinkOptions a) == (AudioSinkOptions b) = js_eq a b

instance PToJSVal AudioSinkOptions where
  pToJSVal = unAudioSinkOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioSinkOptions where
  pFromJSVal = AudioSinkOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioSinkOptions where
  toJSVal = return . unAudioSinkOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioSinkOptions where
  fromJSVal = return . fmap AudioSinkOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioSinkOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioSinkOptions where
  typeGType _ = gTypeAudioSinkOptions
  {-# INLINE typeGType #-}

noAudioSinkOptions :: Maybe AudioSinkOptions
noAudioSinkOptions = Nothing
{-# INLINE noAudioSinkOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioSinkOptions :: GType

-- | Dictionary AudioTimestamp (webaudio-1.1)
newtype AudioTimestamp = AudioTimestamp { unAudioTimestamp :: JSVal }

instance Eq AudioTimestamp where
  (AudioTimestamp a) == (AudioTimestamp b) = js_eq a b

instance PToJSVal AudioTimestamp where
  pToJSVal = unAudioTimestamp
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioTimestamp where
  pFromJSVal = AudioTimestamp
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioTimestamp where
  toJSVal = return . unAudioTimestamp
  {-# INLINE toJSVal #-}

instance FromJSVal AudioTimestamp where
  fromJSVal = return . fmap AudioTimestamp . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioTimestamp
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioTimestamp where
  typeGType _ = gTypeAudioTimestamp
  {-# INLINE typeGType #-}

noAudioTimestamp :: Maybe AudioTimestamp
noAudioTimestamp = Nothing
{-# INLINE noAudioTimestamp #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioTimestamp :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioTrack" (html).
newtype AudioTrack = AudioTrack { unAudioTrack :: JSVal }

instance Eq AudioTrack where
  (AudioTrack a) == (AudioTrack b) = js_eq a b

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 = return . fmap AudioTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioTrack
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioTrack where
  typeGType _ = gTypeAudioTrack
  {-# INLINE typeGType #-}

noAudioTrack :: Maybe AudioTrack
noAudioTrack = Nothing
{-# INLINE noAudioTrack #-}

foreign import javascript unsafe "(() => globalThis[\"AudioTrack\"])" gTypeAudioTrack :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioTrackList" (html).
newtype AudioTrackList = AudioTrackList { unAudioTrackList :: JSVal }

instance Eq AudioTrackList where
  (AudioTrackList a) == (AudioTrackList b) = js_eq a b

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 = return . fmap AudioTrackList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioTrackList
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget AudioTrackList

instance IsGObject AudioTrackList where
  typeGType _ = gTypeAudioTrackList
  {-# INLINE typeGType #-}

noAudioTrackList :: Maybe AudioTrackList
noAudioTrackList = Nothing
{-# INLINE noAudioTrackList #-}

foreign import javascript unsafe "(() => globalThis[\"AudioTrackList\"])" gTypeAudioTrackList :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioWorklet" (webaudio-1.1).
newtype AudioWorklet = AudioWorklet { unAudioWorklet :: JSVal }

instance Eq AudioWorklet where
  (AudioWorklet a) == (AudioWorklet b) = js_eq a b

instance PToJSVal AudioWorklet where
  pToJSVal = unAudioWorklet
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioWorklet where
  pFromJSVal = AudioWorklet
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioWorklet where
  toJSVal = return . unAudioWorklet
  {-# INLINE toJSVal #-}

instance FromJSVal AudioWorklet where
  fromJSVal = return . fmap AudioWorklet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioWorklet
  {-# INLINE fromJSValUnchecked #-}

instance IsWorklet AudioWorklet

instance IsGObject AudioWorklet where
  typeGType _ = gTypeAudioWorklet
  {-# INLINE typeGType #-}

noAudioWorklet :: Maybe AudioWorklet
noAudioWorklet = Nothing
{-# INLINE noAudioWorklet #-}

foreign import javascript unsafe "(() => globalThis[\"AudioWorklet\"])" gTypeAudioWorklet :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioWorkletGlobalScope" (webaudio-1.1).
newtype AudioWorkletGlobalScope = AudioWorkletGlobalScope { unAudioWorkletGlobalScope :: JSVal }

instance Eq AudioWorkletGlobalScope where
  (AudioWorkletGlobalScope a) == (AudioWorkletGlobalScope b) = js_eq a b

instance PToJSVal AudioWorkletGlobalScope where
  pToJSVal = unAudioWorkletGlobalScope
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioWorkletGlobalScope where
  pFromJSVal = AudioWorkletGlobalScope
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioWorkletGlobalScope where
  toJSVal = return . unAudioWorkletGlobalScope
  {-# INLINE toJSVal #-}

instance FromJSVal AudioWorkletGlobalScope where
  fromJSVal = return . fmap AudioWorkletGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioWorkletGlobalScope
  {-# INLINE fromJSValUnchecked #-}

instance IsWorkletGlobalScope AudioWorkletGlobalScope

instance IsGObject AudioWorkletGlobalScope where
  typeGType _ = gTypeAudioWorkletGlobalScope
  {-# INLINE typeGType #-}

noAudioWorkletGlobalScope :: Maybe AudioWorkletGlobalScope
noAudioWorkletGlobalScope = Nothing
{-# INLINE noAudioWorkletGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"AudioWorkletGlobalScope\"])" gTypeAudioWorkletGlobalScope :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioWorkletNode" (webaudio-1.1).
newtype AudioWorkletNode = AudioWorkletNode { unAudioWorkletNode :: JSVal }

instance Eq AudioWorkletNode where
  (AudioWorkletNode a) == (AudioWorkletNode b) = js_eq a b

instance PToJSVal AudioWorkletNode where
  pToJSVal = unAudioWorkletNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioWorkletNode where
  pFromJSVal = AudioWorkletNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioWorkletNode where
  toJSVal = return . unAudioWorkletNode
  {-# INLINE toJSVal #-}

instance FromJSVal AudioWorkletNode where
  fromJSVal = return . fmap AudioWorkletNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioWorkletNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode AudioWorkletNode
instance IsEventTarget AudioWorkletNode

instance IsGObject AudioWorkletNode where
  typeGType _ = gTypeAudioWorkletNode
  {-# INLINE typeGType #-}

noAudioWorkletNode :: Maybe AudioWorkletNode
noAudioWorkletNode = Nothing
{-# INLINE noAudioWorkletNode #-}

foreign import javascript unsafe "(() => globalThis[\"AudioWorkletNode\"])" gTypeAudioWorkletNode :: GType

-- | Dictionary AudioWorkletNodeOptions (webaudio-1.1)
newtype AudioWorkletNodeOptions = AudioWorkletNodeOptions { unAudioWorkletNodeOptions :: JSVal }

instance Eq AudioWorkletNodeOptions where
  (AudioWorkletNodeOptions a) == (AudioWorkletNodeOptions b) = js_eq a b

instance PToJSVal AudioWorkletNodeOptions where
  pToJSVal = unAudioWorkletNodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioWorkletNodeOptions where
  pFromJSVal = AudioWorkletNodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioWorkletNodeOptions where
  toJSVal = return . unAudioWorkletNodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal AudioWorkletNodeOptions where
  fromJSVal = return . fmap AudioWorkletNodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioWorkletNodeOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions AudioWorkletNodeOptions

instance IsGObject AudioWorkletNodeOptions where
  typeGType _ = gTypeAudioWorkletNodeOptions
  {-# INLINE typeGType #-}

noAudioWorkletNodeOptions :: Maybe AudioWorkletNodeOptions
noAudioWorkletNodeOptions = Nothing
{-# INLINE noAudioWorkletNodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAudioWorkletNodeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.AudioWorkletProcessor" (webaudio-1.1).
newtype AudioWorkletProcessor = AudioWorkletProcessor { unAudioWorkletProcessor :: JSVal }

instance Eq AudioWorkletProcessor where
  (AudioWorkletProcessor a) == (AudioWorkletProcessor b) = js_eq a b

instance PToJSVal AudioWorkletProcessor where
  pToJSVal = unAudioWorkletProcessor
  {-# INLINE pToJSVal #-}

instance PFromJSVal AudioWorkletProcessor where
  pFromJSVal = AudioWorkletProcessor
  {-# INLINE pFromJSVal #-}

instance ToJSVal AudioWorkletProcessor where
  toJSVal = return . unAudioWorkletProcessor
  {-# INLINE toJSVal #-}

instance FromJSVal AudioWorkletProcessor where
  fromJSVal = return . fmap AudioWorkletProcessor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AudioWorkletProcessor
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AudioWorkletProcessor where
  typeGType _ = gTypeAudioWorkletProcessor
  {-# INLINE typeGType #-}

noAudioWorkletProcessor :: Maybe AudioWorkletProcessor
noAudioWorkletProcessor = Nothing
{-# INLINE noAudioWorkletProcessor #-}

foreign import javascript unsafe "(() => globalThis[\"AudioWorkletProcessor\"])" gTypeAudioWorkletProcessor :: GType

-- | Dictionary AuthenticationExtensionsClientInputs (webauthn-4)
newtype AuthenticationExtensionsClientInputs = AuthenticationExtensionsClientInputs { unAuthenticationExtensionsClientInputs :: JSVal }

instance Eq AuthenticationExtensionsClientInputs where
  (AuthenticationExtensionsClientInputs a) == (AuthenticationExtensionsClientInputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsClientInputs where
  pToJSVal = unAuthenticationExtensionsClientInputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsClientInputs where
  pFromJSVal = AuthenticationExtensionsClientInputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsClientInputs where
  toJSVal = return . unAuthenticationExtensionsClientInputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsClientInputs where
  fromJSVal = return . fmap AuthenticationExtensionsClientInputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsClientInputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsClientInputs where
  typeGType _ = gTypeAuthenticationExtensionsClientInputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsClientInputs :: Maybe AuthenticationExtensionsClientInputs
noAuthenticationExtensionsClientInputs = Nothing
{-# INLINE noAuthenticationExtensionsClientInputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsClientInputs :: GType

-- | Dictionary AuthenticationExtensionsClientInputsJSON (webauthn-4)
newtype AuthenticationExtensionsClientInputsJSON = AuthenticationExtensionsClientInputsJSON { unAuthenticationExtensionsClientInputsJSON :: JSVal }

instance Eq AuthenticationExtensionsClientInputsJSON where
  (AuthenticationExtensionsClientInputsJSON a) == (AuthenticationExtensionsClientInputsJSON b) = js_eq a b

instance PToJSVal AuthenticationExtensionsClientInputsJSON where
  pToJSVal = unAuthenticationExtensionsClientInputsJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsClientInputsJSON where
  pFromJSVal = AuthenticationExtensionsClientInputsJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsClientInputsJSON where
  toJSVal = return . unAuthenticationExtensionsClientInputsJSON
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsClientInputsJSON where
  fromJSVal = return . fmap AuthenticationExtensionsClientInputsJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsClientInputsJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsClientInputsJSON where
  typeGType _ = gTypeAuthenticationExtensionsClientInputsJSON
  {-# INLINE typeGType #-}

noAuthenticationExtensionsClientInputsJSON :: Maybe AuthenticationExtensionsClientInputsJSON
noAuthenticationExtensionsClientInputsJSON = Nothing
{-# INLINE noAuthenticationExtensionsClientInputsJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsClientInputsJSON :: GType

-- | Dictionary AuthenticationExtensionsClientOutputs (webauthn-4)
newtype AuthenticationExtensionsClientOutputs = AuthenticationExtensionsClientOutputs { unAuthenticationExtensionsClientOutputs :: JSVal }

instance Eq AuthenticationExtensionsClientOutputs where
  (AuthenticationExtensionsClientOutputs a) == (AuthenticationExtensionsClientOutputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsClientOutputs where
  pToJSVal = unAuthenticationExtensionsClientOutputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsClientOutputs where
  pFromJSVal = AuthenticationExtensionsClientOutputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsClientOutputs where
  toJSVal = return . unAuthenticationExtensionsClientOutputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsClientOutputs where
  fromJSVal = return . fmap AuthenticationExtensionsClientOutputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsClientOutputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsClientOutputs where
  typeGType _ = gTypeAuthenticationExtensionsClientOutputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsClientOutputs :: Maybe AuthenticationExtensionsClientOutputs
noAuthenticationExtensionsClientOutputs = Nothing
{-# INLINE noAuthenticationExtensionsClientOutputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsClientOutputs :: GType

-- | Dictionary AuthenticationExtensionsLargeBlobInputs (webauthn-4)
newtype AuthenticationExtensionsLargeBlobInputs = AuthenticationExtensionsLargeBlobInputs { unAuthenticationExtensionsLargeBlobInputs :: JSVal }

instance Eq AuthenticationExtensionsLargeBlobInputs where
  (AuthenticationExtensionsLargeBlobInputs a) == (AuthenticationExtensionsLargeBlobInputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsLargeBlobInputs where
  pToJSVal = unAuthenticationExtensionsLargeBlobInputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsLargeBlobInputs where
  pFromJSVal = AuthenticationExtensionsLargeBlobInputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsLargeBlobInputs where
  toJSVal = return . unAuthenticationExtensionsLargeBlobInputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsLargeBlobInputs where
  fromJSVal = return . fmap AuthenticationExtensionsLargeBlobInputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsLargeBlobInputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsLargeBlobInputs where
  typeGType _ = gTypeAuthenticationExtensionsLargeBlobInputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsLargeBlobInputs :: Maybe AuthenticationExtensionsLargeBlobInputs
noAuthenticationExtensionsLargeBlobInputs = Nothing
{-# INLINE noAuthenticationExtensionsLargeBlobInputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsLargeBlobInputs :: GType

-- | Dictionary AuthenticationExtensionsLargeBlobInputsJSON (webauthn-4)
newtype AuthenticationExtensionsLargeBlobInputsJSON = AuthenticationExtensionsLargeBlobInputsJSON { unAuthenticationExtensionsLargeBlobInputsJSON :: JSVal }

instance Eq AuthenticationExtensionsLargeBlobInputsJSON where
  (AuthenticationExtensionsLargeBlobInputsJSON a) == (AuthenticationExtensionsLargeBlobInputsJSON b) = js_eq a b

instance PToJSVal AuthenticationExtensionsLargeBlobInputsJSON where
  pToJSVal = unAuthenticationExtensionsLargeBlobInputsJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsLargeBlobInputsJSON where
  pFromJSVal = AuthenticationExtensionsLargeBlobInputsJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsLargeBlobInputsJSON where
  toJSVal = return . unAuthenticationExtensionsLargeBlobInputsJSON
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsLargeBlobInputsJSON where
  fromJSVal = return . fmap AuthenticationExtensionsLargeBlobInputsJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsLargeBlobInputsJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsLargeBlobInputsJSON where
  typeGType _ = gTypeAuthenticationExtensionsLargeBlobInputsJSON
  {-# INLINE typeGType #-}

noAuthenticationExtensionsLargeBlobInputsJSON :: Maybe AuthenticationExtensionsLargeBlobInputsJSON
noAuthenticationExtensionsLargeBlobInputsJSON = Nothing
{-# INLINE noAuthenticationExtensionsLargeBlobInputsJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsLargeBlobInputsJSON :: GType

-- | Dictionary AuthenticationExtensionsLargeBlobOutputs (webauthn-4)
newtype AuthenticationExtensionsLargeBlobOutputs = AuthenticationExtensionsLargeBlobOutputs { unAuthenticationExtensionsLargeBlobOutputs :: JSVal }

instance Eq AuthenticationExtensionsLargeBlobOutputs where
  (AuthenticationExtensionsLargeBlobOutputs a) == (AuthenticationExtensionsLargeBlobOutputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsLargeBlobOutputs where
  pToJSVal = unAuthenticationExtensionsLargeBlobOutputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsLargeBlobOutputs where
  pFromJSVal = AuthenticationExtensionsLargeBlobOutputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsLargeBlobOutputs where
  toJSVal = return . unAuthenticationExtensionsLargeBlobOutputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsLargeBlobOutputs where
  fromJSVal = return . fmap AuthenticationExtensionsLargeBlobOutputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsLargeBlobOutputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsLargeBlobOutputs where
  typeGType _ = gTypeAuthenticationExtensionsLargeBlobOutputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsLargeBlobOutputs :: Maybe AuthenticationExtensionsLargeBlobOutputs
noAuthenticationExtensionsLargeBlobOutputs = Nothing
{-# INLINE noAuthenticationExtensionsLargeBlobOutputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsLargeBlobOutputs :: GType

-- | Dictionary AuthenticationExtensionsPRFInputs (webauthn-4)
newtype AuthenticationExtensionsPRFInputs = AuthenticationExtensionsPRFInputs { unAuthenticationExtensionsPRFInputs :: JSVal }

instance Eq AuthenticationExtensionsPRFInputs where
  (AuthenticationExtensionsPRFInputs a) == (AuthenticationExtensionsPRFInputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPRFInputs where
  pToJSVal = unAuthenticationExtensionsPRFInputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPRFInputs where
  pFromJSVal = AuthenticationExtensionsPRFInputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPRFInputs where
  toJSVal = return . unAuthenticationExtensionsPRFInputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPRFInputs where
  fromJSVal = return . fmap AuthenticationExtensionsPRFInputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPRFInputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPRFInputs where
  typeGType _ = gTypeAuthenticationExtensionsPRFInputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPRFInputs :: Maybe AuthenticationExtensionsPRFInputs
noAuthenticationExtensionsPRFInputs = Nothing
{-# INLINE noAuthenticationExtensionsPRFInputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPRFInputs :: GType

-- | Dictionary AuthenticationExtensionsPRFInputsJSON (webauthn-4)
newtype AuthenticationExtensionsPRFInputsJSON = AuthenticationExtensionsPRFInputsJSON { unAuthenticationExtensionsPRFInputsJSON :: JSVal }

instance Eq AuthenticationExtensionsPRFInputsJSON where
  (AuthenticationExtensionsPRFInputsJSON a) == (AuthenticationExtensionsPRFInputsJSON b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPRFInputsJSON where
  pToJSVal = unAuthenticationExtensionsPRFInputsJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPRFInputsJSON where
  pFromJSVal = AuthenticationExtensionsPRFInputsJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPRFInputsJSON where
  toJSVal = return . unAuthenticationExtensionsPRFInputsJSON
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPRFInputsJSON where
  fromJSVal = return . fmap AuthenticationExtensionsPRFInputsJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPRFInputsJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPRFInputsJSON where
  typeGType _ = gTypeAuthenticationExtensionsPRFInputsJSON
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPRFInputsJSON :: Maybe AuthenticationExtensionsPRFInputsJSON
noAuthenticationExtensionsPRFInputsJSON = Nothing
{-# INLINE noAuthenticationExtensionsPRFInputsJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPRFInputsJSON :: GType

-- | Dictionary AuthenticationExtensionsPRFOutputs (webauthn-4)
newtype AuthenticationExtensionsPRFOutputs = AuthenticationExtensionsPRFOutputs { unAuthenticationExtensionsPRFOutputs :: JSVal }

instance Eq AuthenticationExtensionsPRFOutputs where
  (AuthenticationExtensionsPRFOutputs a) == (AuthenticationExtensionsPRFOutputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPRFOutputs where
  pToJSVal = unAuthenticationExtensionsPRFOutputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPRFOutputs where
  pFromJSVal = AuthenticationExtensionsPRFOutputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPRFOutputs where
  toJSVal = return . unAuthenticationExtensionsPRFOutputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPRFOutputs where
  fromJSVal = return . fmap AuthenticationExtensionsPRFOutputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPRFOutputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPRFOutputs where
  typeGType _ = gTypeAuthenticationExtensionsPRFOutputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPRFOutputs :: Maybe AuthenticationExtensionsPRFOutputs
noAuthenticationExtensionsPRFOutputs = Nothing
{-# INLINE noAuthenticationExtensionsPRFOutputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPRFOutputs :: GType

-- | Dictionary AuthenticationExtensionsPRFValues (webauthn-4)
newtype AuthenticationExtensionsPRFValues = AuthenticationExtensionsPRFValues { unAuthenticationExtensionsPRFValues :: JSVal }

instance Eq AuthenticationExtensionsPRFValues where
  (AuthenticationExtensionsPRFValues a) == (AuthenticationExtensionsPRFValues b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPRFValues where
  pToJSVal = unAuthenticationExtensionsPRFValues
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPRFValues where
  pFromJSVal = AuthenticationExtensionsPRFValues
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPRFValues where
  toJSVal = return . unAuthenticationExtensionsPRFValues
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPRFValues where
  fromJSVal = return . fmap AuthenticationExtensionsPRFValues . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPRFValues
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPRFValues where
  typeGType _ = gTypeAuthenticationExtensionsPRFValues
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPRFValues :: Maybe AuthenticationExtensionsPRFValues
noAuthenticationExtensionsPRFValues = Nothing
{-# INLINE noAuthenticationExtensionsPRFValues #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPRFValues :: GType

-- | Dictionary AuthenticationExtensionsPRFValuesJSON (webauthn-4)
newtype AuthenticationExtensionsPRFValuesJSON = AuthenticationExtensionsPRFValuesJSON { unAuthenticationExtensionsPRFValuesJSON :: JSVal }

instance Eq AuthenticationExtensionsPRFValuesJSON where
  (AuthenticationExtensionsPRFValuesJSON a) == (AuthenticationExtensionsPRFValuesJSON b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPRFValuesJSON where
  pToJSVal = unAuthenticationExtensionsPRFValuesJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPRFValuesJSON where
  pFromJSVal = AuthenticationExtensionsPRFValuesJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPRFValuesJSON where
  toJSVal = return . unAuthenticationExtensionsPRFValuesJSON
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPRFValuesJSON where
  fromJSVal = return . fmap AuthenticationExtensionsPRFValuesJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPRFValuesJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPRFValuesJSON where
  typeGType _ = gTypeAuthenticationExtensionsPRFValuesJSON
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPRFValuesJSON :: Maybe AuthenticationExtensionsPRFValuesJSON
noAuthenticationExtensionsPRFValuesJSON = Nothing
{-# INLINE noAuthenticationExtensionsPRFValuesJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPRFValuesJSON :: GType

-- | Dictionary AuthenticationExtensionsPaymentInputs (secure-payment-confirmation)
newtype AuthenticationExtensionsPaymentInputs = AuthenticationExtensionsPaymentInputs { unAuthenticationExtensionsPaymentInputs :: JSVal }

instance Eq AuthenticationExtensionsPaymentInputs where
  (AuthenticationExtensionsPaymentInputs a) == (AuthenticationExtensionsPaymentInputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPaymentInputs where
  pToJSVal = unAuthenticationExtensionsPaymentInputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPaymentInputs where
  pFromJSVal = AuthenticationExtensionsPaymentInputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPaymentInputs where
  toJSVal = return . unAuthenticationExtensionsPaymentInputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPaymentInputs where
  fromJSVal = return . fmap AuthenticationExtensionsPaymentInputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPaymentInputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPaymentInputs where
  typeGType _ = gTypeAuthenticationExtensionsPaymentInputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPaymentInputs :: Maybe AuthenticationExtensionsPaymentInputs
noAuthenticationExtensionsPaymentInputs = Nothing
{-# INLINE noAuthenticationExtensionsPaymentInputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPaymentInputs :: GType

-- | Dictionary AuthenticationExtensionsPaymentOutputs (secure-payment-confirmation)
newtype AuthenticationExtensionsPaymentOutputs = AuthenticationExtensionsPaymentOutputs { unAuthenticationExtensionsPaymentOutputs :: JSVal }

instance Eq AuthenticationExtensionsPaymentOutputs where
  (AuthenticationExtensionsPaymentOutputs a) == (AuthenticationExtensionsPaymentOutputs b) = js_eq a b

instance PToJSVal AuthenticationExtensionsPaymentOutputs where
  pToJSVal = unAuthenticationExtensionsPaymentOutputs
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticationExtensionsPaymentOutputs where
  pFromJSVal = AuthenticationExtensionsPaymentOutputs
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticationExtensionsPaymentOutputs where
  toJSVal = return . unAuthenticationExtensionsPaymentOutputs
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticationExtensionsPaymentOutputs where
  fromJSVal = return . fmap AuthenticationExtensionsPaymentOutputs . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticationExtensionsPaymentOutputs
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticationExtensionsPaymentOutputs where
  typeGType _ = gTypeAuthenticationExtensionsPaymentOutputs
  {-# INLINE typeGType #-}

noAuthenticationExtensionsPaymentOutputs :: Maybe AuthenticationExtensionsPaymentOutputs
noAuthenticationExtensionsPaymentOutputs = Nothing
{-# INLINE noAuthenticationExtensionsPaymentOutputs #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticationExtensionsPaymentOutputs :: GType

-- | Functions for this interface are in "GHCJS.DOM.AuthenticatorAssertionResponse" (webauthn-4).
newtype AuthenticatorAssertionResponse = AuthenticatorAssertionResponse { unAuthenticatorAssertionResponse :: JSVal }

instance Eq AuthenticatorAssertionResponse where
  (AuthenticatorAssertionResponse a) == (AuthenticatorAssertionResponse b) = js_eq a b

instance PToJSVal AuthenticatorAssertionResponse where
  pToJSVal = unAuthenticatorAssertionResponse
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticatorAssertionResponse where
  pFromJSVal = AuthenticatorAssertionResponse
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticatorAssertionResponse where
  toJSVal = return . unAuthenticatorAssertionResponse
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticatorAssertionResponse where
  fromJSVal = return . fmap AuthenticatorAssertionResponse . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticatorAssertionResponse
  {-# INLINE fromJSValUnchecked #-}

instance IsAuthenticatorResponse AuthenticatorAssertionResponse

instance IsGObject AuthenticatorAssertionResponse where
  typeGType _ = gTypeAuthenticatorAssertionResponse
  {-# INLINE typeGType #-}

noAuthenticatorAssertionResponse :: Maybe AuthenticatorAssertionResponse
noAuthenticatorAssertionResponse = Nothing
{-# INLINE noAuthenticatorAssertionResponse #-}

foreign import javascript unsafe "(() => globalThis[\"AuthenticatorAssertionResponse\"])" gTypeAuthenticatorAssertionResponse :: GType

-- | Functions for this interface are in "GHCJS.DOM.AuthenticatorAttestationResponse" (webauthn-4).
newtype AuthenticatorAttestationResponse = AuthenticatorAttestationResponse { unAuthenticatorAttestationResponse :: JSVal }

instance Eq AuthenticatorAttestationResponse where
  (AuthenticatorAttestationResponse a) == (AuthenticatorAttestationResponse b) = js_eq a b

instance PToJSVal AuthenticatorAttestationResponse where
  pToJSVal = unAuthenticatorAttestationResponse
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticatorAttestationResponse where
  pFromJSVal = AuthenticatorAttestationResponse
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticatorAttestationResponse where
  toJSVal = return . unAuthenticatorAttestationResponse
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticatorAttestationResponse where
  fromJSVal = return . fmap AuthenticatorAttestationResponse . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticatorAttestationResponse
  {-# INLINE fromJSValUnchecked #-}

instance IsAuthenticatorResponse AuthenticatorAttestationResponse

instance IsGObject AuthenticatorAttestationResponse where
  typeGType _ = gTypeAuthenticatorAttestationResponse
  {-# INLINE typeGType #-}

noAuthenticatorAttestationResponse :: Maybe AuthenticatorAttestationResponse
noAuthenticatorAttestationResponse = Nothing
{-# INLINE noAuthenticatorAttestationResponse #-}

foreign import javascript unsafe "(() => globalThis[\"AuthenticatorAttestationResponse\"])" gTypeAuthenticatorAttestationResponse :: GType

-- | Functions for this interface are in "GHCJS.DOM.AuthenticatorResponse" (webauthn-4).
newtype AuthenticatorResponse = AuthenticatorResponse { unAuthenticatorResponse :: JSVal }

instance Eq AuthenticatorResponse where
  (AuthenticatorResponse a) == (AuthenticatorResponse b) = js_eq a b

instance PToJSVal AuthenticatorResponse where
  pToJSVal = unAuthenticatorResponse
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticatorResponse where
  pFromJSVal = AuthenticatorResponse
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticatorResponse where
  toJSVal = return . unAuthenticatorResponse
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticatorResponse where
  fromJSVal = return . fmap AuthenticatorResponse . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticatorResponse
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsAuthenticatorResponse o
toAuthenticatorResponse :: IsAuthenticatorResponse o => o -> AuthenticatorResponse
toAuthenticatorResponse = AuthenticatorResponse . coerce

instance IsAuthenticatorResponse AuthenticatorResponse

instance IsGObject AuthenticatorResponse where
  typeGType _ = gTypeAuthenticatorResponse
  {-# INLINE typeGType #-}

noAuthenticatorResponse :: Maybe AuthenticatorResponse
noAuthenticatorResponse = Nothing
{-# INLINE noAuthenticatorResponse #-}

foreign import javascript unsafe "(() => globalThis[\"AuthenticatorResponse\"])" gTypeAuthenticatorResponse :: GType

-- | Dictionary AuthenticatorSelectionCriteria (webauthn-4)
newtype AuthenticatorSelectionCriteria = AuthenticatorSelectionCriteria { unAuthenticatorSelectionCriteria :: JSVal }

instance Eq AuthenticatorSelectionCriteria where
  (AuthenticatorSelectionCriteria a) == (AuthenticatorSelectionCriteria b) = js_eq a b

instance PToJSVal AuthenticatorSelectionCriteria where
  pToJSVal = unAuthenticatorSelectionCriteria
  {-# INLINE pToJSVal #-}

instance PFromJSVal AuthenticatorSelectionCriteria where
  pFromJSVal = AuthenticatorSelectionCriteria
  {-# INLINE pFromJSVal #-}

instance ToJSVal AuthenticatorSelectionCriteria where
  toJSVal = return . unAuthenticatorSelectionCriteria
  {-# INLINE toJSVal #-}

instance FromJSVal AuthenticatorSelectionCriteria where
  fromJSVal = return . fmap AuthenticatorSelectionCriteria . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AuthenticatorSelectionCriteria
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AuthenticatorSelectionCriteria where
  typeGType _ = gTypeAuthenticatorSelectionCriteria
  {-# INLINE typeGType #-}

noAuthenticatorSelectionCriteria :: Maybe AuthenticatorSelectionCriteria
noAuthenticatorSelectionCriteria = Nothing
{-# INLINE noAuthenticatorSelectionCriteria #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAuthenticatorSelectionCriteria :: GType

-- | Functions for this interface are in "GHCJS.DOM.AutofillEvent" (autofill-event).
newtype AutofillEvent = AutofillEvent { unAutofillEvent :: JSVal }

instance Eq AutofillEvent where
  (AutofillEvent a) == (AutofillEvent b) = js_eq a b

instance PToJSVal AutofillEvent where
  pToJSVal = unAutofillEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal AutofillEvent where
  pFromJSVal = AutofillEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal AutofillEvent where
  toJSVal = return . unAutofillEvent
  {-# INLINE toJSVal #-}

instance FromJSVal AutofillEvent where
  fromJSVal = return . fmap AutofillEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AutofillEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent AutofillEvent

instance IsGObject AutofillEvent where
  typeGType _ = gTypeAutofillEvent
  {-# INLINE typeGType #-}

noAutofillEvent :: Maybe AutofillEvent
noAutofillEvent = Nothing
{-# INLINE noAutofillEvent #-}

foreign import javascript unsafe "(() => globalThis[\"AutofillEvent\"])" gTypeAutofillEvent :: GType

-- | Dictionary AvcEncoderConfig (webcodecs-avc-codec-registration)
newtype AvcEncoderConfig = AvcEncoderConfig { unAvcEncoderConfig :: JSVal }

instance Eq AvcEncoderConfig where
  (AvcEncoderConfig a) == (AvcEncoderConfig b) = js_eq a b

instance PToJSVal AvcEncoderConfig where
  pToJSVal = unAvcEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal AvcEncoderConfig where
  pFromJSVal = AvcEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal AvcEncoderConfig where
  toJSVal = return . unAvcEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal AvcEncoderConfig where
  fromJSVal = return . fmap AvcEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . AvcEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject AvcEncoderConfig where
  typeGType _ = gTypeAvcEncoderConfig
  {-# INLINE typeGType #-}

noAvcEncoderConfig :: Maybe AvcEncoderConfig
noAvcEncoderConfig = Nothing
{-# INLINE noAvcEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeAvcEncoderConfig :: GType

-- | Dictionary BackgroundBlur (mediacapture-extensions)
newtype BackgroundBlur = BackgroundBlur { unBackgroundBlur :: JSVal }

instance Eq BackgroundBlur where
  (BackgroundBlur a) == (BackgroundBlur b) = js_eq a b

instance PToJSVal BackgroundBlur where
  pToJSVal = unBackgroundBlur
  {-# INLINE pToJSVal #-}

instance PFromJSVal BackgroundBlur where
  pFromJSVal = BackgroundBlur
  {-# INLINE pFromJSVal #-}

instance ToJSVal BackgroundBlur where
  toJSVal = return . unBackgroundBlur
  {-# INLINE toJSVal #-}

instance FromJSVal BackgroundBlur where
  fromJSVal = return . fmap BackgroundBlur . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BackgroundBlur
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaEffectInfo BackgroundBlur

instance IsGObject BackgroundBlur where
  typeGType _ = gTypeBackgroundBlur
  {-# INLINE typeGType #-}

noBackgroundBlur :: Maybe BackgroundBlur
noBackgroundBlur = Nothing
{-# INLINE noBackgroundBlur #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeBackgroundBlur :: GType

-- | Functions for this interface are in "GHCJS.DOM.BarProp" (html).
newtype BarProp = BarProp { unBarProp :: JSVal }

instance Eq BarProp where
  (BarProp a) == (BarProp b) = js_eq a b

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 = return . fmap BarProp . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BarProp
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject BarProp where
  typeGType _ = gTypeBarProp
  {-# INLINE typeGType #-}

noBarProp :: Maybe BarProp
noBarProp = Nothing
{-# INLINE noBarProp #-}

foreign import javascript unsafe "(() => globalThis[\"BarProp\"])" gTypeBarProp :: GType

-- | Functions for this interface are in "GHCJS.DOM.BaseAudioContext" (webaudio-1.1).
newtype BaseAudioContext = BaseAudioContext { unBaseAudioContext :: JSVal }

instance Eq BaseAudioContext where
  (BaseAudioContext a) == (BaseAudioContext b) = js_eq a b

instance PToJSVal BaseAudioContext where
  pToJSVal = unBaseAudioContext
  {-# INLINE pToJSVal #-}

instance PFromJSVal BaseAudioContext where
  pFromJSVal = BaseAudioContext
  {-# INLINE pFromJSVal #-}

instance ToJSVal BaseAudioContext where
  toJSVal = return . unBaseAudioContext
  {-# INLINE toJSVal #-}

instance FromJSVal BaseAudioContext where
  fromJSVal = return . fmap BaseAudioContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BaseAudioContext
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject o) => IsBaseAudioContext o
toBaseAudioContext :: IsBaseAudioContext o => o -> BaseAudioContext
toBaseAudioContext = BaseAudioContext . coerce

instance IsBaseAudioContext BaseAudioContext
instance IsEventTarget BaseAudioContext

instance IsGObject BaseAudioContext where
  typeGType _ = gTypeBaseAudioContext
  {-# INLINE typeGType #-}

noBaseAudioContext :: Maybe BaseAudioContext
noBaseAudioContext = Nothing
{-# INLINE noBaseAudioContext #-}

foreign import javascript unsafe "(() => globalThis[\"BaseAudioContext\"])" gTypeBaseAudioContext :: GType

-- | Functions for this interface are in "GHCJS.DOM.BeforeUnloadEvent" (html).
newtype BeforeUnloadEvent = BeforeUnloadEvent { unBeforeUnloadEvent :: JSVal }

instance Eq BeforeUnloadEvent where
  (BeforeUnloadEvent a) == (BeforeUnloadEvent b) = js_eq a b

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 = return . fmap BeforeUnloadEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BeforeUnloadEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent BeforeUnloadEvent

instance IsGObject BeforeUnloadEvent where
  typeGType _ = gTypeBeforeUnloadEvent
  {-# INLINE typeGType #-}

noBeforeUnloadEvent :: Maybe BeforeUnloadEvent
noBeforeUnloadEvent = Nothing
{-# INLINE noBeforeUnloadEvent #-}

foreign import javascript unsafe "(() => globalThis[\"BeforeUnloadEvent\"])" gTypeBeforeUnloadEvent :: GType

newtype BigInt64Array = BigInt64Array { unBigInt64Array :: JSVal }

instance Eq BigInt64Array where
  (BigInt64Array a) == (BigInt64Array b) = js_eq a b

instance PToJSVal BigInt64Array where
  pToJSVal = unBigInt64Array
  {-# INLINE pToJSVal #-}

instance PFromJSVal BigInt64Array where
  pFromJSVal = BigInt64Array
  {-# INLINE pFromJSVal #-}

instance ToJSVal BigInt64Array where
  toJSVal = return . unBigInt64Array
  {-# INLINE toJSVal #-}

instance FromJSVal BigInt64Array where
  fromJSVal = return . fmap BigInt64Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BigInt64Array
  {-# INLINE fromJSValUnchecked #-}

instance IsArrayBufferView BigInt64Array

instance IsGObject BigInt64Array where
  typeGType _ = gTypeBigInt64Array
  {-# INLINE typeGType #-}

noBigInt64Array :: Maybe BigInt64Array
noBigInt64Array = Nothing
{-# INLINE noBigInt64Array #-}

foreign import javascript unsafe "(() => globalThis[\"BigInt64Array\"])" gTypeBigInt64Array :: GType

newtype BigUint64Array = BigUint64Array { unBigUint64Array :: JSVal }

instance Eq BigUint64Array where
  (BigUint64Array a) == (BigUint64Array b) = js_eq a b

instance PToJSVal BigUint64Array where
  pToJSVal = unBigUint64Array
  {-# INLINE pToJSVal #-}

instance PFromJSVal BigUint64Array where
  pFromJSVal = BigUint64Array
  {-# INLINE pFromJSVal #-}

instance ToJSVal BigUint64Array where
  toJSVal = return . unBigUint64Array
  {-# INLINE toJSVal #-}

instance FromJSVal BigUint64Array where
  fromJSVal = return . fmap BigUint64Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BigUint64Array
  {-# INLINE fromJSValUnchecked #-}

instance IsArrayBufferView BigUint64Array

instance IsGObject BigUint64Array where
  typeGType _ = gTypeBigUint64Array
  {-# INLINE typeGType #-}

noBigUint64Array :: Maybe BigUint64Array
noBigUint64Array = Nothing
{-# INLINE noBigUint64Array #-}

foreign import javascript unsafe "(() => globalThis[\"BigUint64Array\"])" gTypeBigUint64Array :: GType

-- | Functions for this interface are in "GHCJS.DOM.BiquadFilterNode" (webaudio-1.1).
newtype BiquadFilterNode = BiquadFilterNode { unBiquadFilterNode :: JSVal }

instance Eq BiquadFilterNode where
  (BiquadFilterNode a) == (BiquadFilterNode b) = js_eq a b

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 = return . fmap BiquadFilterNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BiquadFilterNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode BiquadFilterNode
instance IsEventTarget BiquadFilterNode

instance IsGObject BiquadFilterNode where
  typeGType _ = gTypeBiquadFilterNode
  {-# INLINE typeGType #-}

noBiquadFilterNode :: Maybe BiquadFilterNode
noBiquadFilterNode = Nothing
{-# INLINE noBiquadFilterNode #-}

foreign import javascript unsafe "(() => globalThis[\"BiquadFilterNode\"])" gTypeBiquadFilterNode :: GType

-- | Dictionary BiquadFilterOptions (webaudio-1.1)
newtype BiquadFilterOptions = BiquadFilterOptions { unBiquadFilterOptions :: JSVal }

instance Eq BiquadFilterOptions where
  (BiquadFilterOptions a) == (BiquadFilterOptions b) = js_eq a b

instance PToJSVal BiquadFilterOptions where
  pToJSVal = unBiquadFilterOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal BiquadFilterOptions where
  pFromJSVal = BiquadFilterOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal BiquadFilterOptions where
  toJSVal = return . unBiquadFilterOptions
  {-# INLINE toJSVal #-}

instance FromJSVal BiquadFilterOptions where
  fromJSVal = return . fmap BiquadFilterOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BiquadFilterOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions BiquadFilterOptions

instance IsGObject BiquadFilterOptions where
  typeGType _ = gTypeBiquadFilterOptions
  {-# INLINE typeGType #-}

noBiquadFilterOptions :: Maybe BiquadFilterOptions
noBiquadFilterOptions = Nothing
{-# INLINE noBiquadFilterOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeBiquadFilterOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Blob" (FileAPI).
newtype Blob = Blob { unBlob :: JSVal }

instance Eq Blob where
  (Blob a) == (Blob b) = js_eq a b

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 = return . fmap Blob . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Blob
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsBlob o
toBlob :: IsBlob o => o -> Blob
toBlob = Blob . coerce

instance IsBlob Blob

instance IsGObject Blob where
  typeGType _ = gTypeBlob
  {-# INLINE typeGType #-}

noBlob :: Maybe Blob
noBlob = Nothing
{-# INLINE noBlob #-}

foreign import javascript unsafe "(() => globalThis[\"Blob\"])" gTypeBlob :: GType

-- | Functions for this interface are in "GHCJS.DOM.BlobEvent" (mediastream-recording).
newtype BlobEvent = BlobEvent { unBlobEvent :: JSVal }

instance Eq BlobEvent where
  (BlobEvent a) == (BlobEvent b) = js_eq a b

instance PToJSVal BlobEvent where
  pToJSVal = unBlobEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal BlobEvent where
  pFromJSVal = BlobEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal BlobEvent where
  toJSVal = return . unBlobEvent
  {-# INLINE toJSVal #-}

instance FromJSVal BlobEvent where
  fromJSVal = return . fmap BlobEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BlobEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent BlobEvent

instance IsGObject BlobEvent where
  typeGType _ = gTypeBlobEvent
  {-# INLINE typeGType #-}

noBlobEvent :: Maybe BlobEvent
noBlobEvent = Nothing
{-# INLINE noBlobEvent #-}

foreign import javascript unsafe "(() => globalThis[\"BlobEvent\"])" gTypeBlobEvent :: GType

-- | Dictionary BlobEventInit (mediastream-recording)
newtype BlobEventInit = BlobEventInit { unBlobEventInit :: JSVal }

instance Eq BlobEventInit where
  (BlobEventInit a) == (BlobEventInit b) = js_eq a b

instance PToJSVal BlobEventInit where
  pToJSVal = unBlobEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal BlobEventInit where
  pFromJSVal = BlobEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal BlobEventInit where
  toJSVal = return . unBlobEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal BlobEventInit where
  fromJSVal = return . fmap BlobEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BlobEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit BlobEventInit

instance IsGObject BlobEventInit where
  typeGType _ = gTypeBlobEventInit
  {-# INLINE typeGType #-}

noBlobEventInit :: Maybe BlobEventInit
noBlobEventInit = Nothing
{-# INLINE noBlobEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeBlobEventInit :: GType

-- | Dictionary BlobPropertyBag (FileAPI)
newtype BlobPropertyBag = BlobPropertyBag { unBlobPropertyBag :: JSVal }

instance Eq BlobPropertyBag where
  (BlobPropertyBag a) == (BlobPropertyBag b) = js_eq a b

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 = return . fmap BlobPropertyBag . maybeJSNullOrUndefined
  {-# 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 _ = gTypeBlobPropertyBag
  {-# INLINE typeGType #-}

noBlobPropertyBag :: Maybe BlobPropertyBag
noBlobPropertyBag = Nothing
{-# INLINE noBlobPropertyBag #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeBlobPropertyBag :: GType

-- | Functions for this interface are in "GHCJS.DOM.Body" (fetch).
newtype Body = Body { unBody :: JSVal }

instance Eq Body where
  (Body a) == (Body b) = js_eq a b

instance PToJSVal Body where
  pToJSVal = unBody
  {-# INLINE pToJSVal #-}

instance PFromJSVal Body where
  pFromJSVal = Body
  {-# INLINE pFromJSVal #-}

instance ToJSVal Body where
  toJSVal = return . unBody
  {-# INLINE toJSVal #-}

instance FromJSVal Body where
  fromJSVal = return . fmap Body . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Body
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsBody o
toBody :: IsBody o => o -> Body
toBody = Body . coerce

instance IsBody Body

instance IsGObject Body where
  typeGType _ = gTypeBody
  {-# INLINE typeGType #-}

noBody :: Maybe Body
noBody = Nothing
{-# INLINE noBody #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeBody :: GType

-- | Functions for this interface are in "GHCJS.DOM.BroadcastChannel" (html).
newtype BroadcastChannel = BroadcastChannel { unBroadcastChannel :: JSVal }

instance Eq BroadcastChannel where
  (BroadcastChannel a) == (BroadcastChannel b) = js_eq a b

instance PToJSVal BroadcastChannel where
  pToJSVal = unBroadcastChannel
  {-# INLINE pToJSVal #-}

instance PFromJSVal BroadcastChannel where
  pFromJSVal = BroadcastChannel
  {-# INLINE pFromJSVal #-}

instance ToJSVal BroadcastChannel where
  toJSVal = return . unBroadcastChannel
  {-# INLINE toJSVal #-}

instance FromJSVal BroadcastChannel where
  fromJSVal = return . fmap BroadcastChannel . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BroadcastChannel
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget BroadcastChannel

instance IsGObject BroadcastChannel where
  typeGType _ = gTypeBroadcastChannel
  {-# INLINE typeGType #-}

noBroadcastChannel :: Maybe BroadcastChannel
noBroadcastChannel = Nothing
{-# INLINE noBroadcastChannel #-}

foreign import javascript unsafe "(() => globalThis[\"BroadcastChannel\"])" gTypeBroadcastChannel :: GType

-- | Dictionary BrowserBoundSignature (secure-payment-confirmation)
newtype BrowserBoundSignature = BrowserBoundSignature { unBrowserBoundSignature :: JSVal }

instance Eq BrowserBoundSignature where
  (BrowserBoundSignature a) == (BrowserBoundSignature b) = js_eq a b

instance PToJSVal BrowserBoundSignature where
  pToJSVal = unBrowserBoundSignature
  {-# INLINE pToJSVal #-}

instance PFromJSVal BrowserBoundSignature where
  pFromJSVal = BrowserBoundSignature
  {-# INLINE pFromJSVal #-}

instance ToJSVal BrowserBoundSignature where
  toJSVal = return . unBrowserBoundSignature
  {-# INLINE toJSVal #-}

instance FromJSVal BrowserBoundSignature where
  fromJSVal = return . fmap BrowserBoundSignature . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . BrowserBoundSignature
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject BrowserBoundSignature where
  typeGType _ = gTypeBrowserBoundSignature
  {-# INLINE typeGType #-}

noBrowserBoundSignature :: Maybe BrowserBoundSignature
noBrowserBoundSignature = Nothing
{-# INLINE noBrowserBoundSignature #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeBrowserBoundSignature :: GType

-- | Functions for this interface are in "GHCJS.DOM.ByteLengthQueuingStrategy" (streams).
newtype ByteLengthQueuingStrategy = ByteLengthQueuingStrategy { unByteLengthQueuingStrategy :: JSVal }

instance Eq ByteLengthQueuingStrategy where
  (ByteLengthQueuingStrategy a) == (ByteLengthQueuingStrategy b) = js_eq a b

instance PToJSVal ByteLengthQueuingStrategy where
  pToJSVal = unByteLengthQueuingStrategy
  {-# INLINE pToJSVal #-}

instance PFromJSVal ByteLengthQueuingStrategy where
  pFromJSVal = ByteLengthQueuingStrategy
  {-# INLINE pFromJSVal #-}

instance ToJSVal ByteLengthQueuingStrategy where
  toJSVal = return . unByteLengthQueuingStrategy
  {-# INLINE toJSVal #-}

instance FromJSVal ByteLengthQueuingStrategy where
  fromJSVal = return . fmap ByteLengthQueuingStrategy . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ByteLengthQueuingStrategy
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ByteLengthQueuingStrategy where
  typeGType _ = gTypeByteLengthQueuingStrategy
  {-# INLINE typeGType #-}

noByteLengthQueuingStrategy :: Maybe ByteLengthQueuingStrategy
noByteLengthQueuingStrategy = Nothing
{-# INLINE noByteLengthQueuingStrategy #-}

foreign import javascript unsafe "(() => globalThis[\"ByteLengthQueuingStrategy\"])" gTypeByteLengthQueuingStrategy :: GType

-- | Functions for this interface are in "GHCJS.DOM.CDATASection" (dom).
newtype CDATASection = CDATASection { unCDATASection :: JSVal }

instance Eq CDATASection where
  (CDATASection a) == (CDATASection b) = js_eq a b

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 = return . fmap CDATASection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CDATASection
  {-# INLINE fromJSValUnchecked #-}

instance IsText CDATASection
instance IsSlottable CDATASection
instance IsCharacterData CDATASection
instance IsChildNode CDATASection
instance IsNonDocumentTypeChildNode CDATASection
instance IsNode CDATASection
instance IsEventTarget CDATASection

instance IsGObject CDATASection where
  typeGType _ = gTypeCDATASection
  {-# INLINE typeGType #-}

noCDATASection :: Maybe CDATASection
noCDATASection = Nothing
{-# INLINE noCDATASection #-}

foreign import javascript unsafe "(() => globalThis[\"CDATASection\"])" gTypeCDATASection :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSAnimation" (css-animations-2).
newtype CSSAnimation = CSSAnimation { unCSSAnimation :: JSVal }

instance Eq CSSAnimation where
  (CSSAnimation a) == (CSSAnimation b) = js_eq a b

instance PToJSVal CSSAnimation where
  pToJSVal = unCSSAnimation
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSAnimation where
  pFromJSVal = CSSAnimation
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSAnimation where
  toJSVal = return . unCSSAnimation
  {-# INLINE toJSVal #-}

instance FromJSVal CSSAnimation where
  fromJSVal = return . fmap CSSAnimation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSAnimation
  {-# INLINE fromJSValUnchecked #-}

instance IsAnimation CSSAnimation
instance IsEventTarget CSSAnimation

instance IsGObject CSSAnimation where
  typeGType _ = gTypeCSSAnimation
  {-# INLINE typeGType #-}

noCSSAnimation :: Maybe CSSAnimation
noCSSAnimation = Nothing
{-# INLINE noCSSAnimation #-}

foreign import javascript unsafe "(() => globalThis[\"CSSAnimation\"])" gTypeCSSAnimation :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSConditionRule" (css-conditional-3).
newtype CSSConditionRule = CSSConditionRule { unCSSConditionRule :: JSVal }

instance Eq CSSConditionRule where
  (CSSConditionRule a) == (CSSConditionRule b) = js_eq a b

instance PToJSVal CSSConditionRule where
  pToJSVal = unCSSConditionRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSConditionRule where
  pFromJSVal = CSSConditionRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSConditionRule where
  toJSVal = return . unCSSConditionRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSConditionRule where
  fromJSVal = return . fmap CSSConditionRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSConditionRule
  {-# INLINE fromJSValUnchecked #-}

class (IsCSSGroupingRule o, IsGObject o) => IsCSSConditionRule o
toCSSConditionRule :: IsCSSConditionRule o => o -> CSSConditionRule
toCSSConditionRule = CSSConditionRule . coerce

instance IsCSSConditionRule CSSConditionRule
instance IsCSSGroupingRule CSSConditionRule
instance IsCSSRule CSSConditionRule

instance IsGObject CSSConditionRule where
  typeGType _ = gTypeCSSConditionRule
  {-# INLINE typeGType #-}

noCSSConditionRule :: Maybe CSSConditionRule
noCSSConditionRule = Nothing
{-# INLINE noCSSConditionRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSConditionRule\"])" gTypeCSSConditionRule :: GType

-- | Dictionary CSSContainerCondition (css-conditional-5)
newtype CSSContainerCondition = CSSContainerCondition { unCSSContainerCondition :: JSVal }

instance Eq CSSContainerCondition where
  (CSSContainerCondition a) == (CSSContainerCondition b) = js_eq a b

instance PToJSVal CSSContainerCondition where
  pToJSVal = unCSSContainerCondition
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSContainerCondition where
  pFromJSVal = CSSContainerCondition
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSContainerCondition where
  toJSVal = return . unCSSContainerCondition
  {-# INLINE toJSVal #-}

instance FromJSVal CSSContainerCondition where
  fromJSVal = return . fmap CSSContainerCondition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSContainerCondition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSContainerCondition where
  typeGType _ = gTypeCSSContainerCondition
  {-# INLINE typeGType #-}

noCSSContainerCondition :: Maybe CSSContainerCondition
noCSSContainerCondition = Nothing
{-# INLINE noCSSContainerCondition #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCSSContainerCondition :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSContainerRule" (css-conditional-5).
newtype CSSContainerRule = CSSContainerRule { unCSSContainerRule :: JSVal }

instance Eq CSSContainerRule where
  (CSSContainerRule a) == (CSSContainerRule b) = js_eq a b

instance PToJSVal CSSContainerRule where
  pToJSVal = unCSSContainerRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSContainerRule where
  pFromJSVal = CSSContainerRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSContainerRule where
  toJSVal = return . unCSSContainerRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSContainerRule where
  fromJSVal = return . fmap CSSContainerRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSContainerRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSConditionRule CSSContainerRule
instance IsCSSGroupingRule CSSContainerRule
instance IsCSSRule CSSContainerRule

instance IsGObject CSSContainerRule where
  typeGType _ = gTypeCSSContainerRule
  {-# INLINE typeGType #-}

noCSSContainerRule :: Maybe CSSContainerRule
noCSSContainerRule = Nothing
{-# INLINE noCSSContainerRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSContainerRule\"])" gTypeCSSContainerRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSCounterStyleRule" (css-counter-styles-3).
newtype CSSCounterStyleRule = CSSCounterStyleRule { unCSSCounterStyleRule :: JSVal }

instance Eq CSSCounterStyleRule where
  (CSSCounterStyleRule a) == (CSSCounterStyleRule b) = js_eq a b

instance PToJSVal CSSCounterStyleRule where
  pToJSVal = unCSSCounterStyleRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSCounterStyleRule where
  pFromJSVal = CSSCounterStyleRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSCounterStyleRule where
  toJSVal = return . unCSSCounterStyleRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSCounterStyleRule where
  fromJSVal = return . fmap CSSCounterStyleRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSCounterStyleRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSCounterStyleRule

instance IsGObject CSSCounterStyleRule where
  typeGType _ = gTypeCSSCounterStyleRule
  {-# INLINE typeGType #-}

noCSSCounterStyleRule :: Maybe CSSCounterStyleRule
noCSSCounterStyleRule = Nothing
{-# INLINE noCSSCounterStyleRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSCounterStyleRule\"])" gTypeCSSCounterStyleRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSFontFaceDescriptors" (css-fonts-5).
newtype CSSFontFaceDescriptors = CSSFontFaceDescriptors { unCSSFontFaceDescriptors :: JSVal }

instance Eq CSSFontFaceDescriptors where
  (CSSFontFaceDescriptors a) == (CSSFontFaceDescriptors b) = js_eq a b

instance PToJSVal CSSFontFaceDescriptors where
  pToJSVal = unCSSFontFaceDescriptors
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSFontFaceDescriptors where
  pFromJSVal = CSSFontFaceDescriptors
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSFontFaceDescriptors where
  toJSVal = return . unCSSFontFaceDescriptors
  {-# INLINE toJSVal #-}

instance FromJSVal CSSFontFaceDescriptors where
  fromJSVal = return . fmap CSSFontFaceDescriptors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSFontFaceDescriptors
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleDeclaration CSSFontFaceDescriptors

instance IsGObject CSSFontFaceDescriptors where
  typeGType _ = gTypeCSSFontFaceDescriptors
  {-# INLINE typeGType #-}

noCSSFontFaceDescriptors :: Maybe CSSFontFaceDescriptors
noCSSFontFaceDescriptors = Nothing
{-# INLINE noCSSFontFaceDescriptors #-}

foreign import javascript unsafe "(() => globalThis[\"CSSFontFaceDescriptors\"])" gTypeCSSFontFaceDescriptors :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSFontFaceRule" (css-fonts-5).
newtype CSSFontFaceRule = CSSFontFaceRule { unCSSFontFaceRule :: JSVal }

instance Eq CSSFontFaceRule where
  (CSSFontFaceRule a) == (CSSFontFaceRule b) = js_eq a b

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 = return . fmap CSSFontFaceRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSFontFaceRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSFontFaceRule

instance IsGObject CSSFontFaceRule where
  typeGType _ = gTypeCSSFontFaceRule
  {-# INLINE typeGType #-}

noCSSFontFaceRule :: Maybe CSSFontFaceRule
noCSSFontFaceRule = Nothing
{-# INLINE noCSSFontFaceRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSFontFaceRule\"])" gTypeCSSFontFaceRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSFontFeatureValuesRule" (css-fonts-4).
newtype CSSFontFeatureValuesRule = CSSFontFeatureValuesRule { unCSSFontFeatureValuesRule :: JSVal }

instance Eq CSSFontFeatureValuesRule where
  (CSSFontFeatureValuesRule a) == (CSSFontFeatureValuesRule b) = js_eq a b

instance PToJSVal CSSFontFeatureValuesRule where
  pToJSVal = unCSSFontFeatureValuesRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSFontFeatureValuesRule where
  pFromJSVal = CSSFontFeatureValuesRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSFontFeatureValuesRule where
  toJSVal = return . unCSSFontFeatureValuesRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSFontFeatureValuesRule where
  fromJSVal = return . fmap CSSFontFeatureValuesRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSFontFeatureValuesRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSFontFeatureValuesRule

instance IsGObject CSSFontFeatureValuesRule where
  typeGType _ = gTypeCSSFontFeatureValuesRule
  {-# INLINE typeGType #-}

noCSSFontFeatureValuesRule :: Maybe CSSFontFeatureValuesRule
noCSSFontFeatureValuesRule = Nothing
{-# INLINE noCSSFontFeatureValuesRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSFontFeatureValuesRule\"])" gTypeCSSFontFeatureValuesRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSFontPaletteValuesRule" (css-fonts-4).
newtype CSSFontPaletteValuesRule = CSSFontPaletteValuesRule { unCSSFontPaletteValuesRule :: JSVal }

instance Eq CSSFontPaletteValuesRule where
  (CSSFontPaletteValuesRule a) == (CSSFontPaletteValuesRule b) = js_eq a b

instance PToJSVal CSSFontPaletteValuesRule where
  pToJSVal = unCSSFontPaletteValuesRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSFontPaletteValuesRule where
  pFromJSVal = CSSFontPaletteValuesRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSFontPaletteValuesRule where
  toJSVal = return . unCSSFontPaletteValuesRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSFontPaletteValuesRule where
  fromJSVal = return . fmap CSSFontPaletteValuesRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSFontPaletteValuesRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSFontPaletteValuesRule

instance IsGObject CSSFontPaletteValuesRule where
  typeGType _ = gTypeCSSFontPaletteValuesRule
  {-# INLINE typeGType #-}

noCSSFontPaletteValuesRule :: Maybe CSSFontPaletteValuesRule
noCSSFontPaletteValuesRule = Nothing
{-# INLINE noCSSFontPaletteValuesRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSFontPaletteValuesRule\"])" gTypeCSSFontPaletteValuesRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSGroupingRule" (cssom-1).
newtype CSSGroupingRule = CSSGroupingRule { unCSSGroupingRule :: JSVal }

instance Eq CSSGroupingRule where
  (CSSGroupingRule a) == (CSSGroupingRule b) = js_eq a b

instance PToJSVal CSSGroupingRule where
  pToJSVal = unCSSGroupingRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSGroupingRule where
  pFromJSVal = CSSGroupingRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSGroupingRule where
  toJSVal = return . unCSSGroupingRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSGroupingRule where
  fromJSVal = return . fmap CSSGroupingRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSGroupingRule
  {-# INLINE fromJSValUnchecked #-}

class (IsCSSRule o, IsGObject o) => IsCSSGroupingRule o
toCSSGroupingRule :: IsCSSGroupingRule o => o -> CSSGroupingRule
toCSSGroupingRule = CSSGroupingRule . coerce

instance IsCSSGroupingRule CSSGroupingRule
instance IsCSSRule CSSGroupingRule

instance IsGObject CSSGroupingRule where
  typeGType _ = gTypeCSSGroupingRule
  {-# INLINE typeGType #-}

noCSSGroupingRule :: Maybe CSSGroupingRule
noCSSGroupingRule = Nothing
{-# INLINE noCSSGroupingRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSGroupingRule\"])" gTypeCSSGroupingRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSImageValue" (css-typed-om-1).
newtype CSSImageValue = CSSImageValue { unCSSImageValue :: JSVal }

instance Eq CSSImageValue where
  (CSSImageValue a) == (CSSImageValue b) = js_eq a b

instance PToJSVal CSSImageValue where
  pToJSVal = unCSSImageValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSImageValue where
  pFromJSVal = CSSImageValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSImageValue where
  toJSVal = return . unCSSImageValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSImageValue where
  fromJSVal = return . fmap CSSImageValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSImageValue
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleValue CSSImageValue

instance IsGObject CSSImageValue where
  typeGType _ = gTypeCSSImageValue
  {-# INLINE typeGType #-}

noCSSImageValue :: Maybe CSSImageValue
noCSSImageValue = Nothing
{-# INLINE noCSSImageValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSImageValue\"])" gTypeCSSImageValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSImportRule" (cssom-1).
newtype CSSImportRule = CSSImportRule { unCSSImportRule :: JSVal }

instance Eq CSSImportRule where
  (CSSImportRule a) == (CSSImportRule b) = js_eq a b

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 = return . fmap CSSImportRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSImportRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSImportRule

instance IsGObject CSSImportRule where
  typeGType _ = gTypeCSSImportRule
  {-# INLINE typeGType #-}

noCSSImportRule :: Maybe CSSImportRule
noCSSImportRule = Nothing
{-# INLINE noCSSImportRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSImportRule\"])" gTypeCSSImportRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSKeyframeRule" (css-animations-1).
newtype CSSKeyframeRule = CSSKeyframeRule { unCSSKeyframeRule :: JSVal }

instance Eq CSSKeyframeRule where
  (CSSKeyframeRule a) == (CSSKeyframeRule b) = js_eq a b

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 = return . fmap CSSKeyframeRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSKeyframeRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSKeyframeRule

instance IsGObject CSSKeyframeRule where
  typeGType _ = gTypeCSSKeyframeRule
  {-# INLINE typeGType #-}

noCSSKeyframeRule :: Maybe CSSKeyframeRule
noCSSKeyframeRule = Nothing
{-# INLINE noCSSKeyframeRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSKeyframeRule\"])" gTypeCSSKeyframeRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSKeyframesRule" (css-animations-1).
newtype CSSKeyframesRule = CSSKeyframesRule { unCSSKeyframesRule :: JSVal }

instance Eq CSSKeyframesRule where
  (CSSKeyframesRule a) == (CSSKeyframesRule b) = js_eq a b

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 = return . fmap CSSKeyframesRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSKeyframesRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSKeyframesRule

instance IsGObject CSSKeyframesRule where
  typeGType _ = gTypeCSSKeyframesRule
  {-# INLINE typeGType #-}

noCSSKeyframesRule :: Maybe CSSKeyframesRule
noCSSKeyframesRule = Nothing
{-# INLINE noCSSKeyframesRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSKeyframesRule\"])" gTypeCSSKeyframesRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSKeywordValue" (css-typed-om-1).
newtype CSSKeywordValue = CSSKeywordValue { unCSSKeywordValue :: JSVal }

instance Eq CSSKeywordValue where
  (CSSKeywordValue a) == (CSSKeywordValue b) = js_eq a b

instance PToJSVal CSSKeywordValue where
  pToJSVal = unCSSKeywordValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSKeywordValue where
  pFromJSVal = CSSKeywordValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSKeywordValue where
  toJSVal = return . unCSSKeywordValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSKeywordValue where
  fromJSVal = return . fmap CSSKeywordValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSKeywordValue
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleValue CSSKeywordValue

instance IsGObject CSSKeywordValue where
  typeGType _ = gTypeCSSKeywordValue
  {-# INLINE typeGType #-}

noCSSKeywordValue :: Maybe CSSKeywordValue
noCSSKeywordValue = Nothing
{-# INLINE noCSSKeywordValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSKeywordValue\"])" gTypeCSSKeywordValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSLayerBlockRule" (css-cascade-5).
newtype CSSLayerBlockRule = CSSLayerBlockRule { unCSSLayerBlockRule :: JSVal }

instance Eq CSSLayerBlockRule where
  (CSSLayerBlockRule a) == (CSSLayerBlockRule b) = js_eq a b

instance PToJSVal CSSLayerBlockRule where
  pToJSVal = unCSSLayerBlockRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSLayerBlockRule where
  pFromJSVal = CSSLayerBlockRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSLayerBlockRule where
  toJSVal = return . unCSSLayerBlockRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSLayerBlockRule where
  fromJSVal = return . fmap CSSLayerBlockRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSLayerBlockRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSGroupingRule CSSLayerBlockRule
instance IsCSSRule CSSLayerBlockRule

instance IsGObject CSSLayerBlockRule where
  typeGType _ = gTypeCSSLayerBlockRule
  {-# INLINE typeGType #-}

noCSSLayerBlockRule :: Maybe CSSLayerBlockRule
noCSSLayerBlockRule = Nothing
{-# INLINE noCSSLayerBlockRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSLayerBlockRule\"])" gTypeCSSLayerBlockRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSLayerStatementRule" (css-cascade-5).
newtype CSSLayerStatementRule = CSSLayerStatementRule { unCSSLayerStatementRule :: JSVal }

instance Eq CSSLayerStatementRule where
  (CSSLayerStatementRule a) == (CSSLayerStatementRule b) = js_eq a b

instance PToJSVal CSSLayerStatementRule where
  pToJSVal = unCSSLayerStatementRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSLayerStatementRule where
  pFromJSVal = CSSLayerStatementRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSLayerStatementRule where
  toJSVal = return . unCSSLayerStatementRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSLayerStatementRule where
  fromJSVal = return . fmap CSSLayerStatementRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSLayerStatementRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSLayerStatementRule

instance IsGObject CSSLayerStatementRule where
  typeGType _ = gTypeCSSLayerStatementRule
  {-# INLINE typeGType #-}

noCSSLayerStatementRule :: Maybe CSSLayerStatementRule
noCSSLayerStatementRule = Nothing
{-# INLINE noCSSLayerStatementRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSLayerStatementRule\"])" gTypeCSSLayerStatementRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathClamp" (css-typed-om-1).
newtype CSSMathClamp = CSSMathClamp { unCSSMathClamp :: JSVal }

instance Eq CSSMathClamp where
  (CSSMathClamp a) == (CSSMathClamp b) = js_eq a b

instance PToJSVal CSSMathClamp where
  pToJSVal = unCSSMathClamp
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathClamp where
  pFromJSVal = CSSMathClamp
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathClamp where
  toJSVal = return . unCSSMathClamp
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathClamp where
  fromJSVal = return . fmap CSSMathClamp . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathClamp
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathClamp
instance IsCSSNumericValue CSSMathClamp
instance IsCSSStyleValue CSSMathClamp

instance IsGObject CSSMathClamp where
  typeGType _ = gTypeCSSMathClamp
  {-# INLINE typeGType #-}

noCSSMathClamp :: Maybe CSSMathClamp
noCSSMathClamp = Nothing
{-# INLINE noCSSMathClamp #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathClamp\"])" gTypeCSSMathClamp :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathInvert" (css-typed-om-1).
newtype CSSMathInvert = CSSMathInvert { unCSSMathInvert :: JSVal }

instance Eq CSSMathInvert where
  (CSSMathInvert a) == (CSSMathInvert b) = js_eq a b

instance PToJSVal CSSMathInvert where
  pToJSVal = unCSSMathInvert
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathInvert where
  pFromJSVal = CSSMathInvert
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathInvert where
  toJSVal = return . unCSSMathInvert
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathInvert where
  fromJSVal = return . fmap CSSMathInvert . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathInvert
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathInvert
instance IsCSSNumericValue CSSMathInvert
instance IsCSSStyleValue CSSMathInvert

instance IsGObject CSSMathInvert where
  typeGType _ = gTypeCSSMathInvert
  {-# INLINE typeGType #-}

noCSSMathInvert :: Maybe CSSMathInvert
noCSSMathInvert = Nothing
{-# INLINE noCSSMathInvert #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathInvert\"])" gTypeCSSMathInvert :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathMax" (css-typed-om-1).
newtype CSSMathMax = CSSMathMax { unCSSMathMax :: JSVal }

instance Eq CSSMathMax where
  (CSSMathMax a) == (CSSMathMax b) = js_eq a b

instance PToJSVal CSSMathMax where
  pToJSVal = unCSSMathMax
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathMax where
  pFromJSVal = CSSMathMax
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathMax where
  toJSVal = return . unCSSMathMax
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathMax where
  fromJSVal = return . fmap CSSMathMax . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathMax
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathMax
instance IsCSSNumericValue CSSMathMax
instance IsCSSStyleValue CSSMathMax

instance IsGObject CSSMathMax where
  typeGType _ = gTypeCSSMathMax
  {-# INLINE typeGType #-}

noCSSMathMax :: Maybe CSSMathMax
noCSSMathMax = Nothing
{-# INLINE noCSSMathMax #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathMax\"])" gTypeCSSMathMax :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathMin" (css-typed-om-1).
newtype CSSMathMin = CSSMathMin { unCSSMathMin :: JSVal }

instance Eq CSSMathMin where
  (CSSMathMin a) == (CSSMathMin b) = js_eq a b

instance PToJSVal CSSMathMin where
  pToJSVal = unCSSMathMin
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathMin where
  pFromJSVal = CSSMathMin
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathMin where
  toJSVal = return . unCSSMathMin
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathMin where
  fromJSVal = return . fmap CSSMathMin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathMin
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathMin
instance IsCSSNumericValue CSSMathMin
instance IsCSSStyleValue CSSMathMin

instance IsGObject CSSMathMin where
  typeGType _ = gTypeCSSMathMin
  {-# INLINE typeGType #-}

noCSSMathMin :: Maybe CSSMathMin
noCSSMathMin = Nothing
{-# INLINE noCSSMathMin #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathMin\"])" gTypeCSSMathMin :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathNegate" (css-typed-om-1).
newtype CSSMathNegate = CSSMathNegate { unCSSMathNegate :: JSVal }

instance Eq CSSMathNegate where
  (CSSMathNegate a) == (CSSMathNegate b) = js_eq a b

instance PToJSVal CSSMathNegate where
  pToJSVal = unCSSMathNegate
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathNegate where
  pFromJSVal = CSSMathNegate
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathNegate where
  toJSVal = return . unCSSMathNegate
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathNegate where
  fromJSVal = return . fmap CSSMathNegate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathNegate
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathNegate
instance IsCSSNumericValue CSSMathNegate
instance IsCSSStyleValue CSSMathNegate

instance IsGObject CSSMathNegate where
  typeGType _ = gTypeCSSMathNegate
  {-# INLINE typeGType #-}

noCSSMathNegate :: Maybe CSSMathNegate
noCSSMathNegate = Nothing
{-# INLINE noCSSMathNegate #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathNegate\"])" gTypeCSSMathNegate :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathProduct" (css-typed-om-1).
newtype CSSMathProduct = CSSMathProduct { unCSSMathProduct :: JSVal }

instance Eq CSSMathProduct where
  (CSSMathProduct a) == (CSSMathProduct b) = js_eq a b

instance PToJSVal CSSMathProduct where
  pToJSVal = unCSSMathProduct
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathProduct where
  pFromJSVal = CSSMathProduct
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathProduct where
  toJSVal = return . unCSSMathProduct
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathProduct where
  fromJSVal = return . fmap CSSMathProduct . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathProduct
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathProduct
instance IsCSSNumericValue CSSMathProduct
instance IsCSSStyleValue CSSMathProduct

instance IsGObject CSSMathProduct where
  typeGType _ = gTypeCSSMathProduct
  {-# INLINE typeGType #-}

noCSSMathProduct :: Maybe CSSMathProduct
noCSSMathProduct = Nothing
{-# INLINE noCSSMathProduct #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathProduct\"])" gTypeCSSMathProduct :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathSum" (css-typed-om-1).
newtype CSSMathSum = CSSMathSum { unCSSMathSum :: JSVal }

instance Eq CSSMathSum where
  (CSSMathSum a) == (CSSMathSum b) = js_eq a b

instance PToJSVal CSSMathSum where
  pToJSVal = unCSSMathSum
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathSum where
  pFromJSVal = CSSMathSum
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathSum where
  toJSVal = return . unCSSMathSum
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathSum where
  fromJSVal = return . fmap CSSMathSum . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathSum
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSMathValue CSSMathSum
instance IsCSSNumericValue CSSMathSum
instance IsCSSStyleValue CSSMathSum

instance IsGObject CSSMathSum where
  typeGType _ = gTypeCSSMathSum
  {-# INLINE typeGType #-}

noCSSMathSum :: Maybe CSSMathSum
noCSSMathSum = Nothing
{-# INLINE noCSSMathSum #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathSum\"])" gTypeCSSMathSum :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMathValue" (css-typed-om-1).
newtype CSSMathValue = CSSMathValue { unCSSMathValue :: JSVal }

instance Eq CSSMathValue where
  (CSSMathValue a) == (CSSMathValue b) = js_eq a b

instance PToJSVal CSSMathValue where
  pToJSVal = unCSSMathValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMathValue where
  pFromJSVal = CSSMathValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMathValue where
  toJSVal = return . unCSSMathValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMathValue where
  fromJSVal = return . fmap CSSMathValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMathValue
  {-# INLINE fromJSValUnchecked #-}

class (IsCSSNumericValue o, IsGObject o) => IsCSSMathValue o
toCSSMathValue :: IsCSSMathValue o => o -> CSSMathValue
toCSSMathValue = CSSMathValue . coerce

instance IsCSSMathValue CSSMathValue
instance IsCSSNumericValue CSSMathValue
instance IsCSSStyleValue CSSMathValue

instance IsGObject CSSMathValue where
  typeGType _ = gTypeCSSMathValue
  {-# INLINE typeGType #-}

noCSSMathValue :: Maybe CSSMathValue
noCSSMathValue = Nothing
{-# INLINE noCSSMathValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMathValue\"])" gTypeCSSMathValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMatrixComponent" (css-typed-om-1).
newtype CSSMatrixComponent = CSSMatrixComponent { unCSSMatrixComponent :: JSVal }

instance Eq CSSMatrixComponent where
  (CSSMatrixComponent a) == (CSSMatrixComponent b) = js_eq a b

instance PToJSVal CSSMatrixComponent where
  pToJSVal = unCSSMatrixComponent
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMatrixComponent where
  pFromJSVal = CSSMatrixComponent
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMatrixComponent where
  toJSVal = return . unCSSMatrixComponent
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMatrixComponent where
  fromJSVal = return . fmap CSSMatrixComponent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMatrixComponent
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSMatrixComponent

instance IsGObject CSSMatrixComponent where
  typeGType _ = gTypeCSSMatrixComponent
  {-# INLINE typeGType #-}

noCSSMatrixComponent :: Maybe CSSMatrixComponent
noCSSMatrixComponent = Nothing
{-# INLINE noCSSMatrixComponent #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMatrixComponent\"])" gTypeCSSMatrixComponent :: GType

-- | Dictionary CSSMatrixComponentOptions (css-typed-om-1)
newtype CSSMatrixComponentOptions = CSSMatrixComponentOptions { unCSSMatrixComponentOptions :: JSVal }

instance Eq CSSMatrixComponentOptions where
  (CSSMatrixComponentOptions a) == (CSSMatrixComponentOptions b) = js_eq a b

instance PToJSVal CSSMatrixComponentOptions where
  pToJSVal = unCSSMatrixComponentOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSMatrixComponentOptions where
  pFromJSVal = CSSMatrixComponentOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSMatrixComponentOptions where
  toJSVal = return . unCSSMatrixComponentOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CSSMatrixComponentOptions where
  fromJSVal = return . fmap CSSMatrixComponentOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMatrixComponentOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSMatrixComponentOptions where
  typeGType _ = gTypeCSSMatrixComponentOptions
  {-# INLINE typeGType #-}

noCSSMatrixComponentOptions :: Maybe CSSMatrixComponentOptions
noCSSMatrixComponentOptions = Nothing
{-# INLINE noCSSMatrixComponentOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCSSMatrixComponentOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSMediaRule" (css-conditional-3).
newtype CSSMediaRule = CSSMediaRule { unCSSMediaRule :: JSVal }

instance Eq CSSMediaRule where
  (CSSMediaRule a) == (CSSMediaRule b) = js_eq a b

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 = return . fmap CSSMediaRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSMediaRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSConditionRule CSSMediaRule
instance IsCSSGroupingRule CSSMediaRule
instance IsCSSRule CSSMediaRule

instance IsGObject CSSMediaRule where
  typeGType _ = gTypeCSSMediaRule
  {-# INLINE typeGType #-}

noCSSMediaRule :: Maybe CSSMediaRule
noCSSMediaRule = Nothing
{-# INLINE noCSSMediaRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSMediaRule\"])" gTypeCSSMediaRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSNamespaceRule" (cssom-1).
newtype CSSNamespaceRule = CSSNamespaceRule { unCSSNamespaceRule :: JSVal }

instance Eq CSSNamespaceRule where
  (CSSNamespaceRule a) == (CSSNamespaceRule b) = js_eq a b

instance PToJSVal CSSNamespaceRule where
  pToJSVal = unCSSNamespaceRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNamespaceRule where
  pFromJSVal = CSSNamespaceRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNamespaceRule where
  toJSVal = return . unCSSNamespaceRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNamespaceRule where
  fromJSVal = return . fmap CSSNamespaceRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNamespaceRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSNamespaceRule

instance IsGObject CSSNamespaceRule where
  typeGType _ = gTypeCSSNamespaceRule
  {-# INLINE typeGType #-}

noCSSNamespaceRule :: Maybe CSSNamespaceRule
noCSSNamespaceRule = Nothing
{-# INLINE noCSSNamespaceRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSNamespaceRule\"])" gTypeCSSNamespaceRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSNestedDeclarations" (css-nesting-1).
newtype CSSNestedDeclarations = CSSNestedDeclarations { unCSSNestedDeclarations :: JSVal }

instance Eq CSSNestedDeclarations where
  (CSSNestedDeclarations a) == (CSSNestedDeclarations b) = js_eq a b

instance PToJSVal CSSNestedDeclarations where
  pToJSVal = unCSSNestedDeclarations
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNestedDeclarations where
  pFromJSVal = CSSNestedDeclarations
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNestedDeclarations where
  toJSVal = return . unCSSNestedDeclarations
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNestedDeclarations where
  fromJSVal = return . fmap CSSNestedDeclarations . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNestedDeclarations
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSNestedDeclarations

instance IsGObject CSSNestedDeclarations where
  typeGType _ = gTypeCSSNestedDeclarations
  {-# INLINE typeGType #-}

noCSSNestedDeclarations :: Maybe CSSNestedDeclarations
noCSSNestedDeclarations = Nothing
{-# INLINE noCSSNestedDeclarations #-}

foreign import javascript unsafe "(() => globalThis[\"CSSNestedDeclarations\"])" gTypeCSSNestedDeclarations :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSNumericArray" (css-typed-om-1).
newtype CSSNumericArray = CSSNumericArray { unCSSNumericArray :: JSVal }

instance Eq CSSNumericArray where
  (CSSNumericArray a) == (CSSNumericArray b) = js_eq a b

instance PToJSVal CSSNumericArray where
  pToJSVal = unCSSNumericArray
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNumericArray where
  pFromJSVal = CSSNumericArray
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNumericArray where
  toJSVal = return . unCSSNumericArray
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNumericArray where
  fromJSVal = return . fmap CSSNumericArray . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNumericArray
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSNumericArray where
  typeGType _ = gTypeCSSNumericArray
  {-# INLINE typeGType #-}

noCSSNumericArray :: Maybe CSSNumericArray
noCSSNumericArray = Nothing
{-# INLINE noCSSNumericArray #-}

foreign import javascript unsafe "(() => globalThis[\"CSSNumericArray\"])" gTypeCSSNumericArray :: GType

-- | Dictionary CSSNumericType (css-typed-om-1)
newtype CSSNumericType = CSSNumericType { unCSSNumericType :: JSVal }

instance Eq CSSNumericType where
  (CSSNumericType a) == (CSSNumericType b) = js_eq a b

instance PToJSVal CSSNumericType where
  pToJSVal = unCSSNumericType
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNumericType where
  pFromJSVal = CSSNumericType
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNumericType where
  toJSVal = return . unCSSNumericType
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNumericType where
  fromJSVal = return . fmap CSSNumericType . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNumericType
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSNumericType where
  typeGType _ = gTypeCSSNumericType
  {-# INLINE typeGType #-}

noCSSNumericType :: Maybe CSSNumericType
noCSSNumericType = Nothing
{-# INLINE noCSSNumericType #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCSSNumericType :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSNumericValue" (css-typed-om-1).
newtype CSSNumericValue = CSSNumericValue { unCSSNumericValue :: JSVal }

instance Eq CSSNumericValue where
  (CSSNumericValue a) == (CSSNumericValue b) = js_eq a b

instance PToJSVal CSSNumericValue where
  pToJSVal = unCSSNumericValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSNumericValue where
  pFromJSVal = CSSNumericValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSNumericValue where
  toJSVal = return . unCSSNumericValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSNumericValue where
  fromJSVal = return . fmap CSSNumericValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSNumericValue
  {-# INLINE fromJSValUnchecked #-}

class (IsCSSStyleValue o, IsGObject o) => IsCSSNumericValue o
toCSSNumericValue :: IsCSSNumericValue o => o -> CSSNumericValue
toCSSNumericValue = CSSNumericValue . coerce

instance IsCSSNumericValue CSSNumericValue
instance IsCSSStyleValue CSSNumericValue

instance IsGObject CSSNumericValue where
  typeGType _ = gTypeCSSNumericValue
  {-# INLINE typeGType #-}

noCSSNumericValue :: Maybe CSSNumericValue
noCSSNumericValue = Nothing
{-# INLINE noCSSNumericValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSNumericValue\"])" gTypeCSSNumericValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSPageDescriptors" (cssom-1).
newtype CSSPageDescriptors = CSSPageDescriptors { unCSSPageDescriptors :: JSVal }

instance Eq CSSPageDescriptors where
  (CSSPageDescriptors a) == (CSSPageDescriptors b) = js_eq a b

instance PToJSVal CSSPageDescriptors where
  pToJSVal = unCSSPageDescriptors
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSPageDescriptors where
  pFromJSVal = CSSPageDescriptors
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSPageDescriptors where
  toJSVal = return . unCSSPageDescriptors
  {-# INLINE toJSVal #-}

instance FromJSVal CSSPageDescriptors where
  fromJSVal = return . fmap CSSPageDescriptors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPageDescriptors
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleDeclaration CSSPageDescriptors

instance IsGObject CSSPageDescriptors where
  typeGType _ = gTypeCSSPageDescriptors
  {-# INLINE typeGType #-}

noCSSPageDescriptors :: Maybe CSSPageDescriptors
noCSSPageDescriptors = Nothing
{-# INLINE noCSSPageDescriptors #-}

foreign import javascript unsafe "(() => globalThis[\"CSSPageDescriptors\"])" gTypeCSSPageDescriptors :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSPageRule" (cssom-1).
newtype CSSPageRule = CSSPageRule { unCSSPageRule :: JSVal }

instance Eq CSSPageRule where
  (CSSPageRule a) == (CSSPageRule b) = js_eq a b

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 = return . fmap CSSPageRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPageRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSGroupingRule CSSPageRule
instance IsCSSRule CSSPageRule

instance IsGObject CSSPageRule where
  typeGType _ = gTypeCSSPageRule
  {-# INLINE typeGType #-}

noCSSPageRule :: Maybe CSSPageRule
noCSSPageRule = Nothing
{-# INLINE noCSSPageRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSPageRule\"])" gTypeCSSPageRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSPerspective" (css-typed-om-1).
newtype CSSPerspective = CSSPerspective { unCSSPerspective :: JSVal }

instance Eq CSSPerspective where
  (CSSPerspective a) == (CSSPerspective b) = js_eq a b

instance PToJSVal CSSPerspective where
  pToJSVal = unCSSPerspective
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSPerspective where
  pFromJSVal = CSSPerspective
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSPerspective where
  toJSVal = return . unCSSPerspective
  {-# INLINE toJSVal #-}

instance FromJSVal CSSPerspective where
  fromJSVal = return . fmap CSSPerspective . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPerspective
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSPerspective

instance IsGObject CSSPerspective where
  typeGType _ = gTypeCSSPerspective
  {-# INLINE typeGType #-}

noCSSPerspective :: Maybe CSSPerspective
noCSSPerspective = Nothing
{-# INLINE noCSSPerspective #-}

foreign import javascript unsafe "(() => globalThis[\"CSSPerspective\"])" gTypeCSSPerspective :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSPositionTryDescriptors" (css-anchor-position-1).
newtype CSSPositionTryDescriptors = CSSPositionTryDescriptors { unCSSPositionTryDescriptors :: JSVal }

instance Eq CSSPositionTryDescriptors where
  (CSSPositionTryDescriptors a) == (CSSPositionTryDescriptors b) = js_eq a b

instance PToJSVal CSSPositionTryDescriptors where
  pToJSVal = unCSSPositionTryDescriptors
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSPositionTryDescriptors where
  pFromJSVal = CSSPositionTryDescriptors
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSPositionTryDescriptors where
  toJSVal = return . unCSSPositionTryDescriptors
  {-# INLINE toJSVal #-}

instance FromJSVal CSSPositionTryDescriptors where
  fromJSVal = return . fmap CSSPositionTryDescriptors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPositionTryDescriptors
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleDeclaration CSSPositionTryDescriptors

instance IsGObject CSSPositionTryDescriptors where
  typeGType _ = gTypeCSSPositionTryDescriptors
  {-# INLINE typeGType #-}

noCSSPositionTryDescriptors :: Maybe CSSPositionTryDescriptors
noCSSPositionTryDescriptors = Nothing
{-# INLINE noCSSPositionTryDescriptors #-}

foreign import javascript unsafe "(() => globalThis[\"CSSPositionTryDescriptors\"])" gTypeCSSPositionTryDescriptors :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSPositionTryRule" (css-anchor-position-1).
newtype CSSPositionTryRule = CSSPositionTryRule { unCSSPositionTryRule :: JSVal }

instance Eq CSSPositionTryRule where
  (CSSPositionTryRule a) == (CSSPositionTryRule b) = js_eq a b

instance PToJSVal CSSPositionTryRule where
  pToJSVal = unCSSPositionTryRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSPositionTryRule where
  pFromJSVal = CSSPositionTryRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSPositionTryRule where
  toJSVal = return . unCSSPositionTryRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSPositionTryRule where
  fromJSVal = return . fmap CSSPositionTryRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPositionTryRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSPositionTryRule

instance IsGObject CSSPositionTryRule where
  typeGType _ = gTypeCSSPositionTryRule
  {-# INLINE typeGType #-}

noCSSPositionTryRule :: Maybe CSSPositionTryRule
noCSSPositionTryRule = Nothing
{-# INLINE noCSSPositionTryRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSPositionTryRule\"])" gTypeCSSPositionTryRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSPropertyRule" (css-properties-values-api-1).
newtype CSSPropertyRule = CSSPropertyRule { unCSSPropertyRule :: JSVal }

instance Eq CSSPropertyRule where
  (CSSPropertyRule a) == (CSSPropertyRule b) = js_eq a b

instance PToJSVal CSSPropertyRule where
  pToJSVal = unCSSPropertyRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSPropertyRule where
  pFromJSVal = CSSPropertyRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSPropertyRule where
  toJSVal = return . unCSSPropertyRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSPropertyRule where
  fromJSVal = return . fmap CSSPropertyRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSPropertyRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSPropertyRule

instance IsGObject CSSPropertyRule where
  typeGType _ = gTypeCSSPropertyRule
  {-# INLINE typeGType #-}

noCSSPropertyRule :: Maybe CSSPropertyRule
noCSSPropertyRule = Nothing
{-# INLINE noCSSPropertyRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSPropertyRule\"])" gTypeCSSPropertyRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSRotate" (css-typed-om-1).
newtype CSSRotate = CSSRotate { unCSSRotate :: JSVal }

instance Eq CSSRotate where
  (CSSRotate a) == (CSSRotate b) = js_eq a b

instance PToJSVal CSSRotate where
  pToJSVal = unCSSRotate
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSRotate where
  pFromJSVal = CSSRotate
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSRotate where
  toJSVal = return . unCSSRotate
  {-# INLINE toJSVal #-}

instance FromJSVal CSSRotate where
  fromJSVal = return . fmap CSSRotate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSRotate
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSRotate

instance IsGObject CSSRotate where
  typeGType _ = gTypeCSSRotate
  {-# INLINE typeGType #-}

noCSSRotate :: Maybe CSSRotate
noCSSRotate = Nothing
{-# INLINE noCSSRotate #-}

foreign import javascript unsafe "(() => globalThis[\"CSSRotate\"])" gTypeCSSRotate :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSRule" (cssom-1).
newtype CSSRule = CSSRule { unCSSRule :: JSVal }

instance Eq CSSRule where
  (CSSRule a) == (CSSRule b) = js_eq a b

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 = return . fmap CSSRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSRule
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCSSRule o
toCSSRule :: IsCSSRule o => o -> CSSRule
toCSSRule = CSSRule . coerce

instance IsCSSRule CSSRule

instance IsGObject CSSRule where
  typeGType _ = gTypeCSSRule
  {-# INLINE typeGType #-}

noCSSRule :: Maybe CSSRule
noCSSRule = Nothing
{-# INLINE noCSSRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSRule\"])" gTypeCSSRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSRuleList" (cssom-1).
newtype CSSRuleList = CSSRuleList { unCSSRuleList :: JSVal }

instance Eq CSSRuleList where
  (CSSRuleList a) == (CSSRuleList b) = js_eq a b

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 = return . fmap CSSRuleList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSRuleList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSRuleList where
  typeGType _ = gTypeCSSRuleList
  {-# INLINE typeGType #-}

noCSSRuleList :: Maybe CSSRuleList
noCSSRuleList = Nothing
{-# INLINE noCSSRuleList #-}

foreign import javascript unsafe "(() => globalThis[\"CSSRuleList\"])" gTypeCSSRuleList :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSScale" (css-typed-om-1).
newtype CSSScale = CSSScale { unCSSScale :: JSVal }

instance Eq CSSScale where
  (CSSScale a) == (CSSScale b) = js_eq a b

instance PToJSVal CSSScale where
  pToJSVal = unCSSScale
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSScale where
  pFromJSVal = CSSScale
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSScale where
  toJSVal = return . unCSSScale
  {-# INLINE toJSVal #-}

instance FromJSVal CSSScale where
  fromJSVal = return . fmap CSSScale . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSScale
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSScale

instance IsGObject CSSScale where
  typeGType _ = gTypeCSSScale
  {-# INLINE typeGType #-}

noCSSScale :: Maybe CSSScale
noCSSScale = Nothing
{-# INLINE noCSSScale #-}

foreign import javascript unsafe "(() => globalThis[\"CSSScale\"])" gTypeCSSScale :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSScopeRule" (css-cascade-6).
newtype CSSScopeRule = CSSScopeRule { unCSSScopeRule :: JSVal }

instance Eq CSSScopeRule where
  (CSSScopeRule a) == (CSSScopeRule b) = js_eq a b

instance PToJSVal CSSScopeRule where
  pToJSVal = unCSSScopeRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSScopeRule where
  pFromJSVal = CSSScopeRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSScopeRule where
  toJSVal = return . unCSSScopeRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSScopeRule where
  fromJSVal = return . fmap CSSScopeRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSScopeRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSGroupingRule CSSScopeRule
instance IsCSSRule CSSScopeRule

instance IsGObject CSSScopeRule where
  typeGType _ = gTypeCSSScopeRule
  {-# INLINE typeGType #-}

noCSSScopeRule :: Maybe CSSScopeRule
noCSSScopeRule = Nothing
{-# INLINE noCSSScopeRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSScopeRule\"])" gTypeCSSScopeRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSSkew" (css-typed-om-1).
newtype CSSSkew = CSSSkew { unCSSSkew :: JSVal }

instance Eq CSSSkew where
  (CSSSkew a) == (CSSSkew b) = js_eq a b

instance PToJSVal CSSSkew where
  pToJSVal = unCSSSkew
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSSkew where
  pFromJSVal = CSSSkew
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSSkew where
  toJSVal = return . unCSSSkew
  {-# INLINE toJSVal #-}

instance FromJSVal CSSSkew where
  fromJSVal = return . fmap CSSSkew . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSSkew
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSSkew

instance IsGObject CSSSkew where
  typeGType _ = gTypeCSSSkew
  {-# INLINE typeGType #-}

noCSSSkew :: Maybe CSSSkew
noCSSSkew = Nothing
{-# INLINE noCSSSkew #-}

foreign import javascript unsafe "(() => globalThis[\"CSSSkew\"])" gTypeCSSSkew :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSSkewX" (css-typed-om-1).
newtype CSSSkewX = CSSSkewX { unCSSSkewX :: JSVal }

instance Eq CSSSkewX where
  (CSSSkewX a) == (CSSSkewX b) = js_eq a b

instance PToJSVal CSSSkewX where
  pToJSVal = unCSSSkewX
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSSkewX where
  pFromJSVal = CSSSkewX
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSSkewX where
  toJSVal = return . unCSSSkewX
  {-# INLINE toJSVal #-}

instance FromJSVal CSSSkewX where
  fromJSVal = return . fmap CSSSkewX . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSSkewX
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSSkewX

instance IsGObject CSSSkewX where
  typeGType _ = gTypeCSSSkewX
  {-# INLINE typeGType #-}

noCSSSkewX :: Maybe CSSSkewX
noCSSSkewX = Nothing
{-# INLINE noCSSSkewX #-}

foreign import javascript unsafe "(() => globalThis[\"CSSSkewX\"])" gTypeCSSSkewX :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSSkewY" (css-typed-om-1).
newtype CSSSkewY = CSSSkewY { unCSSSkewY :: JSVal }

instance Eq CSSSkewY where
  (CSSSkewY a) == (CSSSkewY b) = js_eq a b

instance PToJSVal CSSSkewY where
  pToJSVal = unCSSSkewY
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSSkewY where
  pFromJSVal = CSSSkewY
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSSkewY where
  toJSVal = return . unCSSSkewY
  {-# INLINE toJSVal #-}

instance FromJSVal CSSSkewY where
  fromJSVal = return . fmap CSSSkewY . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSSkewY
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSSkewY

instance IsGObject CSSSkewY where
  typeGType _ = gTypeCSSSkewY
  {-# INLINE typeGType #-}

noCSSSkewY :: Maybe CSSSkewY
noCSSSkewY = Nothing
{-# INLINE noCSSSkewY #-}

foreign import javascript unsafe "(() => globalThis[\"CSSSkewY\"])" gTypeCSSSkewY :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSStartingStyleRule" (css-transitions-2).
newtype CSSStartingStyleRule = CSSStartingStyleRule { unCSSStartingStyleRule :: JSVal }

instance Eq CSSStartingStyleRule where
  (CSSStartingStyleRule a) == (CSSStartingStyleRule b) = js_eq a b

instance PToJSVal CSSStartingStyleRule where
  pToJSVal = unCSSStartingStyleRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSStartingStyleRule where
  pFromJSVal = CSSStartingStyleRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSStartingStyleRule where
  toJSVal = return . unCSSStartingStyleRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSStartingStyleRule where
  fromJSVal = return . fmap CSSStartingStyleRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStartingStyleRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSGroupingRule CSSStartingStyleRule
instance IsCSSRule CSSStartingStyleRule

instance IsGObject CSSStartingStyleRule where
  typeGType _ = gTypeCSSStartingStyleRule
  {-# INLINE typeGType #-}

noCSSStartingStyleRule :: Maybe CSSStartingStyleRule
noCSSStartingStyleRule = Nothing
{-# INLINE noCSSStartingStyleRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSStartingStyleRule\"])" gTypeCSSStartingStyleRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSStyleDeclaration" (cssom-1).
newtype CSSStyleDeclaration = CSSStyleDeclaration { unCSSStyleDeclaration :: JSVal }

instance Eq CSSStyleDeclaration where
  (CSSStyleDeclaration a) == (CSSStyleDeclaration b) = js_eq a b

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 = return . fmap CSSStyleDeclaration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleDeclaration
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCSSStyleDeclaration o
toCSSStyleDeclaration :: IsCSSStyleDeclaration o => o -> CSSStyleDeclaration
toCSSStyleDeclaration = CSSStyleDeclaration . coerce

instance IsCSSStyleDeclaration CSSStyleDeclaration

instance IsGObject CSSStyleDeclaration where
  typeGType _ = gTypeCSSStyleDeclaration
  {-# INLINE typeGType #-}

noCSSStyleDeclaration :: Maybe CSSStyleDeclaration
noCSSStyleDeclaration = Nothing
{-# INLINE noCSSStyleDeclaration #-}

foreign import javascript unsafe "(() => globalThis[\"CSSStyleDeclaration\"])" gTypeCSSStyleDeclaration :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSStyleProperties" (cssom-1).
newtype CSSStyleProperties = CSSStyleProperties { unCSSStyleProperties :: JSVal }

instance Eq CSSStyleProperties where
  (CSSStyleProperties a) == (CSSStyleProperties b) = js_eq a b

instance PToJSVal CSSStyleProperties where
  pToJSVal = unCSSStyleProperties
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSStyleProperties where
  pFromJSVal = CSSStyleProperties
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSStyleProperties where
  toJSVal = return . unCSSStyleProperties
  {-# INLINE toJSVal #-}

instance FromJSVal CSSStyleProperties where
  fromJSVal = return . fmap CSSStyleProperties . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleProperties
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleDeclaration CSSStyleProperties

instance IsGObject CSSStyleProperties where
  typeGType _ = gTypeCSSStyleProperties
  {-# INLINE typeGType #-}

noCSSStyleProperties :: Maybe CSSStyleProperties
noCSSStyleProperties = Nothing
{-# INLINE noCSSStyleProperties #-}

foreign import javascript unsafe "(() => globalThis[\"CSSStyleProperties\"])" gTypeCSSStyleProperties :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSStyleRule" (cssom-1).
newtype CSSStyleRule = CSSStyleRule { unCSSStyleRule :: JSVal }

instance Eq CSSStyleRule where
  (CSSStyleRule a) == (CSSStyleRule b) = js_eq a b

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 = return . fmap CSSStyleRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSGroupingRule CSSStyleRule
instance IsCSSRule CSSStyleRule

instance IsGObject CSSStyleRule where
  typeGType _ = gTypeCSSStyleRule
  {-# INLINE typeGType #-}

noCSSStyleRule :: Maybe CSSStyleRule
noCSSStyleRule = Nothing
{-# INLINE noCSSStyleRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSStyleRule\"])" gTypeCSSStyleRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSStyleSheet" (cssom-1).
newtype CSSStyleSheet = CSSStyleSheet { unCSSStyleSheet :: JSVal }

instance Eq CSSStyleSheet where
  (CSSStyleSheet a) == (CSSStyleSheet b) = js_eq a b

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 = return . fmap CSSStyleSheet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleSheet
  {-# INLINE fromJSValUnchecked #-}

instance IsStyleSheet CSSStyleSheet

instance IsGObject CSSStyleSheet where
  typeGType _ = gTypeCSSStyleSheet
  {-# INLINE typeGType #-}

noCSSStyleSheet :: Maybe CSSStyleSheet
noCSSStyleSheet = Nothing
{-# INLINE noCSSStyleSheet #-}

foreign import javascript unsafe "(() => globalThis[\"CSSStyleSheet\"])" gTypeCSSStyleSheet :: GType

-- | Dictionary CSSStyleSheetInit (cssom-1)
newtype CSSStyleSheetInit = CSSStyleSheetInit { unCSSStyleSheetInit :: JSVal }

instance Eq CSSStyleSheetInit where
  (CSSStyleSheetInit a) == (CSSStyleSheetInit b) = js_eq a b

instance PToJSVal CSSStyleSheetInit where
  pToJSVal = unCSSStyleSheetInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSStyleSheetInit where
  pFromJSVal = CSSStyleSheetInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSStyleSheetInit where
  toJSVal = return . unCSSStyleSheetInit
  {-# INLINE toJSVal #-}

instance FromJSVal CSSStyleSheetInit where
  fromJSVal = return . fmap CSSStyleSheetInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleSheetInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSStyleSheetInit where
  typeGType _ = gTypeCSSStyleSheetInit
  {-# INLINE typeGType #-}

noCSSStyleSheetInit :: Maybe CSSStyleSheetInit
noCSSStyleSheetInit = Nothing
{-# INLINE noCSSStyleSheetInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCSSStyleSheetInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSStyleValue" (css-typed-om-1).
newtype CSSStyleValue = CSSStyleValue { unCSSStyleValue :: JSVal }

instance Eq CSSStyleValue where
  (CSSStyleValue a) == (CSSStyleValue b) = js_eq a b

instance PToJSVal CSSStyleValue where
  pToJSVal = unCSSStyleValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSStyleValue where
  pFromJSVal = CSSStyleValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSStyleValue where
  toJSVal = return . unCSSStyleValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSStyleValue where
  fromJSVal = return . fmap CSSStyleValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSStyleValue
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCSSStyleValue o
toCSSStyleValue :: IsCSSStyleValue o => o -> CSSStyleValue
toCSSStyleValue = CSSStyleValue . coerce

instance IsCSSStyleValue CSSStyleValue

instance IsGObject CSSStyleValue where
  typeGType _ = gTypeCSSStyleValue
  {-# INLINE typeGType #-}

noCSSStyleValue :: Maybe CSSStyleValue
noCSSStyleValue = Nothing
{-# INLINE noCSSStyleValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSStyleValue\"])" gTypeCSSStyleValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSSupportsRule" (css-conditional-3).
newtype CSSSupportsRule = CSSSupportsRule { unCSSSupportsRule :: JSVal }

instance Eq CSSSupportsRule where
  (CSSSupportsRule a) == (CSSSupportsRule b) = js_eq a b

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 = return . fmap CSSSupportsRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSSupportsRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSConditionRule CSSSupportsRule
instance IsCSSGroupingRule CSSSupportsRule
instance IsCSSRule CSSSupportsRule

instance IsGObject CSSSupportsRule where
  typeGType _ = gTypeCSSSupportsRule
  {-# INLINE typeGType #-}

noCSSSupportsRule :: Maybe CSSSupportsRule
noCSSSupportsRule = Nothing
{-# INLINE noCSSSupportsRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSSupportsRule\"])" gTypeCSSSupportsRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSTransformComponent" (css-typed-om-1).
newtype CSSTransformComponent = CSSTransformComponent { unCSSTransformComponent :: JSVal }

instance Eq CSSTransformComponent where
  (CSSTransformComponent a) == (CSSTransformComponent b) = js_eq a b

instance PToJSVal CSSTransformComponent where
  pToJSVal = unCSSTransformComponent
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSTransformComponent where
  pFromJSVal = CSSTransformComponent
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSTransformComponent where
  toJSVal = return . unCSSTransformComponent
  {-# INLINE toJSVal #-}

instance FromJSVal CSSTransformComponent where
  fromJSVal = return . fmap CSSTransformComponent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSTransformComponent
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCSSTransformComponent o
toCSSTransformComponent :: IsCSSTransformComponent o => o -> CSSTransformComponent
toCSSTransformComponent = CSSTransformComponent . coerce

instance IsCSSTransformComponent CSSTransformComponent

instance IsGObject CSSTransformComponent where
  typeGType _ = gTypeCSSTransformComponent
  {-# INLINE typeGType #-}

noCSSTransformComponent :: Maybe CSSTransformComponent
noCSSTransformComponent = Nothing
{-# INLINE noCSSTransformComponent #-}

foreign import javascript unsafe "(() => globalThis[\"CSSTransformComponent\"])" gTypeCSSTransformComponent :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSTransformValue" (css-typed-om-1).
newtype CSSTransformValue = CSSTransformValue { unCSSTransformValue :: JSVal }

instance Eq CSSTransformValue where
  (CSSTransformValue a) == (CSSTransformValue b) = js_eq a b

instance PToJSVal CSSTransformValue where
  pToJSVal = unCSSTransformValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSTransformValue where
  pFromJSVal = CSSTransformValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSTransformValue where
  toJSVal = return . unCSSTransformValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSTransformValue where
  fromJSVal = return . fmap CSSTransformValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSTransformValue
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleValue CSSTransformValue

instance IsGObject CSSTransformValue where
  typeGType _ = gTypeCSSTransformValue
  {-# INLINE typeGType #-}

noCSSTransformValue :: Maybe CSSTransformValue
noCSSTransformValue = Nothing
{-# INLINE noCSSTransformValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSTransformValue\"])" gTypeCSSTransformValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSTransition" (css-transitions-2).
newtype CSSTransition = CSSTransition { unCSSTransition :: JSVal }

instance Eq CSSTransition where
  (CSSTransition a) == (CSSTransition b) = js_eq a b

instance PToJSVal CSSTransition where
  pToJSVal = unCSSTransition
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSTransition where
  pFromJSVal = CSSTransition
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSTransition where
  toJSVal = return . unCSSTransition
  {-# INLINE toJSVal #-}

instance FromJSVal CSSTransition where
  fromJSVal = return . fmap CSSTransition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSTransition
  {-# INLINE fromJSValUnchecked #-}

instance IsAnimation CSSTransition
instance IsEventTarget CSSTransition

instance IsGObject CSSTransition where
  typeGType _ = gTypeCSSTransition
  {-# INLINE typeGType #-}

noCSSTransition :: Maybe CSSTransition
noCSSTransition = Nothing
{-# INLINE noCSSTransition #-}

foreign import javascript unsafe "(() => globalThis[\"CSSTransition\"])" gTypeCSSTransition :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSTranslate" (css-typed-om-1).
newtype CSSTranslate = CSSTranslate { unCSSTranslate :: JSVal }

instance Eq CSSTranslate where
  (CSSTranslate a) == (CSSTranslate b) = js_eq a b

instance PToJSVal CSSTranslate where
  pToJSVal = unCSSTranslate
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSTranslate where
  pFromJSVal = CSSTranslate
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSTranslate where
  toJSVal = return . unCSSTranslate
  {-# INLINE toJSVal #-}

instance FromJSVal CSSTranslate where
  fromJSVal = return . fmap CSSTranslate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSTranslate
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSTransformComponent CSSTranslate

instance IsGObject CSSTranslate where
  typeGType _ = gTypeCSSTranslate
  {-# INLINE typeGType #-}

noCSSTranslate :: Maybe CSSTranslate
noCSSTranslate = Nothing
{-# INLINE noCSSTranslate #-}

foreign import javascript unsafe "(() => globalThis[\"CSSTranslate\"])" gTypeCSSTranslate :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSUnitValue" (css-typed-om-1).
newtype CSSUnitValue = CSSUnitValue { unCSSUnitValue :: JSVal }

instance Eq CSSUnitValue where
  (CSSUnitValue a) == (CSSUnitValue b) = js_eq a b

instance PToJSVal CSSUnitValue where
  pToJSVal = unCSSUnitValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSUnitValue where
  pFromJSVal = CSSUnitValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSUnitValue where
  toJSVal = return . unCSSUnitValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSUnitValue where
  fromJSVal = return . fmap CSSUnitValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSUnitValue
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSNumericValue CSSUnitValue
instance IsCSSStyleValue CSSUnitValue

instance IsGObject CSSUnitValue where
  typeGType _ = gTypeCSSUnitValue
  {-# INLINE typeGType #-}

noCSSUnitValue :: Maybe CSSUnitValue
noCSSUnitValue = Nothing
{-# INLINE noCSSUnitValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSUnitValue\"])" gTypeCSSUnitValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSUnparsedValue" (css-typed-om-1).
newtype CSSUnparsedValue = CSSUnparsedValue { unCSSUnparsedValue :: JSVal }

instance Eq CSSUnparsedValue where
  (CSSUnparsedValue a) == (CSSUnparsedValue b) = js_eq a b

instance PToJSVal CSSUnparsedValue where
  pToJSVal = unCSSUnparsedValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSUnparsedValue where
  pFromJSVal = CSSUnparsedValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSUnparsedValue where
  toJSVal = return . unCSSUnparsedValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSUnparsedValue where
  fromJSVal = return . fmap CSSUnparsedValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSUnparsedValue
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSStyleValue CSSUnparsedValue

instance IsGObject CSSUnparsedValue where
  typeGType _ = gTypeCSSUnparsedValue
  {-# INLINE typeGType #-}

noCSSUnparsedValue :: Maybe CSSUnparsedValue
noCSSUnparsedValue = Nothing
{-# INLINE noCSSUnparsedValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSUnparsedValue\"])" gTypeCSSUnparsedValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSVariableReferenceValue" (css-typed-om-1).
newtype CSSVariableReferenceValue = CSSVariableReferenceValue { unCSSVariableReferenceValue :: JSVal }

instance Eq CSSVariableReferenceValue where
  (CSSVariableReferenceValue a) == (CSSVariableReferenceValue b) = js_eq a b

instance PToJSVal CSSVariableReferenceValue where
  pToJSVal = unCSSVariableReferenceValue
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSVariableReferenceValue where
  pFromJSVal = CSSVariableReferenceValue
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSVariableReferenceValue where
  toJSVal = return . unCSSVariableReferenceValue
  {-# INLINE toJSVal #-}

instance FromJSVal CSSVariableReferenceValue where
  fromJSVal = return . fmap CSSVariableReferenceValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSVariableReferenceValue
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CSSVariableReferenceValue where
  typeGType _ = gTypeCSSVariableReferenceValue
  {-# INLINE typeGType #-}

noCSSVariableReferenceValue :: Maybe CSSVariableReferenceValue
noCSSVariableReferenceValue = Nothing
{-# INLINE noCSSVariableReferenceValue #-}

foreign import javascript unsafe "(() => globalThis[\"CSSVariableReferenceValue\"])" gTypeCSSVariableReferenceValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.CSSViewTransitionRule" (css-view-transitions-2).
newtype CSSViewTransitionRule = CSSViewTransitionRule { unCSSViewTransitionRule :: JSVal }

instance Eq CSSViewTransitionRule where
  (CSSViewTransitionRule a) == (CSSViewTransitionRule b) = js_eq a b

instance PToJSVal CSSViewTransitionRule where
  pToJSVal = unCSSViewTransitionRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal CSSViewTransitionRule where
  pFromJSVal = CSSViewTransitionRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal CSSViewTransitionRule where
  toJSVal = return . unCSSViewTransitionRule
  {-# INLINE toJSVal #-}

instance FromJSVal CSSViewTransitionRule where
  fromJSVal = return . fmap CSSViewTransitionRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CSSViewTransitionRule
  {-# INLINE fromJSValUnchecked #-}

instance IsCSSRule CSSViewTransitionRule

instance IsGObject CSSViewTransitionRule where
  typeGType _ = gTypeCSSViewTransitionRule
  {-# INLINE typeGType #-}

noCSSViewTransitionRule :: Maybe CSSViewTransitionRule
noCSSViewTransitionRule = Nothing
{-# INLINE noCSSViewTransitionRule #-}

foreign import javascript unsafe "(() => globalThis[\"CSSViewTransitionRule\"])" gTypeCSSViewTransitionRule :: GType

-- | Functions for this interface are in "GHCJS.DOM.Cache" (service-workers).
newtype Cache = Cache { unCache :: JSVal }

instance Eq Cache where
  (Cache a) == (Cache b) = js_eq a b

instance PToJSVal Cache where
  pToJSVal = unCache
  {-# INLINE pToJSVal #-}

instance PFromJSVal Cache where
  pFromJSVal = Cache
  {-# INLINE pFromJSVal #-}

instance ToJSVal Cache where
  toJSVal = return . unCache
  {-# INLINE toJSVal #-}

instance FromJSVal Cache where
  fromJSVal = return . fmap Cache . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Cache
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Cache where
  typeGType _ = gTypeCache
  {-# INLINE typeGType #-}

noCache :: Maybe Cache
noCache = Nothing
{-# INLINE noCache #-}

foreign import javascript unsafe "(() => globalThis[\"Cache\"])" gTypeCache :: GType

-- | Dictionary CacheQueryOptions (service-workers)
newtype CacheQueryOptions = CacheQueryOptions { unCacheQueryOptions :: JSVal }

instance Eq CacheQueryOptions where
  (CacheQueryOptions a) == (CacheQueryOptions b) = js_eq a b

instance PToJSVal CacheQueryOptions where
  pToJSVal = unCacheQueryOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CacheQueryOptions where
  pFromJSVal = CacheQueryOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CacheQueryOptions where
  toJSVal = return . unCacheQueryOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CacheQueryOptions where
  fromJSVal = return . fmap CacheQueryOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CacheQueryOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCacheQueryOptions o
toCacheQueryOptions :: IsCacheQueryOptions o => o -> CacheQueryOptions
toCacheQueryOptions = CacheQueryOptions . coerce

instance IsCacheQueryOptions CacheQueryOptions

instance IsGObject CacheQueryOptions where
  typeGType _ = gTypeCacheQueryOptions
  {-# INLINE typeGType #-}

noCacheQueryOptions :: Maybe CacheQueryOptions
noCacheQueryOptions = Nothing
{-# INLINE noCacheQueryOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCacheQueryOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CacheStorage" (service-workers).
newtype CacheStorage = CacheStorage { unCacheStorage :: JSVal }

instance Eq CacheStorage where
  (CacheStorage a) == (CacheStorage b) = js_eq a b

instance PToJSVal CacheStorage where
  pToJSVal = unCacheStorage
  {-# INLINE pToJSVal #-}

instance PFromJSVal CacheStorage where
  pFromJSVal = CacheStorage
  {-# INLINE pFromJSVal #-}

instance ToJSVal CacheStorage where
  toJSVal = return . unCacheStorage
  {-# INLINE toJSVal #-}

instance FromJSVal CacheStorage where
  fromJSVal = return . fmap CacheStorage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CacheStorage
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CacheStorage where
  typeGType _ = gTypeCacheStorage
  {-# INLINE typeGType #-}

noCacheStorage :: Maybe CacheStorage
noCacheStorage = Nothing
{-# INLINE noCacheStorage #-}

foreign import javascript unsafe "(() => globalThis[\"CacheStorage\"])" gTypeCacheStorage :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasCaptureMediaStreamTrack" (mediacapture-fromelement).
newtype CanvasCaptureMediaStreamTrack = CanvasCaptureMediaStreamTrack { unCanvasCaptureMediaStreamTrack :: JSVal }

instance Eq CanvasCaptureMediaStreamTrack where
  (CanvasCaptureMediaStreamTrack a) == (CanvasCaptureMediaStreamTrack b) = js_eq a b

instance PToJSVal CanvasCaptureMediaStreamTrack where
  pToJSVal = unCanvasCaptureMediaStreamTrack
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasCaptureMediaStreamTrack where
  pFromJSVal = CanvasCaptureMediaStreamTrack
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasCaptureMediaStreamTrack where
  toJSVal = return . unCanvasCaptureMediaStreamTrack
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasCaptureMediaStreamTrack where
  fromJSVal = return . fmap CanvasCaptureMediaStreamTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasCaptureMediaStreamTrack
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaStreamTrack CanvasCaptureMediaStreamTrack
instance IsEventTarget CanvasCaptureMediaStreamTrack

instance IsGObject CanvasCaptureMediaStreamTrack where
  typeGType _ = gTypeCanvasCaptureMediaStreamTrack
  {-# INLINE typeGType #-}

noCanvasCaptureMediaStreamTrack :: Maybe CanvasCaptureMediaStreamTrack
noCanvasCaptureMediaStreamTrack = Nothing
{-# INLINE noCanvasCaptureMediaStreamTrack #-}

foreign import javascript unsafe "(() => globalThis[\"CanvasCaptureMediaStreamTrack\"])" gTypeCanvasCaptureMediaStreamTrack :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasCompositing" (html).
newtype CanvasCompositing = CanvasCompositing { unCanvasCompositing :: JSVal }

instance Eq CanvasCompositing where
  (CanvasCompositing a) == (CanvasCompositing b) = js_eq a b

instance PToJSVal CanvasCompositing where
  pToJSVal = unCanvasCompositing
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasCompositing where
  pFromJSVal = CanvasCompositing
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasCompositing where
  toJSVal = return . unCanvasCompositing
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasCompositing where
  fromJSVal = return . fmap CanvasCompositing . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasCompositing
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasCompositing o
toCanvasCompositing :: IsCanvasCompositing o => o -> CanvasCompositing
toCanvasCompositing = CanvasCompositing . coerce

instance IsCanvasCompositing CanvasCompositing

instance IsGObject CanvasCompositing where
  typeGType _ = gTypeCanvasCompositing
  {-# INLINE typeGType #-}

noCanvasCompositing :: Maybe CanvasCompositing
noCanvasCompositing = Nothing
{-# INLINE noCanvasCompositing #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasCompositing :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasDrawImage" (html).
newtype CanvasDrawImage = CanvasDrawImage { unCanvasDrawImage :: JSVal }

instance Eq CanvasDrawImage where
  (CanvasDrawImage a) == (CanvasDrawImage b) = js_eq a b

instance PToJSVal CanvasDrawImage where
  pToJSVal = unCanvasDrawImage
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasDrawImage where
  pFromJSVal = CanvasDrawImage
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasDrawImage where
  toJSVal = return . unCanvasDrawImage
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasDrawImage where
  fromJSVal = return . fmap CanvasDrawImage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasDrawImage
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasDrawImage o
toCanvasDrawImage :: IsCanvasDrawImage o => o -> CanvasDrawImage
toCanvasDrawImage = CanvasDrawImage . coerce

instance IsCanvasDrawImage CanvasDrawImage

instance IsGObject CanvasDrawImage where
  typeGType _ = gTypeCanvasDrawImage
  {-# INLINE typeGType #-}

noCanvasDrawImage :: Maybe CanvasDrawImage
noCanvasDrawImage = Nothing
{-# INLINE noCanvasDrawImage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasDrawImage :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasDrawPath" (html).
newtype CanvasDrawPath = CanvasDrawPath { unCanvasDrawPath :: JSVal }

instance Eq CanvasDrawPath where
  (CanvasDrawPath a) == (CanvasDrawPath b) = js_eq a b

instance PToJSVal CanvasDrawPath where
  pToJSVal = unCanvasDrawPath
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasDrawPath where
  pFromJSVal = CanvasDrawPath
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasDrawPath where
  toJSVal = return . unCanvasDrawPath
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasDrawPath where
  fromJSVal = return . fmap CanvasDrawPath . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasDrawPath
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasDrawPath o
toCanvasDrawPath :: IsCanvasDrawPath o => o -> CanvasDrawPath
toCanvasDrawPath = CanvasDrawPath . coerce

instance IsCanvasDrawPath CanvasDrawPath

instance IsGObject CanvasDrawPath where
  typeGType _ = gTypeCanvasDrawPath
  {-# INLINE typeGType #-}

noCanvasDrawPath :: Maybe CanvasDrawPath
noCanvasDrawPath = Nothing
{-# INLINE noCanvasDrawPath #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasDrawPath :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasFillStrokeStyles" (html).
newtype CanvasFillStrokeStyles = CanvasFillStrokeStyles { unCanvasFillStrokeStyles :: JSVal }

instance Eq CanvasFillStrokeStyles where
  (CanvasFillStrokeStyles a) == (CanvasFillStrokeStyles b) = js_eq a b

instance PToJSVal CanvasFillStrokeStyles where
  pToJSVal = unCanvasFillStrokeStyles
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasFillStrokeStyles where
  pFromJSVal = CanvasFillStrokeStyles
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasFillStrokeStyles where
  toJSVal = return . unCanvasFillStrokeStyles
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasFillStrokeStyles where
  fromJSVal = return . fmap CanvasFillStrokeStyles . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasFillStrokeStyles
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasFillStrokeStyles o
toCanvasFillStrokeStyles :: IsCanvasFillStrokeStyles o => o -> CanvasFillStrokeStyles
toCanvasFillStrokeStyles = CanvasFillStrokeStyles . coerce

instance IsCanvasFillStrokeStyles CanvasFillStrokeStyles

instance IsGObject CanvasFillStrokeStyles where
  typeGType _ = gTypeCanvasFillStrokeStyles
  {-# INLINE typeGType #-}

noCanvasFillStrokeStyles :: Maybe CanvasFillStrokeStyles
noCanvasFillStrokeStyles = Nothing
{-# INLINE noCanvasFillStrokeStyles #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasFillStrokeStyles :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasFilters" (html).
newtype CanvasFilters = CanvasFilters { unCanvasFilters :: JSVal }

instance Eq CanvasFilters where
  (CanvasFilters a) == (CanvasFilters b) = js_eq a b

instance PToJSVal CanvasFilters where
  pToJSVal = unCanvasFilters
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasFilters where
  pFromJSVal = CanvasFilters
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasFilters where
  toJSVal = return . unCanvasFilters
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasFilters where
  fromJSVal = return . fmap CanvasFilters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasFilters
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasFilters o
toCanvasFilters :: IsCanvasFilters o => o -> CanvasFilters
toCanvasFilters = CanvasFilters . coerce

instance IsCanvasFilters CanvasFilters

instance IsGObject CanvasFilters where
  typeGType _ = gTypeCanvasFilters
  {-# INLINE typeGType #-}

noCanvasFilters :: Maybe CanvasFilters
noCanvasFilters = Nothing
{-# INLINE noCanvasFilters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasFilters :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasGradient" (html).
newtype CanvasGradient = CanvasGradient { unCanvasGradient :: JSVal }

instance Eq CanvasGradient where
  (CanvasGradient a) == (CanvasGradient b) = js_eq a b

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 = return . fmap CanvasGradient . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasGradient
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CanvasGradient where
  typeGType _ = gTypeCanvasGradient
  {-# INLINE typeGType #-}

noCanvasGradient :: Maybe CanvasGradient
noCanvasGradient = Nothing
{-# INLINE noCanvasGradient #-}

foreign import javascript unsafe "(() => globalThis[\"CanvasGradient\"])" gTypeCanvasGradient :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasImageData" (html).
newtype CanvasImageData = CanvasImageData { unCanvasImageData :: JSVal }

instance Eq CanvasImageData where
  (CanvasImageData a) == (CanvasImageData b) = js_eq a b

instance PToJSVal CanvasImageData where
  pToJSVal = unCanvasImageData
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasImageData where
  pFromJSVal = CanvasImageData
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasImageData where
  toJSVal = return . unCanvasImageData
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasImageData where
  fromJSVal = return . fmap CanvasImageData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasImageData
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasImageData o
toCanvasImageData :: IsCanvasImageData o => o -> CanvasImageData
toCanvasImageData = CanvasImageData . coerce

instance IsCanvasImageData CanvasImageData

instance IsGObject CanvasImageData where
  typeGType _ = gTypeCanvasImageData
  {-# INLINE typeGType #-}

noCanvasImageData :: Maybe CanvasImageData
noCanvasImageData = Nothing
{-# INLINE noCanvasImageData #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasImageData :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasImageSmoothing" (html).
newtype CanvasImageSmoothing = CanvasImageSmoothing { unCanvasImageSmoothing :: JSVal }

instance Eq CanvasImageSmoothing where
  (CanvasImageSmoothing a) == (CanvasImageSmoothing b) = js_eq a b

instance PToJSVal CanvasImageSmoothing where
  pToJSVal = unCanvasImageSmoothing
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasImageSmoothing where
  pFromJSVal = CanvasImageSmoothing
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasImageSmoothing where
  toJSVal = return . unCanvasImageSmoothing
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasImageSmoothing where
  fromJSVal = return . fmap CanvasImageSmoothing . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasImageSmoothing
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasImageSmoothing o
toCanvasImageSmoothing :: IsCanvasImageSmoothing o => o -> CanvasImageSmoothing
toCanvasImageSmoothing = CanvasImageSmoothing . coerce

instance IsCanvasImageSmoothing CanvasImageSmoothing

instance IsGObject CanvasImageSmoothing where
  typeGType _ = gTypeCanvasImageSmoothing
  {-# INLINE typeGType #-}

noCanvasImageSmoothing :: Maybe CanvasImageSmoothing
noCanvasImageSmoothing = Nothing
{-# INLINE noCanvasImageSmoothing #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasImageSmoothing :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasPath" (html).
newtype CanvasPath = CanvasPath { unCanvasPath :: JSVal }

instance Eq CanvasPath where
  (CanvasPath a) == (CanvasPath b) = js_eq a b

instance PToJSVal CanvasPath where
  pToJSVal = unCanvasPath
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasPath where
  pFromJSVal = CanvasPath
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasPath where
  toJSVal = return . unCanvasPath
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasPath where
  fromJSVal = return . fmap CanvasPath . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasPath
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasPath o
toCanvasPath :: IsCanvasPath o => o -> CanvasPath
toCanvasPath = CanvasPath . coerce

instance IsCanvasPath CanvasPath

instance IsGObject CanvasPath where
  typeGType _ = gTypeCanvasPath
  {-# INLINE typeGType #-}

noCanvasPath :: Maybe CanvasPath
noCanvasPath = Nothing
{-# INLINE noCanvasPath #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasPath :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasPathDrawingStyles" (html).
newtype CanvasPathDrawingStyles = CanvasPathDrawingStyles { unCanvasPathDrawingStyles :: JSVal }

instance Eq CanvasPathDrawingStyles where
  (CanvasPathDrawingStyles a) == (CanvasPathDrawingStyles b) = js_eq a b

instance PToJSVal CanvasPathDrawingStyles where
  pToJSVal = unCanvasPathDrawingStyles
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasPathDrawingStyles where
  pFromJSVal = CanvasPathDrawingStyles
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasPathDrawingStyles where
  toJSVal = return . unCanvasPathDrawingStyles
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasPathDrawingStyles where
  fromJSVal = return . fmap CanvasPathDrawingStyles . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasPathDrawingStyles
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasPathDrawingStyles o
toCanvasPathDrawingStyles :: IsCanvasPathDrawingStyles o => o -> CanvasPathDrawingStyles
toCanvasPathDrawingStyles = CanvasPathDrawingStyles . coerce

instance IsCanvasPathDrawingStyles CanvasPathDrawingStyles

instance IsGObject CanvasPathDrawingStyles where
  typeGType _ = gTypeCanvasPathDrawingStyles
  {-# INLINE typeGType #-}

noCanvasPathDrawingStyles :: Maybe CanvasPathDrawingStyles
noCanvasPathDrawingStyles = Nothing
{-# INLINE noCanvasPathDrawingStyles #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasPathDrawingStyles :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasPattern" (html).
newtype CanvasPattern = CanvasPattern { unCanvasPattern :: JSVal }

instance Eq CanvasPattern where
  (CanvasPattern a) == (CanvasPattern b) = js_eq a b

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 = return . fmap CanvasPattern . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasPattern
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CanvasPattern where
  typeGType _ = gTypeCanvasPattern
  {-# INLINE typeGType #-}

noCanvasPattern :: Maybe CanvasPattern
noCanvasPattern = Nothing
{-# INLINE noCanvasPattern #-}

foreign import javascript unsafe "(() => globalThis[\"CanvasPattern\"])" gTypeCanvasPattern :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasRect" (html).
newtype CanvasRect = CanvasRect { unCanvasRect :: JSVal }

instance Eq CanvasRect where
  (CanvasRect a) == (CanvasRect b) = js_eq a b

instance PToJSVal CanvasRect where
  pToJSVal = unCanvasRect
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasRect where
  pFromJSVal = CanvasRect
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasRect where
  toJSVal = return . unCanvasRect
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasRect where
  fromJSVal = return . fmap CanvasRect . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasRect
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasRect o
toCanvasRect :: IsCanvasRect o => o -> CanvasRect
toCanvasRect = CanvasRect . coerce

instance IsCanvasRect CanvasRect

instance IsGObject CanvasRect where
  typeGType _ = gTypeCanvasRect
  {-# INLINE typeGType #-}

noCanvasRect :: Maybe CanvasRect
noCanvasRect = Nothing
{-# INLINE noCanvasRect #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasRect :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasRenderingContext2D" (html).
newtype CanvasRenderingContext2D = CanvasRenderingContext2D { unCanvasRenderingContext2D :: JSVal }

instance Eq CanvasRenderingContext2D where
  (CanvasRenderingContext2D a) == (CanvasRenderingContext2D b) = js_eq a b

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 = return . fmap CanvasRenderingContext2D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasRenderingContext2D
  {-# INLINE fromJSValUnchecked #-}

instance IsCanvasCompositing CanvasRenderingContext2D
instance IsCanvasDrawImage CanvasRenderingContext2D
instance IsCanvasDrawPath CanvasRenderingContext2D
instance IsCanvasFillStrokeStyles CanvasRenderingContext2D
instance IsCanvasFilters CanvasRenderingContext2D
instance IsCanvasImageData CanvasRenderingContext2D
instance IsCanvasImageSmoothing CanvasRenderingContext2D
instance IsCanvasPath CanvasRenderingContext2D
instance IsCanvasPathDrawingStyles CanvasRenderingContext2D
instance IsCanvasRect CanvasRenderingContext2D
instance IsCanvasSettings CanvasRenderingContext2D
instance IsCanvasShadowStyles CanvasRenderingContext2D
instance IsCanvasState CanvasRenderingContext2D
instance IsCanvasText CanvasRenderingContext2D
instance IsCanvasTextDrawingStyles CanvasRenderingContext2D
instance IsCanvasTransform CanvasRenderingContext2D
instance IsCanvasUserInterface CanvasRenderingContext2D

instance IsGObject CanvasRenderingContext2D where
  typeGType _ = gTypeCanvasRenderingContext2D
  {-# INLINE typeGType #-}

noCanvasRenderingContext2D :: Maybe CanvasRenderingContext2D
noCanvasRenderingContext2D = Nothing
{-# INLINE noCanvasRenderingContext2D #-}

foreign import javascript unsafe "(() => globalThis[\"CanvasRenderingContext2D\"])" gTypeCanvasRenderingContext2D :: GType

-- | Dictionary CanvasRenderingContext2DSettings (html)
newtype CanvasRenderingContext2DSettings = CanvasRenderingContext2DSettings { unCanvasRenderingContext2DSettings :: JSVal }

instance Eq CanvasRenderingContext2DSettings where
  (CanvasRenderingContext2DSettings a) == (CanvasRenderingContext2DSettings b) = js_eq a b

instance PToJSVal CanvasRenderingContext2DSettings where
  pToJSVal = unCanvasRenderingContext2DSettings
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasRenderingContext2DSettings where
  pFromJSVal = CanvasRenderingContext2DSettings
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasRenderingContext2DSettings where
  toJSVal = return . unCanvasRenderingContext2DSettings
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasRenderingContext2DSettings where
  fromJSVal = return . fmap CanvasRenderingContext2DSettings . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasRenderingContext2DSettings
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CanvasRenderingContext2DSettings where
  typeGType _ = gTypeCanvasRenderingContext2DSettings
  {-# INLINE typeGType #-}

noCanvasRenderingContext2DSettings :: Maybe CanvasRenderingContext2DSettings
noCanvasRenderingContext2DSettings = Nothing
{-# INLINE noCanvasRenderingContext2DSettings #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasRenderingContext2DSettings :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasSettings" (html).
newtype CanvasSettings = CanvasSettings { unCanvasSettings :: JSVal }

instance Eq CanvasSettings where
  (CanvasSettings a) == (CanvasSettings b) = js_eq a b

instance PToJSVal CanvasSettings where
  pToJSVal = unCanvasSettings
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasSettings where
  pFromJSVal = CanvasSettings
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasSettings where
  toJSVal = return . unCanvasSettings
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasSettings where
  fromJSVal = return . fmap CanvasSettings . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasSettings
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasSettings o
toCanvasSettings :: IsCanvasSettings o => o -> CanvasSettings
toCanvasSettings = CanvasSettings . coerce

instance IsCanvasSettings CanvasSettings

instance IsGObject CanvasSettings where
  typeGType _ = gTypeCanvasSettings
  {-# INLINE typeGType #-}

noCanvasSettings :: Maybe CanvasSettings
noCanvasSettings = Nothing
{-# INLINE noCanvasSettings #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasSettings :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasShadowStyles" (html).
newtype CanvasShadowStyles = CanvasShadowStyles { unCanvasShadowStyles :: JSVal }

instance Eq CanvasShadowStyles where
  (CanvasShadowStyles a) == (CanvasShadowStyles b) = js_eq a b

instance PToJSVal CanvasShadowStyles where
  pToJSVal = unCanvasShadowStyles
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasShadowStyles where
  pFromJSVal = CanvasShadowStyles
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasShadowStyles where
  toJSVal = return . unCanvasShadowStyles
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasShadowStyles where
  fromJSVal = return . fmap CanvasShadowStyles . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasShadowStyles
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasShadowStyles o
toCanvasShadowStyles :: IsCanvasShadowStyles o => o -> CanvasShadowStyles
toCanvasShadowStyles = CanvasShadowStyles . coerce

instance IsCanvasShadowStyles CanvasShadowStyles

instance IsGObject CanvasShadowStyles where
  typeGType _ = gTypeCanvasShadowStyles
  {-# INLINE typeGType #-}

noCanvasShadowStyles :: Maybe CanvasShadowStyles
noCanvasShadowStyles = Nothing
{-# INLINE noCanvasShadowStyles #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasShadowStyles :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasState" (html).
newtype CanvasState = CanvasState { unCanvasState :: JSVal }

instance Eq CanvasState where
  (CanvasState a) == (CanvasState b) = js_eq a b

instance PToJSVal CanvasState where
  pToJSVal = unCanvasState
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasState where
  pFromJSVal = CanvasState
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasState where
  toJSVal = return . unCanvasState
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasState where
  fromJSVal = return . fmap CanvasState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasState
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasState o
toCanvasState :: IsCanvasState o => o -> CanvasState
toCanvasState = CanvasState . coerce

instance IsCanvasState CanvasState

instance IsGObject CanvasState where
  typeGType _ = gTypeCanvasState
  {-# INLINE typeGType #-}

noCanvasState :: Maybe CanvasState
noCanvasState = Nothing
{-# INLINE noCanvasState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasState :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasText" (html).
newtype CanvasText = CanvasText { unCanvasText :: JSVal }

instance Eq CanvasText where
  (CanvasText a) == (CanvasText b) = js_eq a b

instance PToJSVal CanvasText where
  pToJSVal = unCanvasText
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasText where
  pFromJSVal = CanvasText
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasText where
  toJSVal = return . unCanvasText
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasText where
  fromJSVal = return . fmap CanvasText . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasText
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasText o
toCanvasText :: IsCanvasText o => o -> CanvasText
toCanvasText = CanvasText . coerce

instance IsCanvasText CanvasText

instance IsGObject CanvasText where
  typeGType _ = gTypeCanvasText
  {-# INLINE typeGType #-}

noCanvasText :: Maybe CanvasText
noCanvasText = Nothing
{-# INLINE noCanvasText #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasText :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasTextDrawingStyles" (html).
newtype CanvasTextDrawingStyles = CanvasTextDrawingStyles { unCanvasTextDrawingStyles :: JSVal }

instance Eq CanvasTextDrawingStyles where
  (CanvasTextDrawingStyles a) == (CanvasTextDrawingStyles b) = js_eq a b

instance PToJSVal CanvasTextDrawingStyles where
  pToJSVal = unCanvasTextDrawingStyles
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasTextDrawingStyles where
  pFromJSVal = CanvasTextDrawingStyles
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasTextDrawingStyles where
  toJSVal = return . unCanvasTextDrawingStyles
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasTextDrawingStyles where
  fromJSVal = return . fmap CanvasTextDrawingStyles . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasTextDrawingStyles
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasTextDrawingStyles o
toCanvasTextDrawingStyles :: IsCanvasTextDrawingStyles o => o -> CanvasTextDrawingStyles
toCanvasTextDrawingStyles = CanvasTextDrawingStyles . coerce

instance IsCanvasTextDrawingStyles CanvasTextDrawingStyles

instance IsGObject CanvasTextDrawingStyles where
  typeGType _ = gTypeCanvasTextDrawingStyles
  {-# INLINE typeGType #-}

noCanvasTextDrawingStyles :: Maybe CanvasTextDrawingStyles
noCanvasTextDrawingStyles = Nothing
{-# INLINE noCanvasTextDrawingStyles #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasTextDrawingStyles :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasTransform" (html).
newtype CanvasTransform = CanvasTransform { unCanvasTransform :: JSVal }

instance Eq CanvasTransform where
  (CanvasTransform a) == (CanvasTransform b) = js_eq a b

instance PToJSVal CanvasTransform where
  pToJSVal = unCanvasTransform
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasTransform where
  pFromJSVal = CanvasTransform
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasTransform where
  toJSVal = return . unCanvasTransform
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasTransform where
  fromJSVal = return . fmap CanvasTransform . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasTransform
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasTransform o
toCanvasTransform :: IsCanvasTransform o => o -> CanvasTransform
toCanvasTransform = CanvasTransform . coerce

instance IsCanvasTransform CanvasTransform

instance IsGObject CanvasTransform where
  typeGType _ = gTypeCanvasTransform
  {-# INLINE typeGType #-}

noCanvasTransform :: Maybe CanvasTransform
noCanvasTransform = Nothing
{-# INLINE noCanvasTransform #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasTransform :: GType

-- | Functions for this interface are in "GHCJS.DOM.CanvasUserInterface" (html).
newtype CanvasUserInterface = CanvasUserInterface { unCanvasUserInterface :: JSVal }

instance Eq CanvasUserInterface where
  (CanvasUserInterface a) == (CanvasUserInterface b) = js_eq a b

instance PToJSVal CanvasUserInterface where
  pToJSVal = unCanvasUserInterface
  {-# INLINE pToJSVal #-}

instance PFromJSVal CanvasUserInterface where
  pFromJSVal = CanvasUserInterface
  {-# INLINE pFromJSVal #-}

instance ToJSVal CanvasUserInterface where
  toJSVal = return . unCanvasUserInterface
  {-# INLINE toJSVal #-}

instance FromJSVal CanvasUserInterface where
  fromJSVal = return . fmap CanvasUserInterface . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CanvasUserInterface
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCanvasUserInterface o
toCanvasUserInterface :: IsCanvasUserInterface o => o -> CanvasUserInterface
toCanvasUserInterface = CanvasUserInterface . coerce

instance IsCanvasUserInterface CanvasUserInterface

instance IsGObject CanvasUserInterface where
  typeGType _ = gTypeCanvasUserInterface
  {-# INLINE typeGType #-}

noCanvasUserInterface :: Maybe CanvasUserInterface
noCanvasUserInterface = Nothing
{-# INLINE noCanvasUserInterface #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCanvasUserInterface :: GType

-- | Functions for this interface are in "GHCJS.DOM.CaptureController" (screen-capture).
newtype CaptureController = CaptureController { unCaptureController :: JSVal }

instance Eq CaptureController where
  (CaptureController a) == (CaptureController b) = js_eq a b

instance PToJSVal CaptureController where
  pToJSVal = unCaptureController
  {-# INLINE pToJSVal #-}

instance PFromJSVal CaptureController where
  pFromJSVal = CaptureController
  {-# INLINE pFromJSVal #-}

instance ToJSVal CaptureController where
  toJSVal = return . unCaptureController
  {-# INLINE toJSVal #-}

instance FromJSVal CaptureController where
  fromJSVal = return . fmap CaptureController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CaptureController
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget CaptureController

instance IsGObject CaptureController where
  typeGType _ = gTypeCaptureController
  {-# INLINE typeGType #-}

noCaptureController :: Maybe CaptureController
noCaptureController = Nothing
{-# INLINE noCaptureController #-}

foreign import javascript unsafe "(() => globalThis[\"CaptureController\"])" gTypeCaptureController :: GType

-- | Functions for this interface are in "GHCJS.DOM.CaretPosition" (cssom-view-1).
newtype CaretPosition = CaretPosition { unCaretPosition :: JSVal }

instance Eq CaretPosition where
  (CaretPosition a) == (CaretPosition b) = js_eq a b

instance PToJSVal CaretPosition where
  pToJSVal = unCaretPosition
  {-# INLINE pToJSVal #-}

instance PFromJSVal CaretPosition where
  pFromJSVal = CaretPosition
  {-# INLINE pFromJSVal #-}

instance ToJSVal CaretPosition where
  toJSVal = return . unCaretPosition
  {-# INLINE toJSVal #-}

instance FromJSVal CaretPosition where
  fromJSVal = return . fmap CaretPosition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CaretPosition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CaretPosition where
  typeGType _ = gTypeCaretPosition
  {-# INLINE typeGType #-}

noCaretPosition :: Maybe CaretPosition
noCaretPosition = Nothing
{-# INLINE noCaretPosition #-}

foreign import javascript unsafe "(() => globalThis[\"CaretPosition\"])" gTypeCaretPosition :: GType

-- | Dictionary CaretPositionFromPointOptions (cssom-view-1)
newtype CaretPositionFromPointOptions = CaretPositionFromPointOptions { unCaretPositionFromPointOptions :: JSVal }

instance Eq CaretPositionFromPointOptions where
  (CaretPositionFromPointOptions a) == (CaretPositionFromPointOptions b) = js_eq a b

instance PToJSVal CaretPositionFromPointOptions where
  pToJSVal = unCaretPositionFromPointOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CaretPositionFromPointOptions where
  pFromJSVal = CaretPositionFromPointOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CaretPositionFromPointOptions where
  toJSVal = return . unCaretPositionFromPointOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CaretPositionFromPointOptions where
  fromJSVal = return . fmap CaretPositionFromPointOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CaretPositionFromPointOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CaretPositionFromPointOptions where
  typeGType _ = gTypeCaretPositionFromPointOptions
  {-# INLINE typeGType #-}

noCaretPositionFromPointOptions :: Maybe CaretPositionFromPointOptions
noCaretPositionFromPointOptions = Nothing
{-# INLINE noCaretPositionFromPointOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCaretPositionFromPointOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ChannelMergerNode" (webaudio-1.1).
newtype ChannelMergerNode = ChannelMergerNode { unChannelMergerNode :: JSVal }

instance Eq ChannelMergerNode where
  (ChannelMergerNode a) == (ChannelMergerNode b) = js_eq a b

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 = return . fmap ChannelMergerNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ChannelMergerNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode ChannelMergerNode
instance IsEventTarget ChannelMergerNode

instance IsGObject ChannelMergerNode where
  typeGType _ = gTypeChannelMergerNode
  {-# INLINE typeGType #-}

noChannelMergerNode :: Maybe ChannelMergerNode
noChannelMergerNode = Nothing
{-# INLINE noChannelMergerNode #-}

foreign import javascript unsafe "(() => globalThis[\"ChannelMergerNode\"])" gTypeChannelMergerNode :: GType

-- | Dictionary ChannelMergerOptions (webaudio-1.1)
newtype ChannelMergerOptions = ChannelMergerOptions { unChannelMergerOptions :: JSVal }

instance Eq ChannelMergerOptions where
  (ChannelMergerOptions a) == (ChannelMergerOptions b) = js_eq a b

instance PToJSVal ChannelMergerOptions where
  pToJSVal = unChannelMergerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ChannelMergerOptions where
  pFromJSVal = ChannelMergerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ChannelMergerOptions where
  toJSVal = return . unChannelMergerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ChannelMergerOptions where
  fromJSVal = return . fmap ChannelMergerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ChannelMergerOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions ChannelMergerOptions

instance IsGObject ChannelMergerOptions where
  typeGType _ = gTypeChannelMergerOptions
  {-# INLINE typeGType #-}

noChannelMergerOptions :: Maybe ChannelMergerOptions
noChannelMergerOptions = Nothing
{-# INLINE noChannelMergerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeChannelMergerOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ChannelSplitterNode" (webaudio-1.1).
newtype ChannelSplitterNode = ChannelSplitterNode { unChannelSplitterNode :: JSVal }

instance Eq ChannelSplitterNode where
  (ChannelSplitterNode a) == (ChannelSplitterNode b) = js_eq a b

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 = return . fmap ChannelSplitterNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ChannelSplitterNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode ChannelSplitterNode
instance IsEventTarget ChannelSplitterNode

instance IsGObject ChannelSplitterNode where
  typeGType _ = gTypeChannelSplitterNode
  {-# INLINE typeGType #-}

noChannelSplitterNode :: Maybe ChannelSplitterNode
noChannelSplitterNode = Nothing
{-# INLINE noChannelSplitterNode #-}

foreign import javascript unsafe "(() => globalThis[\"ChannelSplitterNode\"])" gTypeChannelSplitterNode :: GType

-- | Dictionary ChannelSplitterOptions (webaudio-1.1)
newtype ChannelSplitterOptions = ChannelSplitterOptions { unChannelSplitterOptions :: JSVal }

instance Eq ChannelSplitterOptions where
  (ChannelSplitterOptions a) == (ChannelSplitterOptions b) = js_eq a b

instance PToJSVal ChannelSplitterOptions where
  pToJSVal = unChannelSplitterOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ChannelSplitterOptions where
  pFromJSVal = ChannelSplitterOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ChannelSplitterOptions where
  toJSVal = return . unChannelSplitterOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ChannelSplitterOptions where
  fromJSVal = return . fmap ChannelSplitterOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ChannelSplitterOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions ChannelSplitterOptions

instance IsGObject ChannelSplitterOptions where
  typeGType _ = gTypeChannelSplitterOptions
  {-# INLINE typeGType #-}

noChannelSplitterOptions :: Maybe ChannelSplitterOptions
noChannelSplitterOptions = Nothing
{-# INLINE noChannelSplitterOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeChannelSplitterOptions :: GType

-- | Dictionary ChapterInformationInit (mediasession)
newtype ChapterInformationInit = ChapterInformationInit { unChapterInformationInit :: JSVal }

instance Eq ChapterInformationInit where
  (ChapterInformationInit a) == (ChapterInformationInit b) = js_eq a b

instance PToJSVal ChapterInformationInit where
  pToJSVal = unChapterInformationInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ChapterInformationInit where
  pFromJSVal = ChapterInformationInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ChapterInformationInit where
  toJSVal = return . unChapterInformationInit
  {-# INLINE toJSVal #-}

instance FromJSVal ChapterInformationInit where
  fromJSVal = return . fmap ChapterInformationInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ChapterInformationInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ChapterInformationInit where
  typeGType _ = gTypeChapterInformationInit
  {-# INLINE typeGType #-}

noChapterInformationInit :: Maybe ChapterInformationInit
noChapterInformationInit = Nothing
{-# INLINE noChapterInformationInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeChapterInformationInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.CharacterData" (dom).
newtype CharacterData = CharacterData { unCharacterData :: JSVal }

instance Eq CharacterData where
  (CharacterData a) == (CharacterData b) = js_eq a b

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 = return . fmap CharacterData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CharacterData
  {-# INLINE fromJSValUnchecked #-}

class (IsNode o, IsChildNode o, IsNonDocumentTypeChildNode o, IsGObject o) => IsCharacterData o
toCharacterData :: IsCharacterData o => o -> CharacterData
toCharacterData = CharacterData . coerce

instance IsCharacterData CharacterData
instance IsChildNode CharacterData
instance IsNonDocumentTypeChildNode CharacterData
instance IsNode CharacterData
instance IsEventTarget CharacterData

instance IsGObject CharacterData where
  typeGType _ = gTypeCharacterData
  {-# INLINE typeGType #-}

noCharacterData :: Maybe CharacterData
noCharacterData = Nothing
{-# INLINE noCharacterData #-}

foreign import javascript unsafe "(() => globalThis[\"CharacterData\"])" gTypeCharacterData :: GType

-- | Dictionary CheckVisibilityOptions (cssom-view-1)
newtype CheckVisibilityOptions = CheckVisibilityOptions { unCheckVisibilityOptions :: JSVal }

instance Eq CheckVisibilityOptions where
  (CheckVisibilityOptions a) == (CheckVisibilityOptions b) = js_eq a b

instance PToJSVal CheckVisibilityOptions where
  pToJSVal = unCheckVisibilityOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CheckVisibilityOptions where
  pFromJSVal = CheckVisibilityOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CheckVisibilityOptions where
  toJSVal = return . unCheckVisibilityOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CheckVisibilityOptions where
  fromJSVal = return . fmap CheckVisibilityOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CheckVisibilityOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CheckVisibilityOptions where
  typeGType _ = gTypeCheckVisibilityOptions
  {-# INLINE typeGType #-}

noCheckVisibilityOptions :: Maybe CheckVisibilityOptions
noCheckVisibilityOptions = Nothing
{-# INLINE noCheckVisibilityOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCheckVisibilityOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ChildNode" (dom).
newtype ChildNode = ChildNode { unChildNode :: JSVal }

instance Eq ChildNode where
  (ChildNode a) == (ChildNode b) = js_eq a b

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 = return . fmap ChildNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ChildNode
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsChildNode o
toChildNode :: IsChildNode o => o -> ChildNode
toChildNode = ChildNode . coerce

instance IsChildNode ChildNode

instance IsGObject ChildNode where
  typeGType _ = gTypeChildNode
  {-# INLINE typeGType #-}

noChildNode :: Maybe ChildNode
noChildNode = Nothing
{-# INLINE noChildNode #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeChildNode :: GType

-- | Functions for this interface are in "GHCJS.DOM.Client" (service-workers).
newtype Client = Client { unClient :: JSVal }

instance Eq Client where
  (Client a) == (Client b) = js_eq a b

instance PToJSVal Client where
  pToJSVal = unClient
  {-# INLINE pToJSVal #-}

instance PFromJSVal Client where
  pFromJSVal = Client
  {-# INLINE pFromJSVal #-}

instance ToJSVal Client where
  toJSVal = return . unClient
  {-# INLINE toJSVal #-}

instance FromJSVal Client where
  fromJSVal = return . fmap Client . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Client
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsClient o
toClient :: IsClient o => o -> Client
toClient = Client . coerce

instance IsClient Client

instance IsGObject Client where
  typeGType _ = gTypeClient
  {-# INLINE typeGType #-}

noClient :: Maybe Client
noClient = Nothing
{-# INLINE noClient #-}

foreign import javascript unsafe "(() => globalThis[\"Client\"])" gTypeClient :: GType

-- | Dictionary ClientQueryOptions (service-workers)
newtype ClientQueryOptions = ClientQueryOptions { unClientQueryOptions :: JSVal }

instance Eq ClientQueryOptions where
  (ClientQueryOptions a) == (ClientQueryOptions b) = js_eq a b

instance PToJSVal ClientQueryOptions where
  pToJSVal = unClientQueryOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClientQueryOptions where
  pFromJSVal = ClientQueryOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClientQueryOptions where
  toJSVal = return . unClientQueryOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ClientQueryOptions where
  fromJSVal = return . fmap ClientQueryOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClientQueryOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ClientQueryOptions where
  typeGType _ = gTypeClientQueryOptions
  {-# INLINE typeGType #-}

noClientQueryOptions :: Maybe ClientQueryOptions
noClientQueryOptions = Nothing
{-# INLINE noClientQueryOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeClientQueryOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Clients" (service-workers).
newtype Clients = Clients { unClients :: JSVal }

instance Eq Clients where
  (Clients a) == (Clients b) = js_eq a b

instance PToJSVal Clients where
  pToJSVal = unClients
  {-# INLINE pToJSVal #-}

instance PFromJSVal Clients where
  pFromJSVal = Clients
  {-# INLINE pFromJSVal #-}

instance ToJSVal Clients where
  toJSVal = return . unClients
  {-# INLINE toJSVal #-}

instance FromJSVal Clients where
  fromJSVal = return . fmap Clients . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Clients
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Clients where
  typeGType _ = gTypeClients
  {-# INLINE typeGType #-}

noClients :: Maybe Clients
noClients = Nothing
{-# INLINE noClients #-}

foreign import javascript unsafe "(() => globalThis[\"Clients\"])" gTypeClients :: GType

-- | Functions for this interface are in "GHCJS.DOM.Clipboard" (clipboard-apis).
newtype Clipboard = Clipboard { unClipboard :: JSVal }

instance Eq Clipboard where
  (Clipboard a) == (Clipboard b) = js_eq a b

instance PToJSVal Clipboard where
  pToJSVal = unClipboard
  {-# INLINE pToJSVal #-}

instance PFromJSVal Clipboard where
  pFromJSVal = Clipboard
  {-# INLINE pFromJSVal #-}

instance ToJSVal Clipboard where
  toJSVal = return . unClipboard
  {-# INLINE toJSVal #-}

instance FromJSVal Clipboard where
  fromJSVal = return . fmap Clipboard . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Clipboard
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget Clipboard

instance IsGObject Clipboard where
  typeGType _ = gTypeClipboard
  {-# INLINE typeGType #-}

noClipboard :: Maybe Clipboard
noClipboard = Nothing
{-# INLINE noClipboard #-}

foreign import javascript unsafe "(() => globalThis[\"Clipboard\"])" gTypeClipboard :: GType

-- | Functions for this interface are in "GHCJS.DOM.ClipboardChangeEvent" (clipboard-apis).
newtype ClipboardChangeEvent = ClipboardChangeEvent { unClipboardChangeEvent :: JSVal }

instance Eq ClipboardChangeEvent where
  (ClipboardChangeEvent a) == (ClipboardChangeEvent b) = js_eq a b

instance PToJSVal ClipboardChangeEvent where
  pToJSVal = unClipboardChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClipboardChangeEvent where
  pFromJSVal = ClipboardChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClipboardChangeEvent where
  toJSVal = return . unClipboardChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ClipboardChangeEvent where
  fromJSVal = return . fmap ClipboardChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClipboardChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent ClipboardChangeEvent

instance IsGObject ClipboardChangeEvent where
  typeGType _ = gTypeClipboardChangeEvent
  {-# INLINE typeGType #-}

noClipboardChangeEvent :: Maybe ClipboardChangeEvent
noClipboardChangeEvent = Nothing
{-# INLINE noClipboardChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ClipboardChangeEvent\"])" gTypeClipboardChangeEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.ClipboardEvent" (clipboard-apis).
newtype ClipboardEvent = ClipboardEvent { unClipboardEvent :: JSVal }

instance Eq ClipboardEvent where
  (ClipboardEvent a) == (ClipboardEvent b) = js_eq a b

instance PToJSVal ClipboardEvent where
  pToJSVal = unClipboardEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClipboardEvent where
  pFromJSVal = ClipboardEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClipboardEvent where
  toJSVal = return . unClipboardEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ClipboardEvent where
  fromJSVal = return . fmap ClipboardEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClipboardEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent ClipboardEvent

instance IsGObject ClipboardEvent where
  typeGType _ = gTypeClipboardEvent
  {-# INLINE typeGType #-}

noClipboardEvent :: Maybe ClipboardEvent
noClipboardEvent = Nothing
{-# INLINE noClipboardEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ClipboardEvent\"])" gTypeClipboardEvent :: GType

-- | Dictionary ClipboardEventInit (clipboard-apis)
newtype ClipboardEventInit = ClipboardEventInit { unClipboardEventInit :: JSVal }

instance Eq ClipboardEventInit where
  (ClipboardEventInit a) == (ClipboardEventInit b) = js_eq a b

instance PToJSVal ClipboardEventInit where
  pToJSVal = unClipboardEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClipboardEventInit where
  pFromJSVal = ClipboardEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClipboardEventInit where
  toJSVal = return . unClipboardEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ClipboardEventInit where
  fromJSVal = return . fmap ClipboardEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClipboardEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit ClipboardEventInit

instance IsGObject ClipboardEventInit where
  typeGType _ = gTypeClipboardEventInit
  {-# INLINE typeGType #-}

noClipboardEventInit :: Maybe ClipboardEventInit
noClipboardEventInit = Nothing
{-# INLINE noClipboardEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeClipboardEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.ClipboardItem" (clipboard-apis).
newtype ClipboardItem = ClipboardItem { unClipboardItem :: JSVal }

instance Eq ClipboardItem where
  (ClipboardItem a) == (ClipboardItem b) = js_eq a b

instance PToJSVal ClipboardItem where
  pToJSVal = unClipboardItem
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClipboardItem where
  pFromJSVal = ClipboardItem
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClipboardItem where
  toJSVal = return . unClipboardItem
  {-# INLINE toJSVal #-}

instance FromJSVal ClipboardItem where
  fromJSVal = return . fmap ClipboardItem . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClipboardItem
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ClipboardItem where
  typeGType _ = gTypeClipboardItem
  {-# INLINE typeGType #-}

noClipboardItem :: Maybe ClipboardItem
noClipboardItem = Nothing
{-# INLINE noClipboardItem #-}

foreign import javascript unsafe "(() => globalThis[\"ClipboardItem\"])" gTypeClipboardItem :: GType

-- | Dictionary ClipboardItemOptions (clipboard-apis)
newtype ClipboardItemOptions = ClipboardItemOptions { unClipboardItemOptions :: JSVal }

instance Eq ClipboardItemOptions where
  (ClipboardItemOptions a) == (ClipboardItemOptions b) = js_eq a b

instance PToJSVal ClipboardItemOptions where
  pToJSVal = unClipboardItemOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClipboardItemOptions where
  pFromJSVal = ClipboardItemOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClipboardItemOptions where
  toJSVal = return . unClipboardItemOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ClipboardItemOptions where
  fromJSVal = return . fmap ClipboardItemOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClipboardItemOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ClipboardItemOptions where
  typeGType _ = gTypeClipboardItemOptions
  {-# INLINE typeGType #-}

noClipboardItemOptions :: Maybe ClipboardItemOptions
noClipboardItemOptions = Nothing
{-# INLINE noClipboardItemOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeClipboardItemOptions :: GType

-- | Dictionary ClipboardUnsanitizedFormats (clipboard-apis)
newtype ClipboardUnsanitizedFormats = ClipboardUnsanitizedFormats { unClipboardUnsanitizedFormats :: JSVal }

instance Eq ClipboardUnsanitizedFormats where
  (ClipboardUnsanitizedFormats a) == (ClipboardUnsanitizedFormats b) = js_eq a b

instance PToJSVal ClipboardUnsanitizedFormats where
  pToJSVal = unClipboardUnsanitizedFormats
  {-# INLINE pToJSVal #-}

instance PFromJSVal ClipboardUnsanitizedFormats where
  pFromJSVal = ClipboardUnsanitizedFormats
  {-# INLINE pFromJSVal #-}

instance ToJSVal ClipboardUnsanitizedFormats where
  toJSVal = return . unClipboardUnsanitizedFormats
  {-# INLINE toJSVal #-}

instance FromJSVal ClipboardUnsanitizedFormats where
  fromJSVal = return . fmap ClipboardUnsanitizedFormats . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ClipboardUnsanitizedFormats
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ClipboardUnsanitizedFormats where
  typeGType _ = gTypeClipboardUnsanitizedFormats
  {-# INLINE typeGType #-}

noClipboardUnsanitizedFormats :: Maybe ClipboardUnsanitizedFormats
noClipboardUnsanitizedFormats = Nothing
{-# INLINE noClipboardUnsanitizedFormats #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeClipboardUnsanitizedFormats :: GType

-- | Functions for this interface are in "GHCJS.DOM.CloseEvent" (websockets).
newtype CloseEvent = CloseEvent { unCloseEvent :: JSVal }

instance Eq CloseEvent where
  (CloseEvent a) == (CloseEvent b) = js_eq a b

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 = return . fmap CloseEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CloseEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent CloseEvent

instance IsGObject CloseEvent where
  typeGType _ = gTypeCloseEvent
  {-# INLINE typeGType #-}

noCloseEvent :: Maybe CloseEvent
noCloseEvent = Nothing
{-# INLINE noCloseEvent #-}

foreign import javascript unsafe "(() => globalThis[\"CloseEvent\"])" gTypeCloseEvent :: GType

-- | Dictionary CloseEventInit (websockets)
newtype CloseEventInit = CloseEventInit { unCloseEventInit :: JSVal }

instance Eq CloseEventInit where
  (CloseEventInit a) == (CloseEventInit b) = js_eq a b

instance PToJSVal CloseEventInit where
  pToJSVal = unCloseEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CloseEventInit where
  pFromJSVal = CloseEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CloseEventInit where
  toJSVal = return . unCloseEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal CloseEventInit where
  fromJSVal = return . fmap CloseEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CloseEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit CloseEventInit

instance IsGObject CloseEventInit where
  typeGType _ = gTypeCloseEventInit
  {-# INLINE typeGType #-}

noCloseEventInit :: Maybe CloseEventInit
noCloseEventInit = Nothing
{-# INLINE noCloseEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCloseEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.CloseWatcher" (html).
newtype CloseWatcher = CloseWatcher { unCloseWatcher :: JSVal }

instance Eq CloseWatcher where
  (CloseWatcher a) == (CloseWatcher b) = js_eq a b

instance PToJSVal CloseWatcher where
  pToJSVal = unCloseWatcher
  {-# INLINE pToJSVal #-}

instance PFromJSVal CloseWatcher where
  pFromJSVal = CloseWatcher
  {-# INLINE pFromJSVal #-}

instance ToJSVal CloseWatcher where
  toJSVal = return . unCloseWatcher
  {-# INLINE toJSVal #-}

instance FromJSVal CloseWatcher where
  fromJSVal = return . fmap CloseWatcher . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CloseWatcher
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget CloseWatcher

instance IsGObject CloseWatcher where
  typeGType _ = gTypeCloseWatcher
  {-# INLINE typeGType #-}

noCloseWatcher :: Maybe CloseWatcher
noCloseWatcher = Nothing
{-# INLINE noCloseWatcher #-}

foreign import javascript unsafe "(() => globalThis[\"CloseWatcher\"])" gTypeCloseWatcher :: GType

-- | Dictionary CloseWatcherOptions (html)
newtype CloseWatcherOptions = CloseWatcherOptions { unCloseWatcherOptions :: JSVal }

instance Eq CloseWatcherOptions where
  (CloseWatcherOptions a) == (CloseWatcherOptions b) = js_eq a b

instance PToJSVal CloseWatcherOptions where
  pToJSVal = unCloseWatcherOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CloseWatcherOptions where
  pFromJSVal = CloseWatcherOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CloseWatcherOptions where
  toJSVal = return . unCloseWatcherOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CloseWatcherOptions where
  fromJSVal = return . fmap CloseWatcherOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CloseWatcherOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CloseWatcherOptions where
  typeGType _ = gTypeCloseWatcherOptions
  {-# INLINE typeGType #-}

noCloseWatcherOptions :: Maybe CloseWatcherOptions
noCloseWatcherOptions = Nothing
{-# INLINE noCloseWatcherOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCloseWatcherOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CommandEvent" (html).
newtype CommandEvent = CommandEvent { unCommandEvent :: JSVal }

instance Eq CommandEvent where
  (CommandEvent a) == (CommandEvent b) = js_eq a b

instance PToJSVal CommandEvent where
  pToJSVal = unCommandEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal CommandEvent where
  pFromJSVal = CommandEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal CommandEvent where
  toJSVal = return . unCommandEvent
  {-# INLINE toJSVal #-}

instance FromJSVal CommandEvent where
  fromJSVal = return . fmap CommandEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CommandEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent CommandEvent

instance IsGObject CommandEvent where
  typeGType _ = gTypeCommandEvent
  {-# INLINE typeGType #-}

noCommandEvent :: Maybe CommandEvent
noCommandEvent = Nothing
{-# INLINE noCommandEvent #-}

foreign import javascript unsafe "(() => globalThis[\"CommandEvent\"])" gTypeCommandEvent :: GType

-- | Dictionary CommandEventInit (html)
newtype CommandEventInit = CommandEventInit { unCommandEventInit :: JSVal }

instance Eq CommandEventInit where
  (CommandEventInit a) == (CommandEventInit b) = js_eq a b

instance PToJSVal CommandEventInit where
  pToJSVal = unCommandEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CommandEventInit where
  pFromJSVal = CommandEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CommandEventInit where
  toJSVal = return . unCommandEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal CommandEventInit where
  fromJSVal = return . fmap CommandEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CommandEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit CommandEventInit

instance IsGObject CommandEventInit where
  typeGType _ = gTypeCommandEventInit
  {-# INLINE typeGType #-}

noCommandEventInit :: Maybe CommandEventInit
noCommandEventInit = Nothing
{-# INLINE noCommandEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCommandEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.Comment" (dom).
newtype Comment = Comment { unComment :: JSVal }

instance Eq Comment where
  (Comment a) == (Comment b) = js_eq a b

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 = return . fmap Comment . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Comment
  {-# INLINE fromJSValUnchecked #-}

instance IsCharacterData Comment
instance IsChildNode Comment
instance IsNonDocumentTypeChildNode Comment
instance IsNode Comment
instance IsEventTarget Comment

instance IsGObject Comment where
  typeGType _ = gTypeComment
  {-# INLINE typeGType #-}

noComment :: Maybe Comment
noComment = Nothing
{-# INLINE noComment #-}

foreign import javascript unsafe "(() => globalThis[\"Comment\"])" gTypeComment :: GType

-- | Functions for this interface are in "GHCJS.DOM.CompositionEvent" (uievents).
newtype CompositionEvent = CompositionEvent { unCompositionEvent :: JSVal }

instance Eq CompositionEvent where
  (CompositionEvent a) == (CompositionEvent b) = js_eq a b

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 = return . fmap CompositionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CompositionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent CompositionEvent
instance IsEvent CompositionEvent

instance IsGObject CompositionEvent where
  typeGType _ = gTypeCompositionEvent
  {-# INLINE typeGType #-}

noCompositionEvent :: Maybe CompositionEvent
noCompositionEvent = Nothing
{-# INLINE noCompositionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"CompositionEvent\"])" gTypeCompositionEvent :: GType

-- | Dictionary CompositionEventInit (uievents)
newtype CompositionEventInit = CompositionEventInit { unCompositionEventInit :: JSVal }

instance Eq CompositionEventInit where
  (CompositionEventInit a) == (CompositionEventInit b) = js_eq a b

instance PToJSVal CompositionEventInit where
  pToJSVal = unCompositionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CompositionEventInit where
  pFromJSVal = CompositionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CompositionEventInit where
  toJSVal = return . unCompositionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal CompositionEventInit where
  fromJSVal = return . fmap CompositionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CompositionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEventInit CompositionEventInit
instance IsEventInit CompositionEventInit

instance IsGObject CompositionEventInit where
  typeGType _ = gTypeCompositionEventInit
  {-# INLINE typeGType #-}

noCompositionEventInit :: Maybe CompositionEventInit
noCompositionEventInit = Nothing
{-# INLINE noCompositionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCompositionEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.CompressionStream" (compression).
newtype CompressionStream = CompressionStream { unCompressionStream :: JSVal }

instance Eq CompressionStream where
  (CompressionStream a) == (CompressionStream b) = js_eq a b

instance PToJSVal CompressionStream where
  pToJSVal = unCompressionStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal CompressionStream where
  pFromJSVal = CompressionStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal CompressionStream where
  toJSVal = return . unCompressionStream
  {-# INLINE toJSVal #-}

instance FromJSVal CompressionStream where
  fromJSVal = return . fmap CompressionStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CompressionStream
  {-# INLINE fromJSValUnchecked #-}

instance IsGenericTransformStream CompressionStream

instance IsGObject CompressionStream where
  typeGType _ = gTypeCompressionStream
  {-# INLINE typeGType #-}

noCompressionStream :: Maybe CompressionStream
noCompressionStream = Nothing
{-# INLINE noCompressionStream #-}

foreign import javascript unsafe "(() => globalThis[\"CompressionStream\"])" gTypeCompressionStream :: GType

-- | Dictionary ComputedEffectTiming (web-animations-1)
newtype ComputedEffectTiming = ComputedEffectTiming { unComputedEffectTiming :: JSVal }

instance Eq ComputedEffectTiming where
  (ComputedEffectTiming a) == (ComputedEffectTiming b) = js_eq a b

instance PToJSVal ComputedEffectTiming where
  pToJSVal = unComputedEffectTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal ComputedEffectTiming where
  pFromJSVal = ComputedEffectTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal ComputedEffectTiming where
  toJSVal = return . unComputedEffectTiming
  {-# INLINE toJSVal #-}

instance FromJSVal ComputedEffectTiming where
  fromJSVal = return . fmap ComputedEffectTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ComputedEffectTiming
  {-# INLINE fromJSValUnchecked #-}

instance IsEffectTiming ComputedEffectTiming

instance IsGObject ComputedEffectTiming where
  typeGType _ = gTypeComputedEffectTiming
  {-# INLINE typeGType #-}

noComputedEffectTiming :: Maybe ComputedEffectTiming
noComputedEffectTiming = Nothing
{-# INLINE noComputedEffectTiming #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeComputedEffectTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.ConstantSourceNode" (webaudio-1.1).
newtype ConstantSourceNode = ConstantSourceNode { unConstantSourceNode :: JSVal }

instance Eq ConstantSourceNode where
  (ConstantSourceNode a) == (ConstantSourceNode b) = js_eq a b

instance PToJSVal ConstantSourceNode where
  pToJSVal = unConstantSourceNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstantSourceNode where
  pFromJSVal = ConstantSourceNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstantSourceNode where
  toJSVal = return . unConstantSourceNode
  {-# INLINE toJSVal #-}

instance FromJSVal ConstantSourceNode where
  fromJSVal = return . fmap ConstantSourceNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstantSourceNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioScheduledSourceNode ConstantSourceNode
instance IsAudioNode ConstantSourceNode
instance IsEventTarget ConstantSourceNode

instance IsGObject ConstantSourceNode where
  typeGType _ = gTypeConstantSourceNode
  {-# INLINE typeGType #-}

noConstantSourceNode :: Maybe ConstantSourceNode
noConstantSourceNode = Nothing
{-# INLINE noConstantSourceNode #-}

foreign import javascript unsafe "(() => globalThis[\"ConstantSourceNode\"])" gTypeConstantSourceNode :: GType

-- | Dictionary ConstantSourceOptions (webaudio-1.1)
newtype ConstantSourceOptions = ConstantSourceOptions { unConstantSourceOptions :: JSVal }

instance Eq ConstantSourceOptions where
  (ConstantSourceOptions a) == (ConstantSourceOptions b) = js_eq a b

instance PToJSVal ConstantSourceOptions where
  pToJSVal = unConstantSourceOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstantSourceOptions where
  pFromJSVal = ConstantSourceOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstantSourceOptions where
  toJSVal = return . unConstantSourceOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ConstantSourceOptions where
  fromJSVal = return . fmap ConstantSourceOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstantSourceOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ConstantSourceOptions where
  typeGType _ = gTypeConstantSourceOptions
  {-# INLINE typeGType #-}

noConstantSourceOptions :: Maybe ConstantSourceOptions
noConstantSourceOptions = Nothing
{-# INLINE noConstantSourceOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstantSourceOptions :: GType

-- | Dictionary ConstrainBooleanOrDOMStringParameters (mediacapture-streams)
newtype ConstrainBooleanOrDOMStringParameters = ConstrainBooleanOrDOMStringParameters { unConstrainBooleanOrDOMStringParameters :: JSVal }

instance Eq ConstrainBooleanOrDOMStringParameters where
  (ConstrainBooleanOrDOMStringParameters a) == (ConstrainBooleanOrDOMStringParameters b) = js_eq a b

instance PToJSVal ConstrainBooleanOrDOMStringParameters where
  pToJSVal = unConstrainBooleanOrDOMStringParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainBooleanOrDOMStringParameters where
  pFromJSVal = ConstrainBooleanOrDOMStringParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainBooleanOrDOMStringParameters where
  toJSVal = return . unConstrainBooleanOrDOMStringParameters
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainBooleanOrDOMStringParameters where
  fromJSVal = return . fmap ConstrainBooleanOrDOMStringParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainBooleanOrDOMStringParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ConstrainBooleanOrDOMStringParameters where
  typeGType _ = gTypeConstrainBooleanOrDOMStringParameters
  {-# INLINE typeGType #-}

noConstrainBooleanOrDOMStringParameters :: Maybe ConstrainBooleanOrDOMStringParameters
noConstrainBooleanOrDOMStringParameters = Nothing
{-# INLINE noConstrainBooleanOrDOMStringParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstrainBooleanOrDOMStringParameters :: GType

-- | Dictionary ConstrainBooleanParameters (mediacapture-streams)
newtype ConstrainBooleanParameters = ConstrainBooleanParameters { unConstrainBooleanParameters :: JSVal }

instance Eq ConstrainBooleanParameters where
  (ConstrainBooleanParameters a) == (ConstrainBooleanParameters b) = js_eq a b

instance PToJSVal ConstrainBooleanParameters where
  pToJSVal = unConstrainBooleanParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainBooleanParameters where
  pFromJSVal = ConstrainBooleanParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainBooleanParameters where
  toJSVal = return . unConstrainBooleanParameters
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainBooleanParameters where
  fromJSVal = return . fmap ConstrainBooleanParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainBooleanParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ConstrainBooleanParameters where
  typeGType _ = gTypeConstrainBooleanParameters
  {-# INLINE typeGType #-}

noConstrainBooleanParameters :: Maybe ConstrainBooleanParameters
noConstrainBooleanParameters = Nothing
{-# INLINE noConstrainBooleanParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstrainBooleanParameters :: GType

-- | Dictionary ConstrainDOMStringParameters (mediacapture-streams)
newtype ConstrainDOMStringParameters = ConstrainDOMStringParameters { unConstrainDOMStringParameters :: JSVal }

instance Eq ConstrainDOMStringParameters where
  (ConstrainDOMStringParameters a) == (ConstrainDOMStringParameters b) = js_eq a b

instance PToJSVal ConstrainDOMStringParameters where
  pToJSVal = unConstrainDOMStringParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainDOMStringParameters where
  pFromJSVal = ConstrainDOMStringParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainDOMStringParameters where
  toJSVal = return . unConstrainDOMStringParameters
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainDOMStringParameters where
  fromJSVal = return . fmap ConstrainDOMStringParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainDOMStringParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ConstrainDOMStringParameters where
  typeGType _ = gTypeConstrainDOMStringParameters
  {-# INLINE typeGType #-}

noConstrainDOMStringParameters :: Maybe ConstrainDOMStringParameters
noConstrainDOMStringParameters = Nothing
{-# INLINE noConstrainDOMStringParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstrainDOMStringParameters :: GType

-- | Dictionary ConstrainDoubleRange (mediacapture-streams)
newtype ConstrainDoubleRange = ConstrainDoubleRange { unConstrainDoubleRange :: JSVal }

instance Eq ConstrainDoubleRange where
  (ConstrainDoubleRange a) == (ConstrainDoubleRange b) = js_eq a b

instance PToJSVal ConstrainDoubleRange where
  pToJSVal = unConstrainDoubleRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainDoubleRange where
  pFromJSVal = ConstrainDoubleRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainDoubleRange where
  toJSVal = return . unConstrainDoubleRange
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainDoubleRange where
  fromJSVal = return . fmap ConstrainDoubleRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainDoubleRange
  {-# INLINE fromJSValUnchecked #-}

instance IsDoubleRange ConstrainDoubleRange

instance IsGObject ConstrainDoubleRange where
  typeGType _ = gTypeConstrainDoubleRange
  {-# INLINE typeGType #-}

noConstrainDoubleRange :: Maybe ConstrainDoubleRange
noConstrainDoubleRange = Nothing
{-# INLINE noConstrainDoubleRange #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstrainDoubleRange :: GType

-- | Dictionary ConstrainPoint2DParameters (image-capture)
newtype ConstrainPoint2DParameters = ConstrainPoint2DParameters { unConstrainPoint2DParameters :: JSVal }

instance Eq ConstrainPoint2DParameters where
  (ConstrainPoint2DParameters a) == (ConstrainPoint2DParameters b) = js_eq a b

instance PToJSVal ConstrainPoint2DParameters where
  pToJSVal = unConstrainPoint2DParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainPoint2DParameters where
  pFromJSVal = ConstrainPoint2DParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainPoint2DParameters where
  toJSVal = return . unConstrainPoint2DParameters
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainPoint2DParameters where
  fromJSVal = return . fmap ConstrainPoint2DParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainPoint2DParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ConstrainPoint2DParameters where
  typeGType _ = gTypeConstrainPoint2DParameters
  {-# INLINE typeGType #-}

noConstrainPoint2DParameters :: Maybe ConstrainPoint2DParameters
noConstrainPoint2DParameters = Nothing
{-# INLINE noConstrainPoint2DParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstrainPoint2DParameters :: GType

-- | Dictionary ConstrainULongRange (mediacapture-streams)
newtype ConstrainULongRange = ConstrainULongRange { unConstrainULongRange :: JSVal }

instance Eq ConstrainULongRange where
  (ConstrainULongRange a) == (ConstrainULongRange b) = js_eq a b

instance PToJSVal ConstrainULongRange where
  pToJSVal = unConstrainULongRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConstrainULongRange where
  pFromJSVal = ConstrainULongRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConstrainULongRange where
  toJSVal = return . unConstrainULongRange
  {-# INLINE toJSVal #-}

instance FromJSVal ConstrainULongRange where
  fromJSVal = return . fmap ConstrainULongRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConstrainULongRange
  {-# INLINE fromJSValUnchecked #-}

instance IsULongRange ConstrainULongRange

instance IsGObject ConstrainULongRange where
  typeGType _ = gTypeConstrainULongRange
  {-# INLINE typeGType #-}

noConstrainULongRange :: Maybe ConstrainULongRange
noConstrainULongRange = Nothing
{-# INLINE noConstrainULongRange #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConstrainULongRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.ContactAddress" (contact-picker).
newtype ContactAddress = ContactAddress { unContactAddress :: JSVal }

instance Eq ContactAddress where
  (ContactAddress a) == (ContactAddress b) = js_eq a b

instance PToJSVal ContactAddress where
  pToJSVal = unContactAddress
  {-# INLINE pToJSVal #-}

instance PFromJSVal ContactAddress where
  pFromJSVal = ContactAddress
  {-# INLINE pFromJSVal #-}

instance ToJSVal ContactAddress where
  toJSVal = return . unContactAddress
  {-# INLINE toJSVal #-}

instance FromJSVal ContactAddress where
  fromJSVal = return . fmap ContactAddress . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ContactAddress
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ContactAddress where
  typeGType _ = gTypeContactAddress
  {-# INLINE typeGType #-}

noContactAddress :: Maybe ContactAddress
noContactAddress = Nothing
{-# INLINE noContactAddress #-}

foreign import javascript unsafe "(() => globalThis[\"ContactAddress\"])" gTypeContactAddress :: GType

-- | Functions for this interface are in "GHCJS.DOM.ContentVisibilityAutoStateChangeEvent" (css-contain-2).
newtype ContentVisibilityAutoStateChangeEvent = ContentVisibilityAutoStateChangeEvent { unContentVisibilityAutoStateChangeEvent :: JSVal }

instance Eq ContentVisibilityAutoStateChangeEvent where
  (ContentVisibilityAutoStateChangeEvent a) == (ContentVisibilityAutoStateChangeEvent b) = js_eq a b

instance PToJSVal ContentVisibilityAutoStateChangeEvent where
  pToJSVal = unContentVisibilityAutoStateChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ContentVisibilityAutoStateChangeEvent where
  pFromJSVal = ContentVisibilityAutoStateChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ContentVisibilityAutoStateChangeEvent where
  toJSVal = return . unContentVisibilityAutoStateChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ContentVisibilityAutoStateChangeEvent where
  fromJSVal = return . fmap ContentVisibilityAutoStateChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ContentVisibilityAutoStateChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent ContentVisibilityAutoStateChangeEvent

instance IsGObject ContentVisibilityAutoStateChangeEvent where
  typeGType _ = gTypeContentVisibilityAutoStateChangeEvent
  {-# INLINE typeGType #-}

noContentVisibilityAutoStateChangeEvent :: Maybe ContentVisibilityAutoStateChangeEvent
noContentVisibilityAutoStateChangeEvent = Nothing
{-# INLINE noContentVisibilityAutoStateChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ContentVisibilityAutoStateChangeEvent\"])" gTypeContentVisibilityAutoStateChangeEvent :: GType

-- | Dictionary ContentVisibilityAutoStateChangeEventInit (css-contain-2)
newtype ContentVisibilityAutoStateChangeEventInit = ContentVisibilityAutoStateChangeEventInit { unContentVisibilityAutoStateChangeEventInit :: JSVal }

instance Eq ContentVisibilityAutoStateChangeEventInit where
  (ContentVisibilityAutoStateChangeEventInit a) == (ContentVisibilityAutoStateChangeEventInit b) = js_eq a b

instance PToJSVal ContentVisibilityAutoStateChangeEventInit where
  pToJSVal = unContentVisibilityAutoStateChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ContentVisibilityAutoStateChangeEventInit where
  pFromJSVal = ContentVisibilityAutoStateChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ContentVisibilityAutoStateChangeEventInit where
  toJSVal = return . unContentVisibilityAutoStateChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ContentVisibilityAutoStateChangeEventInit where
  fromJSVal = return . fmap ContentVisibilityAutoStateChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ContentVisibilityAutoStateChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit ContentVisibilityAutoStateChangeEventInit

instance IsGObject ContentVisibilityAutoStateChangeEventInit where
  typeGType _ = gTypeContentVisibilityAutoStateChangeEventInit
  {-# INLINE typeGType #-}

noContentVisibilityAutoStateChangeEventInit :: Maybe ContentVisibilityAutoStateChangeEventInit
noContentVisibilityAutoStateChangeEventInit = Nothing
{-# INLINE noContentVisibilityAutoStateChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeContentVisibilityAutoStateChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.ConvolverNode" (webaudio-1.1).
newtype ConvolverNode = ConvolverNode { unConvolverNode :: JSVal }

instance Eq ConvolverNode where
  (ConvolverNode a) == (ConvolverNode b) = js_eq a b

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 = return . fmap ConvolverNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConvolverNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode ConvolverNode
instance IsEventTarget ConvolverNode

instance IsGObject ConvolverNode where
  typeGType _ = gTypeConvolverNode
  {-# INLINE typeGType #-}

noConvolverNode :: Maybe ConvolverNode
noConvolverNode = Nothing
{-# INLINE noConvolverNode #-}

foreign import javascript unsafe "(() => globalThis[\"ConvolverNode\"])" gTypeConvolverNode :: GType

-- | Dictionary ConvolverOptions (webaudio-1.1)
newtype ConvolverOptions = ConvolverOptions { unConvolverOptions :: JSVal }

instance Eq ConvolverOptions where
  (ConvolverOptions a) == (ConvolverOptions b) = js_eq a b

instance PToJSVal ConvolverOptions where
  pToJSVal = unConvolverOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ConvolverOptions where
  pFromJSVal = ConvolverOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ConvolverOptions where
  toJSVal = return . unConvolverOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ConvolverOptions where
  fromJSVal = return . fmap ConvolverOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ConvolverOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions ConvolverOptions

instance IsGObject ConvolverOptions where
  typeGType _ = gTypeConvolverOptions
  {-# INLINE typeGType #-}

noConvolverOptions :: Maybe ConvolverOptions
noConvolverOptions = Nothing
{-# INLINE noConvolverOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeConvolverOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CookieChangeEvent" (cookiestore).
newtype CookieChangeEvent = CookieChangeEvent { unCookieChangeEvent :: JSVal }

instance Eq CookieChangeEvent where
  (CookieChangeEvent a) == (CookieChangeEvent b) = js_eq a b

instance PToJSVal CookieChangeEvent where
  pToJSVal = unCookieChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieChangeEvent where
  pFromJSVal = CookieChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieChangeEvent where
  toJSVal = return . unCookieChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal CookieChangeEvent where
  fromJSVal = return . fmap CookieChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent CookieChangeEvent

instance IsGObject CookieChangeEvent where
  typeGType _ = gTypeCookieChangeEvent
  {-# INLINE typeGType #-}

noCookieChangeEvent :: Maybe CookieChangeEvent
noCookieChangeEvent = Nothing
{-# INLINE noCookieChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"CookieChangeEvent\"])" gTypeCookieChangeEvent :: GType

-- | Dictionary CookieChangeEventInit (cookiestore)
newtype CookieChangeEventInit = CookieChangeEventInit { unCookieChangeEventInit :: JSVal }

instance Eq CookieChangeEventInit where
  (CookieChangeEventInit a) == (CookieChangeEventInit b) = js_eq a b

instance PToJSVal CookieChangeEventInit where
  pToJSVal = unCookieChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieChangeEventInit where
  pFromJSVal = CookieChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieChangeEventInit where
  toJSVal = return . unCookieChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal CookieChangeEventInit where
  fromJSVal = return . fmap CookieChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit CookieChangeEventInit

instance IsGObject CookieChangeEventInit where
  typeGType _ = gTypeCookieChangeEventInit
  {-# INLINE typeGType #-}

noCookieChangeEventInit :: Maybe CookieChangeEventInit
noCookieChangeEventInit = Nothing
{-# INLINE noCookieChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCookieChangeEventInit :: GType

-- | Dictionary CookieInit (cookiestore)
newtype CookieInit = CookieInit { unCookieInit :: JSVal }

instance Eq CookieInit where
  (CookieInit a) == (CookieInit b) = js_eq a b

instance PToJSVal CookieInit where
  pToJSVal = unCookieInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieInit where
  pFromJSVal = CookieInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieInit where
  toJSVal = return . unCookieInit
  {-# INLINE toJSVal #-}

instance FromJSVal CookieInit where
  fromJSVal = return . fmap CookieInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CookieInit where
  typeGType _ = gTypeCookieInit
  {-# INLINE typeGType #-}

noCookieInit :: Maybe CookieInit
noCookieInit = Nothing
{-# INLINE noCookieInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCookieInit :: GType

-- | Dictionary CookieListItem (cookiestore)
newtype CookieListItem = CookieListItem { unCookieListItem :: JSVal }

instance Eq CookieListItem where
  (CookieListItem a) == (CookieListItem b) = js_eq a b

instance PToJSVal CookieListItem where
  pToJSVal = unCookieListItem
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieListItem where
  pFromJSVal = CookieListItem
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieListItem where
  toJSVal = return . unCookieListItem
  {-# INLINE toJSVal #-}

instance FromJSVal CookieListItem where
  fromJSVal = return . fmap CookieListItem . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieListItem
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CookieListItem where
  typeGType _ = gTypeCookieListItem
  {-# INLINE typeGType #-}

noCookieListItem :: Maybe CookieListItem
noCookieListItem = Nothing
{-# INLINE noCookieListItem #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCookieListItem :: GType

-- | Functions for this interface are in "GHCJS.DOM.CookieStore" (cookiestore).
newtype CookieStore = CookieStore { unCookieStore :: JSVal }

instance Eq CookieStore where
  (CookieStore a) == (CookieStore b) = js_eq a b

instance PToJSVal CookieStore where
  pToJSVal = unCookieStore
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieStore where
  pFromJSVal = CookieStore
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieStore where
  toJSVal = return . unCookieStore
  {-# INLINE toJSVal #-}

instance FromJSVal CookieStore where
  fromJSVal = return . fmap CookieStore . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieStore
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget CookieStore

instance IsGObject CookieStore where
  typeGType _ = gTypeCookieStore
  {-# INLINE typeGType #-}

noCookieStore :: Maybe CookieStore
noCookieStore = Nothing
{-# INLINE noCookieStore #-}

foreign import javascript unsafe "(() => globalThis[\"CookieStore\"])" gTypeCookieStore :: GType

-- | Dictionary CookieStoreDeleteOptions (cookiestore)
newtype CookieStoreDeleteOptions = CookieStoreDeleteOptions { unCookieStoreDeleteOptions :: JSVal }

instance Eq CookieStoreDeleteOptions where
  (CookieStoreDeleteOptions a) == (CookieStoreDeleteOptions b) = js_eq a b

instance PToJSVal CookieStoreDeleteOptions where
  pToJSVal = unCookieStoreDeleteOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieStoreDeleteOptions where
  pFromJSVal = CookieStoreDeleteOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieStoreDeleteOptions where
  toJSVal = return . unCookieStoreDeleteOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CookieStoreDeleteOptions where
  fromJSVal = return . fmap CookieStoreDeleteOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieStoreDeleteOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CookieStoreDeleteOptions where
  typeGType _ = gTypeCookieStoreDeleteOptions
  {-# INLINE typeGType #-}

noCookieStoreDeleteOptions :: Maybe CookieStoreDeleteOptions
noCookieStoreDeleteOptions = Nothing
{-# INLINE noCookieStoreDeleteOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCookieStoreDeleteOptions :: GType

-- | Dictionary CookieStoreGetOptions (cookiestore)
newtype CookieStoreGetOptions = CookieStoreGetOptions { unCookieStoreGetOptions :: JSVal }

instance Eq CookieStoreGetOptions where
  (CookieStoreGetOptions a) == (CookieStoreGetOptions b) = js_eq a b

instance PToJSVal CookieStoreGetOptions where
  pToJSVal = unCookieStoreGetOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieStoreGetOptions where
  pFromJSVal = CookieStoreGetOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieStoreGetOptions where
  toJSVal = return . unCookieStoreGetOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CookieStoreGetOptions where
  fromJSVal = return . fmap CookieStoreGetOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieStoreGetOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CookieStoreGetOptions where
  typeGType _ = gTypeCookieStoreGetOptions
  {-# INLINE typeGType #-}

noCookieStoreGetOptions :: Maybe CookieStoreGetOptions
noCookieStoreGetOptions = Nothing
{-# INLINE noCookieStoreGetOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCookieStoreGetOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CookieStoreManager" (cookiestore).
newtype CookieStoreManager = CookieStoreManager { unCookieStoreManager :: JSVal }

instance Eq CookieStoreManager where
  (CookieStoreManager a) == (CookieStoreManager b) = js_eq a b

instance PToJSVal CookieStoreManager where
  pToJSVal = unCookieStoreManager
  {-# INLINE pToJSVal #-}

instance PFromJSVal CookieStoreManager where
  pFromJSVal = CookieStoreManager
  {-# INLINE pFromJSVal #-}

instance ToJSVal CookieStoreManager where
  toJSVal = return . unCookieStoreManager
  {-# INLINE toJSVal #-}

instance FromJSVal CookieStoreManager where
  fromJSVal = return . fmap CookieStoreManager . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CookieStoreManager
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CookieStoreManager where
  typeGType _ = gTypeCookieStoreManager
  {-# INLINE typeGType #-}

noCookieStoreManager :: Maybe CookieStoreManager
noCookieStoreManager = Nothing
{-# INLINE noCookieStoreManager #-}

foreign import javascript unsafe "(() => globalThis[\"CookieStoreManager\"])" gTypeCookieStoreManager :: GType

-- | Functions for this interface are in "GHCJS.DOM.CountQueuingStrategy" (streams).
newtype CountQueuingStrategy = CountQueuingStrategy { unCountQueuingStrategy :: JSVal }

instance Eq CountQueuingStrategy where
  (CountQueuingStrategy a) == (CountQueuingStrategy b) = js_eq a b

instance PToJSVal CountQueuingStrategy where
  pToJSVal = unCountQueuingStrategy
  {-# INLINE pToJSVal #-}

instance PFromJSVal CountQueuingStrategy where
  pFromJSVal = CountQueuingStrategy
  {-# INLINE pFromJSVal #-}

instance ToJSVal CountQueuingStrategy where
  toJSVal = return . unCountQueuingStrategy
  {-# INLINE toJSVal #-}

instance FromJSVal CountQueuingStrategy where
  fromJSVal = return . fmap CountQueuingStrategy . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CountQueuingStrategy
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CountQueuingStrategy where
  typeGType _ = gTypeCountQueuingStrategy
  {-# INLINE typeGType #-}

noCountQueuingStrategy :: Maybe CountQueuingStrategy
noCountQueuingStrategy = Nothing
{-# INLINE noCountQueuingStrategy #-}

foreign import javascript unsafe "(() => globalThis[\"CountQueuingStrategy\"])" gTypeCountQueuingStrategy :: GType

-- | Functions for this interface are in "GHCJS.DOM.Credential" (credential-management-1).
newtype Credential = Credential { unCredential :: JSVal }

instance Eq Credential where
  (Credential a) == (Credential b) = js_eq a b

instance PToJSVal Credential where
  pToJSVal = unCredential
  {-# INLINE pToJSVal #-}

instance PFromJSVal Credential where
  pFromJSVal = Credential
  {-# INLINE pFromJSVal #-}

instance ToJSVal Credential where
  toJSVal = return . unCredential
  {-# INLINE toJSVal #-}

instance FromJSVal Credential where
  fromJSVal = return . fmap Credential . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Credential
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCredential o
toCredential :: IsCredential o => o -> Credential
toCredential = Credential . coerce

instance IsCredential Credential

instance IsGObject Credential where
  typeGType _ = gTypeCredential
  {-# INLINE typeGType #-}

noCredential :: Maybe Credential
noCredential = Nothing
{-# INLINE noCredential #-}

foreign import javascript unsafe "(() => globalThis[\"Credential\"])" gTypeCredential :: GType

-- | Dictionary CredentialCreationOptions (credential-management-1)
newtype CredentialCreationOptions = CredentialCreationOptions { unCredentialCreationOptions :: JSVal }

instance Eq CredentialCreationOptions where
  (CredentialCreationOptions a) == (CredentialCreationOptions b) = js_eq a b

instance PToJSVal CredentialCreationOptions where
  pToJSVal = unCredentialCreationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CredentialCreationOptions where
  pFromJSVal = CredentialCreationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CredentialCreationOptions where
  toJSVal = return . unCredentialCreationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CredentialCreationOptions where
  fromJSVal = return . fmap CredentialCreationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CredentialCreationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CredentialCreationOptions where
  typeGType _ = gTypeCredentialCreationOptions
  {-# INLINE typeGType #-}

noCredentialCreationOptions :: Maybe CredentialCreationOptions
noCredentialCreationOptions = Nothing
{-# INLINE noCredentialCreationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCredentialCreationOptions :: GType

-- | Dictionary CredentialData (credential-management-1)
newtype CredentialData = CredentialData { unCredentialData :: JSVal }

instance Eq CredentialData where
  (CredentialData a) == (CredentialData b) = js_eq a b

instance PToJSVal CredentialData where
  pToJSVal = unCredentialData
  {-# INLINE pToJSVal #-}

instance PFromJSVal CredentialData where
  pFromJSVal = CredentialData
  {-# INLINE pFromJSVal #-}

instance ToJSVal CredentialData where
  toJSVal = return . unCredentialData
  {-# INLINE toJSVal #-}

instance FromJSVal CredentialData where
  fromJSVal = return . fmap CredentialData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CredentialData
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsCredentialData o
toCredentialData :: IsCredentialData o => o -> CredentialData
toCredentialData = CredentialData . coerce

instance IsCredentialData CredentialData

instance IsGObject CredentialData where
  typeGType _ = gTypeCredentialData
  {-# INLINE typeGType #-}

noCredentialData :: Maybe CredentialData
noCredentialData = Nothing
{-# INLINE noCredentialData #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCredentialData :: GType

-- | Dictionary CredentialPropertiesOutput (webauthn-4)
newtype CredentialPropertiesOutput = CredentialPropertiesOutput { unCredentialPropertiesOutput :: JSVal }

instance Eq CredentialPropertiesOutput where
  (CredentialPropertiesOutput a) == (CredentialPropertiesOutput b) = js_eq a b

instance PToJSVal CredentialPropertiesOutput where
  pToJSVal = unCredentialPropertiesOutput
  {-# INLINE pToJSVal #-}

instance PFromJSVal CredentialPropertiesOutput where
  pFromJSVal = CredentialPropertiesOutput
  {-# INLINE pFromJSVal #-}

instance ToJSVal CredentialPropertiesOutput where
  toJSVal = return . unCredentialPropertiesOutput
  {-# INLINE toJSVal #-}

instance FromJSVal CredentialPropertiesOutput where
  fromJSVal = return . fmap CredentialPropertiesOutput . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CredentialPropertiesOutput
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CredentialPropertiesOutput where
  typeGType _ = gTypeCredentialPropertiesOutput
  {-# INLINE typeGType #-}

noCredentialPropertiesOutput :: Maybe CredentialPropertiesOutput
noCredentialPropertiesOutput = Nothing
{-# INLINE noCredentialPropertiesOutput #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCredentialPropertiesOutput :: GType

-- | Dictionary CredentialRequestOptions (credential-management-1)
newtype CredentialRequestOptions = CredentialRequestOptions { unCredentialRequestOptions :: JSVal }

instance Eq CredentialRequestOptions where
  (CredentialRequestOptions a) == (CredentialRequestOptions b) = js_eq a b

instance PToJSVal CredentialRequestOptions where
  pToJSVal = unCredentialRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CredentialRequestOptions where
  pFromJSVal = CredentialRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CredentialRequestOptions where
  toJSVal = return . unCredentialRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CredentialRequestOptions where
  fromJSVal = return . fmap CredentialRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CredentialRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CredentialRequestOptions where
  typeGType _ = gTypeCredentialRequestOptions
  {-# INLINE typeGType #-}

noCredentialRequestOptions :: Maybe CredentialRequestOptions
noCredentialRequestOptions = Nothing
{-# INLINE noCredentialRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCredentialRequestOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CredentialsContainer" (credential-management-1).
newtype CredentialsContainer = CredentialsContainer { unCredentialsContainer :: JSVal }

instance Eq CredentialsContainer where
  (CredentialsContainer a) == (CredentialsContainer b) = js_eq a b

instance PToJSVal CredentialsContainer where
  pToJSVal = unCredentialsContainer
  {-# INLINE pToJSVal #-}

instance PFromJSVal CredentialsContainer where
  pFromJSVal = CredentialsContainer
  {-# INLINE pFromJSVal #-}

instance ToJSVal CredentialsContainer where
  toJSVal = return . unCredentialsContainer
  {-# INLINE toJSVal #-}

instance FromJSVal CredentialsContainer where
  fromJSVal = return . fmap CredentialsContainer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CredentialsContainer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CredentialsContainer where
  typeGType _ = gTypeCredentialsContainer
  {-# INLINE typeGType #-}

noCredentialsContainer :: Maybe CredentialsContainer
noCredentialsContainer = Nothing
{-# INLINE noCredentialsContainer #-}

foreign import javascript unsafe "(() => globalThis[\"CredentialsContainer\"])" gTypeCredentialsContainer :: GType

-- | Functions for this interface are in "GHCJS.DOM.Crypto" (webcrypto-2).
newtype Crypto = Crypto { unCrypto :: JSVal }

instance Eq Crypto where
  (Crypto a) == (Crypto b) = js_eq a b

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 = return . fmap Crypto . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Crypto
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Crypto where
  typeGType _ = gTypeCrypto
  {-# INLINE typeGType #-}

noCrypto :: Maybe Crypto
noCrypto = Nothing
{-# INLINE noCrypto #-}

foreign import javascript unsafe "(() => globalThis[\"Crypto\"])" gTypeCrypto :: GType

-- | Functions for this interface are in "GHCJS.DOM.CryptoKey" (webcrypto-2).
newtype CryptoKey = CryptoKey { unCryptoKey :: JSVal }

instance Eq CryptoKey where
  (CryptoKey a) == (CryptoKey b) = js_eq a b

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 = return . fmap CryptoKey . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CryptoKey
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CryptoKey where
  typeGType _ = gTypeCryptoKey
  {-# INLINE typeGType #-}

noCryptoKey :: Maybe CryptoKey
noCryptoKey = Nothing
{-# INLINE noCryptoKey #-}

foreign import javascript unsafe "(() => globalThis[\"CryptoKey\"])" gTypeCryptoKey :: GType

-- | Dictionary CryptoKeyPair (webcrypto-2)
newtype CryptoKeyPair = CryptoKeyPair { unCryptoKeyPair :: JSVal }

instance Eq CryptoKeyPair where
  (CryptoKeyPair a) == (CryptoKeyPair b) = js_eq a b

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 = return . fmap CryptoKeyPair . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CryptoKeyPair
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CryptoKeyPair where
  typeGType _ = gTypeCryptoKeyPair
  {-# INLINE typeGType #-}

noCryptoKeyPair :: Maybe CryptoKeyPair
noCryptoKeyPair = Nothing
{-# INLINE noCryptoKeyPair #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCryptoKeyPair :: GType

-- | Dictionary CurrentUserDetailsOptions (webauthn-4)
newtype CurrentUserDetailsOptions = CurrentUserDetailsOptions { unCurrentUserDetailsOptions :: JSVal }

instance Eq CurrentUserDetailsOptions where
  (CurrentUserDetailsOptions a) == (CurrentUserDetailsOptions b) = js_eq a b

instance PToJSVal CurrentUserDetailsOptions where
  pToJSVal = unCurrentUserDetailsOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal CurrentUserDetailsOptions where
  pFromJSVal = CurrentUserDetailsOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal CurrentUserDetailsOptions where
  toJSVal = return . unCurrentUserDetailsOptions
  {-# INLINE toJSVal #-}

instance FromJSVal CurrentUserDetailsOptions where
  fromJSVal = return . fmap CurrentUserDetailsOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CurrentUserDetailsOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CurrentUserDetailsOptions where
  typeGType _ = gTypeCurrentUserDetailsOptions
  {-# INLINE typeGType #-}

noCurrentUserDetailsOptions :: Maybe CurrentUserDetailsOptions
noCurrentUserDetailsOptions = Nothing
{-# INLINE noCurrentUserDetailsOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCurrentUserDetailsOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.CustomElementRegistry" (html).
newtype CustomElementRegistry = CustomElementRegistry { unCustomElementRegistry :: JSVal }

instance Eq CustomElementRegistry where
  (CustomElementRegistry a) == (CustomElementRegistry b) = js_eq a b

instance PToJSVal CustomElementRegistry where
  pToJSVal = unCustomElementRegistry
  {-# INLINE pToJSVal #-}

instance PFromJSVal CustomElementRegistry where
  pFromJSVal = CustomElementRegistry
  {-# INLINE pFromJSVal #-}

instance ToJSVal CustomElementRegistry where
  toJSVal = return . unCustomElementRegistry
  {-# INLINE toJSVal #-}

instance FromJSVal CustomElementRegistry where
  fromJSVal = return . fmap CustomElementRegistry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CustomElementRegistry
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CustomElementRegistry where
  typeGType _ = gTypeCustomElementRegistry
  {-# INLINE typeGType #-}

noCustomElementRegistry :: Maybe CustomElementRegistry
noCustomElementRegistry = Nothing
{-# INLINE noCustomElementRegistry #-}

foreign import javascript unsafe "(() => globalThis[\"CustomElementRegistry\"])" gTypeCustomElementRegistry :: GType

-- | Functions for this interface are in "GHCJS.DOM.CustomEvent" (dom).
newtype CustomEvent = CustomEvent { unCustomEvent :: JSVal }

instance Eq CustomEvent where
  (CustomEvent a) == (CustomEvent b) = js_eq a b

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 = return . fmap CustomEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CustomEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent CustomEvent

instance IsGObject CustomEvent where
  typeGType _ = gTypeCustomEvent
  {-# INLINE typeGType #-}

noCustomEvent :: Maybe CustomEvent
noCustomEvent = Nothing
{-# INLINE noCustomEvent #-}

foreign import javascript unsafe "(() => globalThis[\"CustomEvent\"])" gTypeCustomEvent :: GType

-- | Dictionary CustomEventInit (dom)
newtype CustomEventInit = CustomEventInit { unCustomEventInit :: JSVal }

instance Eq CustomEventInit where
  (CustomEventInit a) == (CustomEventInit b) = js_eq a b

instance PToJSVal CustomEventInit where
  pToJSVal = unCustomEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal CustomEventInit where
  pFromJSVal = CustomEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal CustomEventInit where
  toJSVal = return . unCustomEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal CustomEventInit where
  fromJSVal = return . fmap CustomEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CustomEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit CustomEventInit

instance IsGObject CustomEventInit where
  typeGType _ = gTypeCustomEventInit
  {-# INLINE typeGType #-}

noCustomEventInit :: Maybe CustomEventInit
noCustomEventInit = Nothing
{-# INLINE noCustomEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeCustomEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.CustomStateSet" (html).
newtype CustomStateSet = CustomStateSet { unCustomStateSet :: JSVal }

instance Eq CustomStateSet where
  (CustomStateSet a) == (CustomStateSet b) = js_eq a b

instance PToJSVal CustomStateSet where
  pToJSVal = unCustomStateSet
  {-# INLINE pToJSVal #-}

instance PFromJSVal CustomStateSet where
  pFromJSVal = CustomStateSet
  {-# INLINE pFromJSVal #-}

instance ToJSVal CustomStateSet where
  toJSVal = return . unCustomStateSet
  {-# INLINE toJSVal #-}

instance FromJSVal CustomStateSet where
  fromJSVal = return . fmap CustomStateSet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . CustomStateSet
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject CustomStateSet where
  typeGType _ = gTypeCustomStateSet
  {-# INLINE typeGType #-}

noCustomStateSet :: Maybe CustomStateSet
noCustomStateSet = Nothing
{-# INLINE noCustomStateSet #-}

foreign import javascript unsafe "(() => globalThis[\"CustomStateSet\"])" gTypeCustomStateSet :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMException" (webidl).
newtype DOMException = DOMException { unDOMException :: JSVal }

instance Eq DOMException where
  (DOMException a) == (DOMException b) = js_eq a b

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 = return . fmap DOMException . maybeJSNullOrUndefined
  {-# 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 _ = gTypeDOMException
  {-# INLINE typeGType #-}

noDOMException :: Maybe DOMException
noDOMException = Nothing
{-# INLINE noDOMException #-}

foreign import javascript unsafe "(() => globalThis[\"DOMException\"])" gTypeDOMException :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMImplementation" (dom).
newtype DOMImplementation = DOMImplementation { unDOMImplementation :: JSVal }

instance Eq DOMImplementation where
  (DOMImplementation a) == (DOMImplementation b) = js_eq a b

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 = return . fmap DOMImplementation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMImplementation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMImplementation where
  typeGType _ = gTypeDOMImplementation
  {-# INLINE typeGType #-}

noDOMImplementation :: Maybe DOMImplementation
noDOMImplementation = Nothing
{-# INLINE noDOMImplementation #-}

foreign import javascript unsafe "(() => globalThis[\"DOMImplementation\"])" gTypeDOMImplementation :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMMatrix" (geometry-1).
newtype DOMMatrix = DOMMatrix { unDOMMatrix :: JSVal }

instance Eq DOMMatrix where
  (DOMMatrix a) == (DOMMatrix b) = js_eq a b

instance PToJSVal DOMMatrix where
  pToJSVal = unDOMMatrix
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMMatrix where
  pFromJSVal = DOMMatrix
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMMatrix where
  toJSVal = return . unDOMMatrix
  {-# INLINE toJSVal #-}

instance FromJSVal DOMMatrix where
  fromJSVal = return . fmap DOMMatrix . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMMatrix
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMMatrixReadOnly DOMMatrix

instance IsGObject DOMMatrix where
  typeGType _ = gTypeDOMMatrix
  {-# INLINE typeGType #-}

noDOMMatrix :: Maybe DOMMatrix
noDOMMatrix = Nothing
{-# INLINE noDOMMatrix #-}

foreign import javascript unsafe "(() => globalThis[\"DOMMatrix\"])" gTypeDOMMatrix :: GType

-- | Dictionary DOMMatrix2DInit (geometry-1)
newtype DOMMatrix2DInit = DOMMatrix2DInit { unDOMMatrix2DInit :: JSVal }

instance Eq DOMMatrix2DInit where
  (DOMMatrix2DInit a) == (DOMMatrix2DInit b) = js_eq a b

instance PToJSVal DOMMatrix2DInit where
  pToJSVal = unDOMMatrix2DInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMMatrix2DInit where
  pFromJSVal = DOMMatrix2DInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMMatrix2DInit where
  toJSVal = return . unDOMMatrix2DInit
  {-# INLINE toJSVal #-}

instance FromJSVal DOMMatrix2DInit where
  fromJSVal = return . fmap DOMMatrix2DInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMMatrix2DInit
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsDOMMatrix2DInit o
toDOMMatrix2DInit :: IsDOMMatrix2DInit o => o -> DOMMatrix2DInit
toDOMMatrix2DInit = DOMMatrix2DInit . coerce

instance IsDOMMatrix2DInit DOMMatrix2DInit

instance IsGObject DOMMatrix2DInit where
  typeGType _ = gTypeDOMMatrix2DInit
  {-# INLINE typeGType #-}

noDOMMatrix2DInit :: Maybe DOMMatrix2DInit
noDOMMatrix2DInit = Nothing
{-# INLINE noDOMMatrix2DInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDOMMatrix2DInit :: GType

-- | Dictionary DOMMatrixInit (geometry-1)
newtype DOMMatrixInit = DOMMatrixInit { unDOMMatrixInit :: JSVal }

instance Eq DOMMatrixInit where
  (DOMMatrixInit a) == (DOMMatrixInit b) = js_eq a b

instance PToJSVal DOMMatrixInit where
  pToJSVal = unDOMMatrixInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMMatrixInit where
  pFromJSVal = DOMMatrixInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMMatrixInit where
  toJSVal = return . unDOMMatrixInit
  {-# INLINE toJSVal #-}

instance FromJSVal DOMMatrixInit where
  fromJSVal = return . fmap DOMMatrixInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMMatrixInit
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMMatrix2DInit DOMMatrixInit

instance IsGObject DOMMatrixInit where
  typeGType _ = gTypeDOMMatrixInit
  {-# INLINE typeGType #-}

noDOMMatrixInit :: Maybe DOMMatrixInit
noDOMMatrixInit = Nothing
{-# INLINE noDOMMatrixInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDOMMatrixInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMMatrixReadOnly" (geometry-1).
newtype DOMMatrixReadOnly = DOMMatrixReadOnly { unDOMMatrixReadOnly :: JSVal }

instance Eq DOMMatrixReadOnly where
  (DOMMatrixReadOnly a) == (DOMMatrixReadOnly b) = js_eq a b

instance PToJSVal DOMMatrixReadOnly where
  pToJSVal = unDOMMatrixReadOnly
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMMatrixReadOnly where
  pFromJSVal = DOMMatrixReadOnly
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMMatrixReadOnly where
  toJSVal = return . unDOMMatrixReadOnly
  {-# INLINE toJSVal #-}

instance FromJSVal DOMMatrixReadOnly where
  fromJSVal = return . fmap DOMMatrixReadOnly . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMMatrixReadOnly
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsDOMMatrixReadOnly o
toDOMMatrixReadOnly :: IsDOMMatrixReadOnly o => o -> DOMMatrixReadOnly
toDOMMatrixReadOnly = DOMMatrixReadOnly . coerce

instance IsDOMMatrixReadOnly DOMMatrixReadOnly

instance IsGObject DOMMatrixReadOnly where
  typeGType _ = gTypeDOMMatrixReadOnly
  {-# INLINE typeGType #-}

noDOMMatrixReadOnly :: Maybe DOMMatrixReadOnly
noDOMMatrixReadOnly = Nothing
{-# INLINE noDOMMatrixReadOnly #-}

foreign import javascript unsafe "(() => globalThis[\"DOMMatrixReadOnly\"])" gTypeDOMMatrixReadOnly :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMParser" (html).
newtype DOMParser = DOMParser { unDOMParser :: JSVal }

instance Eq DOMParser where
  (DOMParser a) == (DOMParser b) = js_eq a b

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 = return . fmap DOMParser . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMParser
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMParser where
  typeGType _ = gTypeDOMParser
  {-# INLINE typeGType #-}

noDOMParser :: Maybe DOMParser
noDOMParser = Nothing
{-# INLINE noDOMParser #-}

foreign import javascript unsafe "(() => globalThis[\"DOMParser\"])" gTypeDOMParser :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMPoint" (geometry-1).
newtype DOMPoint = DOMPoint { unDOMPoint :: JSVal }

instance Eq DOMPoint where
  (DOMPoint a) == (DOMPoint b) = js_eq a b

instance PToJSVal DOMPoint where
  pToJSVal = unDOMPoint
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMPoint where
  pFromJSVal = DOMPoint
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMPoint where
  toJSVal = return . unDOMPoint
  {-# INLINE toJSVal #-}

instance FromJSVal DOMPoint where
  fromJSVal = return . fmap DOMPoint . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMPoint
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMPointReadOnly DOMPoint

instance IsGObject DOMPoint where
  typeGType _ = gTypeDOMPoint
  {-# INLINE typeGType #-}

noDOMPoint :: Maybe DOMPoint
noDOMPoint = Nothing
{-# INLINE noDOMPoint #-}

foreign import javascript unsafe "(() => globalThis[\"DOMPoint\"])" gTypeDOMPoint :: GType

-- | Dictionary DOMPointInit (geometry-1)
newtype DOMPointInit = DOMPointInit { unDOMPointInit :: JSVal }

instance Eq DOMPointInit where
  (DOMPointInit a) == (DOMPointInit b) = js_eq a b

instance PToJSVal DOMPointInit where
  pToJSVal = unDOMPointInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMPointInit where
  pFromJSVal = DOMPointInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMPointInit where
  toJSVal = return . unDOMPointInit
  {-# INLINE toJSVal #-}

instance FromJSVal DOMPointInit where
  fromJSVal = return . fmap DOMPointInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMPointInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMPointInit where
  typeGType _ = gTypeDOMPointInit
  {-# INLINE typeGType #-}

noDOMPointInit :: Maybe DOMPointInit
noDOMPointInit = Nothing
{-# INLINE noDOMPointInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDOMPointInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMPointReadOnly" (geometry-1).
newtype DOMPointReadOnly = DOMPointReadOnly { unDOMPointReadOnly :: JSVal }

instance Eq DOMPointReadOnly where
  (DOMPointReadOnly a) == (DOMPointReadOnly b) = js_eq a b

instance PToJSVal DOMPointReadOnly where
  pToJSVal = unDOMPointReadOnly
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMPointReadOnly where
  pFromJSVal = DOMPointReadOnly
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMPointReadOnly where
  toJSVal = return . unDOMPointReadOnly
  {-# INLINE toJSVal #-}

instance FromJSVal DOMPointReadOnly where
  fromJSVal = return . fmap DOMPointReadOnly . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMPointReadOnly
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsDOMPointReadOnly o
toDOMPointReadOnly :: IsDOMPointReadOnly o => o -> DOMPointReadOnly
toDOMPointReadOnly = DOMPointReadOnly . coerce

instance IsDOMPointReadOnly DOMPointReadOnly

instance IsGObject DOMPointReadOnly where
  typeGType _ = gTypeDOMPointReadOnly
  {-# INLINE typeGType #-}

noDOMPointReadOnly :: Maybe DOMPointReadOnly
noDOMPointReadOnly = Nothing
{-# INLINE noDOMPointReadOnly #-}

foreign import javascript unsafe "(() => globalThis[\"DOMPointReadOnly\"])" gTypeDOMPointReadOnly :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMQuad" (geometry-1).
newtype DOMQuad = DOMQuad { unDOMQuad :: JSVal }

instance Eq DOMQuad where
  (DOMQuad a) == (DOMQuad b) = js_eq a b

instance PToJSVal DOMQuad where
  pToJSVal = unDOMQuad
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMQuad where
  pFromJSVal = DOMQuad
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMQuad where
  toJSVal = return . unDOMQuad
  {-# INLINE toJSVal #-}

instance FromJSVal DOMQuad where
  fromJSVal = return . fmap DOMQuad . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMQuad
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMQuad where
  typeGType _ = gTypeDOMQuad
  {-# INLINE typeGType #-}

noDOMQuad :: Maybe DOMQuad
noDOMQuad = Nothing
{-# INLINE noDOMQuad #-}

foreign import javascript unsafe "(() => globalThis[\"DOMQuad\"])" gTypeDOMQuad :: GType

-- | Dictionary DOMQuadInit (geometry-1)
newtype DOMQuadInit = DOMQuadInit { unDOMQuadInit :: JSVal }

instance Eq DOMQuadInit where
  (DOMQuadInit a) == (DOMQuadInit b) = js_eq a b

instance PToJSVal DOMQuadInit where
  pToJSVal = unDOMQuadInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMQuadInit where
  pFromJSVal = DOMQuadInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMQuadInit where
  toJSVal = return . unDOMQuadInit
  {-# INLINE toJSVal #-}

instance FromJSVal DOMQuadInit where
  fromJSVal = return . fmap DOMQuadInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMQuadInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMQuadInit where
  typeGType _ = gTypeDOMQuadInit
  {-# INLINE typeGType #-}

noDOMQuadInit :: Maybe DOMQuadInit
noDOMQuadInit = Nothing
{-# INLINE noDOMQuadInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDOMQuadInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMRect" (geometry-1).
newtype DOMRect = DOMRect { unDOMRect :: JSVal }

instance Eq DOMRect where
  (DOMRect a) == (DOMRect b) = js_eq a b

instance PToJSVal DOMRect where
  pToJSVal = unDOMRect
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMRect where
  pFromJSVal = DOMRect
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMRect where
  toJSVal = return . unDOMRect
  {-# INLINE toJSVal #-}

instance FromJSVal DOMRect where
  fromJSVal = return . fmap DOMRect . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMRect
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMRectReadOnly DOMRect

instance IsGObject DOMRect where
  typeGType _ = gTypeDOMRect
  {-# INLINE typeGType #-}

noDOMRect :: Maybe DOMRect
noDOMRect = Nothing
{-# INLINE noDOMRect #-}

foreign import javascript unsafe "(() => globalThis[\"DOMRect\"])" gTypeDOMRect :: GType

-- | Dictionary DOMRectInit (geometry-1)
newtype DOMRectInit = DOMRectInit { unDOMRectInit :: JSVal }

instance Eq DOMRectInit where
  (DOMRectInit a) == (DOMRectInit b) = js_eq a b

instance PToJSVal DOMRectInit where
  pToJSVal = unDOMRectInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMRectInit where
  pFromJSVal = DOMRectInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMRectInit where
  toJSVal = return . unDOMRectInit
  {-# INLINE toJSVal #-}

instance FromJSVal DOMRectInit where
  fromJSVal = return . fmap DOMRectInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMRectInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMRectInit where
  typeGType _ = gTypeDOMRectInit
  {-# INLINE typeGType #-}

noDOMRectInit :: Maybe DOMRectInit
noDOMRectInit = Nothing
{-# INLINE noDOMRectInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDOMRectInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMRectList" (geometry-1).
newtype DOMRectList = DOMRectList { unDOMRectList :: JSVal }

instance Eq DOMRectList where
  (DOMRectList a) == (DOMRectList b) = js_eq a b

instance PToJSVal DOMRectList where
  pToJSVal = unDOMRectList
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMRectList where
  pFromJSVal = DOMRectList
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMRectList where
  toJSVal = return . unDOMRectList
  {-# INLINE toJSVal #-}

instance FromJSVal DOMRectList where
  fromJSVal = return . fmap DOMRectList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMRectList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMRectList where
  typeGType _ = gTypeDOMRectList
  {-# INLINE typeGType #-}

noDOMRectList :: Maybe DOMRectList
noDOMRectList = Nothing
{-# INLINE noDOMRectList #-}

foreign import javascript unsafe "(() => globalThis[\"DOMRectList\"])" gTypeDOMRectList :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMRectReadOnly" (geometry-1).
newtype DOMRectReadOnly = DOMRectReadOnly { unDOMRectReadOnly :: JSVal }

instance Eq DOMRectReadOnly where
  (DOMRectReadOnly a) == (DOMRectReadOnly b) = js_eq a b

instance PToJSVal DOMRectReadOnly where
  pToJSVal = unDOMRectReadOnly
  {-# INLINE pToJSVal #-}

instance PFromJSVal DOMRectReadOnly where
  pFromJSVal = DOMRectReadOnly
  {-# INLINE pFromJSVal #-}

instance ToJSVal DOMRectReadOnly where
  toJSVal = return . unDOMRectReadOnly
  {-# INLINE toJSVal #-}

instance FromJSVal DOMRectReadOnly where
  fromJSVal = return . fmap DOMRectReadOnly . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMRectReadOnly
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsDOMRectReadOnly o
toDOMRectReadOnly :: IsDOMRectReadOnly o => o -> DOMRectReadOnly
toDOMRectReadOnly = DOMRectReadOnly . coerce

instance IsDOMRectReadOnly DOMRectReadOnly

instance IsGObject DOMRectReadOnly where
  typeGType _ = gTypeDOMRectReadOnly
  {-# INLINE typeGType #-}

noDOMRectReadOnly :: Maybe DOMRectReadOnly
noDOMRectReadOnly = Nothing
{-# INLINE noDOMRectReadOnly #-}

foreign import javascript unsafe "(() => globalThis[\"DOMRectReadOnly\"])" gTypeDOMRectReadOnly :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMStringList" (html).
newtype DOMStringList = DOMStringList { unDOMStringList :: JSVal }

instance Eq DOMStringList where
  (DOMStringList a) == (DOMStringList b) = js_eq a b

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 = return . fmap DOMStringList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMStringList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMStringList where
  typeGType _ = gTypeDOMStringList
  {-# INLINE typeGType #-}

noDOMStringList :: Maybe DOMStringList
noDOMStringList = Nothing
{-# INLINE noDOMStringList #-}

foreign import javascript unsafe "(() => globalThis[\"DOMStringList\"])" gTypeDOMStringList :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMStringMap" (html).
newtype DOMStringMap = DOMStringMap { unDOMStringMap :: JSVal }

instance Eq DOMStringMap where
  (DOMStringMap a) == (DOMStringMap b) = js_eq a b

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 = return . fmap DOMStringMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMStringMap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMStringMap where
  typeGType _ = gTypeDOMStringMap
  {-# INLINE typeGType #-}

noDOMStringMap :: Maybe DOMStringMap
noDOMStringMap = Nothing
{-# INLINE noDOMStringMap #-}

foreign import javascript unsafe "(() => globalThis[\"DOMStringMap\"])" gTypeDOMStringMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.DOMTokenList" (dom).
newtype DOMTokenList = DOMTokenList { unDOMTokenList :: JSVal }

instance Eq DOMTokenList where
  (DOMTokenList a) == (DOMTokenList b) = js_eq a b

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 = return . fmap DOMTokenList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DOMTokenList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DOMTokenList where
  typeGType _ = gTypeDOMTokenList
  {-# INLINE typeGType #-}

noDOMTokenList :: Maybe DOMTokenList
noDOMTokenList = Nothing
{-# INLINE noDOMTokenList #-}

foreign import javascript unsafe "(() => globalThis[\"DOMTokenList\"])" gTypeDOMTokenList :: GType

-- | Functions for this interface are in "GHCJS.DOM.DataCue" (datacue).
newtype DataCue = DataCue { unDataCue :: JSVal }

instance Eq DataCue where
  (DataCue a) == (DataCue b) = js_eq a b

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 = return . fmap DataCue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DataCue
  {-# INLINE fromJSValUnchecked #-}

instance IsTextTrackCue DataCue
instance IsEventTarget DataCue

instance IsGObject DataCue where
  typeGType _ = gTypeDataCue
  {-# INLINE typeGType #-}

noDataCue :: Maybe DataCue
noDataCue = Nothing
{-# INLINE noDataCue #-}

foreign import javascript unsafe "(() => globalThis[\"DataCue\"])" gTypeDataCue :: GType

-- | Functions for this interface are in "GHCJS.DOM.DataTransfer" (html).
newtype DataTransfer = DataTransfer { unDataTransfer :: JSVal }

instance Eq DataTransfer where
  (DataTransfer a) == (DataTransfer b) = js_eq a b

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 = return . fmap DataTransfer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DataTransfer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DataTransfer where
  typeGType _ = gTypeDataTransfer
  {-# INLINE typeGType #-}

noDataTransfer :: Maybe DataTransfer
noDataTransfer = Nothing
{-# INLINE noDataTransfer #-}

foreign import javascript unsafe "(() => globalThis[\"DataTransfer\"])" gTypeDataTransfer :: GType

-- | Functions for this interface are in "GHCJS.DOM.DataTransferItem" (html).
newtype DataTransferItem = DataTransferItem { unDataTransferItem :: JSVal }

instance Eq DataTransferItem where
  (DataTransferItem a) == (DataTransferItem b) = js_eq a b

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 = return . fmap DataTransferItem . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DataTransferItem
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DataTransferItem where
  typeGType _ = gTypeDataTransferItem
  {-# INLINE typeGType #-}

noDataTransferItem :: Maybe DataTransferItem
noDataTransferItem = Nothing
{-# INLINE noDataTransferItem #-}

foreign import javascript unsafe "(() => globalThis[\"DataTransferItem\"])" gTypeDataTransferItem :: GType

-- | Functions for this interface are in "GHCJS.DOM.DataTransferItemList" (html).
newtype DataTransferItemList = DataTransferItemList { unDataTransferItemList :: JSVal }

instance Eq DataTransferItemList where
  (DataTransferItemList a) == (DataTransferItemList b) = js_eq a b

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 = return . fmap DataTransferItemList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DataTransferItemList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DataTransferItemList where
  typeGType _ = gTypeDataTransferItemList
  {-# INLINE typeGType #-}

noDataTransferItemList :: Maybe DataTransferItemList
noDataTransferItemList = Nothing
{-# INLINE noDataTransferItemList #-}

foreign import javascript unsafe "(() => globalThis[\"DataTransferItemList\"])" gTypeDataTransferItemList :: GType

newtype DataView = DataView { unDataView :: JSVal }

instance Eq DataView where
  (DataView a) == (DataView b) = js_eq a b

instance PToJSVal DataView where
  pToJSVal = unDataView
  {-# INLINE pToJSVal #-}

instance PFromJSVal DataView where
  pFromJSVal = DataView
  {-# INLINE pFromJSVal #-}

instance ToJSVal DataView where
  toJSVal = return . unDataView
  {-# INLINE toJSVal #-}

instance FromJSVal DataView where
  fromJSVal = return . fmap DataView . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DataView
  {-# INLINE fromJSValUnchecked #-}

instance IsArrayBufferView DataView

instance IsGObject DataView where
  typeGType _ = gTypeDataView
  {-# INLINE typeGType #-}

noDataView :: Maybe DataView
noDataView = Nothing
{-# INLINE noDataView #-}

foreign import javascript unsafe "(() => globalThis[\"DataView\"])" gTypeDataView :: GType

-- | Functions for this interface are in "GHCJS.DOM.DecompressionStream" (compression).
newtype DecompressionStream = DecompressionStream { unDecompressionStream :: JSVal }

instance Eq DecompressionStream where
  (DecompressionStream a) == (DecompressionStream b) = js_eq a b

instance PToJSVal DecompressionStream where
  pToJSVal = unDecompressionStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal DecompressionStream where
  pFromJSVal = DecompressionStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal DecompressionStream where
  toJSVal = return . unDecompressionStream
  {-# INLINE toJSVal #-}

instance FromJSVal DecompressionStream where
  fromJSVal = return . fmap DecompressionStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DecompressionStream
  {-# INLINE fromJSValUnchecked #-}

instance IsGenericTransformStream DecompressionStream

instance IsGObject DecompressionStream where
  typeGType _ = gTypeDecompressionStream
  {-# INLINE typeGType #-}

noDecompressionStream :: Maybe DecompressionStream
noDecompressionStream = Nothing
{-# INLINE noDecompressionStream #-}

foreign import javascript unsafe "(() => globalThis[\"DecompressionStream\"])" gTypeDecompressionStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.DedicatedWorkerGlobalScope" (html).
newtype DedicatedWorkerGlobalScope = DedicatedWorkerGlobalScope { unDedicatedWorkerGlobalScope :: JSVal }

instance Eq DedicatedWorkerGlobalScope where
  (DedicatedWorkerGlobalScope a) == (DedicatedWorkerGlobalScope b) = js_eq a b

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 = return . fmap DedicatedWorkerGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DedicatedWorkerGlobalScope
  {-# INLINE fromJSValUnchecked #-}

instance IsAnimationFrameProvider DedicatedWorkerGlobalScope
instance IsMessageEventTarget DedicatedWorkerGlobalScope
instance IsWorkerGlobalScope DedicatedWorkerGlobalScope
instance IsFontFaceSource DedicatedWorkerGlobalScope
instance IsWindowOrWorkerGlobalScope DedicatedWorkerGlobalScope
instance IsEventTarget DedicatedWorkerGlobalScope

instance IsGObject DedicatedWorkerGlobalScope where
  typeGType _ = gTypeDedicatedWorkerGlobalScope
  {-# INLINE typeGType #-}

noDedicatedWorkerGlobalScope :: Maybe DedicatedWorkerGlobalScope
noDedicatedWorkerGlobalScope = Nothing
{-# INLINE noDedicatedWorkerGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"DedicatedWorkerGlobalScope\"])" gTypeDedicatedWorkerGlobalScope :: GType

-- | Functions for this interface are in "GHCJS.DOM.DelayNode" (webaudio-1.1).
newtype DelayNode = DelayNode { unDelayNode :: JSVal }

instance Eq DelayNode where
  (DelayNode a) == (DelayNode b) = js_eq a b

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 = return . fmap DelayNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DelayNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode DelayNode
instance IsEventTarget DelayNode

instance IsGObject DelayNode where
  typeGType _ = gTypeDelayNode
  {-# INLINE typeGType #-}

noDelayNode :: Maybe DelayNode
noDelayNode = Nothing
{-# INLINE noDelayNode #-}

foreign import javascript unsafe "(() => globalThis[\"DelayNode\"])" gTypeDelayNode :: GType

-- | Dictionary DelayOptions (webaudio-1.1)
newtype DelayOptions = DelayOptions { unDelayOptions :: JSVal }

instance Eq DelayOptions where
  (DelayOptions a) == (DelayOptions b) = js_eq a b

instance PToJSVal DelayOptions where
  pToJSVal = unDelayOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DelayOptions where
  pFromJSVal = DelayOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DelayOptions where
  toJSVal = return . unDelayOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DelayOptions where
  fromJSVal = return . fmap DelayOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DelayOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions DelayOptions

instance IsGObject DelayOptions where
  typeGType _ = gTypeDelayOptions
  {-# INLINE typeGType #-}

noDelayOptions :: Maybe DelayOptions
noDelayOptions = Nothing
{-# INLINE noDelayOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDelayOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.DeviceChangeEvent" (mediacapture-streams).
newtype DeviceChangeEvent = DeviceChangeEvent { unDeviceChangeEvent :: JSVal }

instance Eq DeviceChangeEvent where
  (DeviceChangeEvent a) == (DeviceChangeEvent b) = js_eq a b

instance PToJSVal DeviceChangeEvent where
  pToJSVal = unDeviceChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceChangeEvent where
  pFromJSVal = DeviceChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceChangeEvent where
  toJSVal = return . unDeviceChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceChangeEvent where
  fromJSVal = return . fmap DeviceChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent DeviceChangeEvent

instance IsGObject DeviceChangeEvent where
  typeGType _ = gTypeDeviceChangeEvent
  {-# INLINE typeGType #-}

noDeviceChangeEvent :: Maybe DeviceChangeEvent
noDeviceChangeEvent = Nothing
{-# INLINE noDeviceChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"DeviceChangeEvent\"])" gTypeDeviceChangeEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.DeviceMotionEvent" (orientation-event).
newtype DeviceMotionEvent = DeviceMotionEvent { unDeviceMotionEvent :: JSVal }

instance Eq DeviceMotionEvent where
  (DeviceMotionEvent a) == (DeviceMotionEvent b) = js_eq a b

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 = return . fmap DeviceMotionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceMotionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent DeviceMotionEvent

instance IsGObject DeviceMotionEvent where
  typeGType _ = gTypeDeviceMotionEvent
  {-# INLINE typeGType #-}

noDeviceMotionEvent :: Maybe DeviceMotionEvent
noDeviceMotionEvent = Nothing
{-# INLINE noDeviceMotionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"DeviceMotionEvent\"])" gTypeDeviceMotionEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.DeviceMotionEventAcceleration" (orientation-event).
newtype DeviceMotionEventAcceleration = DeviceMotionEventAcceleration { unDeviceMotionEventAcceleration :: JSVal }

instance Eq DeviceMotionEventAcceleration where
  (DeviceMotionEventAcceleration a) == (DeviceMotionEventAcceleration b) = js_eq a b

instance PToJSVal DeviceMotionEventAcceleration where
  pToJSVal = unDeviceMotionEventAcceleration
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceMotionEventAcceleration where
  pFromJSVal = DeviceMotionEventAcceleration
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceMotionEventAcceleration where
  toJSVal = return . unDeviceMotionEventAcceleration
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceMotionEventAcceleration where
  fromJSVal = return . fmap DeviceMotionEventAcceleration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceMotionEventAcceleration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DeviceMotionEventAcceleration where
  typeGType _ = gTypeDeviceMotionEventAcceleration
  {-# INLINE typeGType #-}

noDeviceMotionEventAcceleration :: Maybe DeviceMotionEventAcceleration
noDeviceMotionEventAcceleration = Nothing
{-# INLINE noDeviceMotionEventAcceleration #-}

foreign import javascript unsafe "(() => globalThis[\"DeviceMotionEventAcceleration\"])" gTypeDeviceMotionEventAcceleration :: GType

-- | Dictionary DeviceMotionEventAccelerationInit (orientation-event)
newtype DeviceMotionEventAccelerationInit = DeviceMotionEventAccelerationInit { unDeviceMotionEventAccelerationInit :: JSVal }

instance Eq DeviceMotionEventAccelerationInit where
  (DeviceMotionEventAccelerationInit a) == (DeviceMotionEventAccelerationInit b) = js_eq a b

instance PToJSVal DeviceMotionEventAccelerationInit where
  pToJSVal = unDeviceMotionEventAccelerationInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceMotionEventAccelerationInit where
  pFromJSVal = DeviceMotionEventAccelerationInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceMotionEventAccelerationInit where
  toJSVal = return . unDeviceMotionEventAccelerationInit
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceMotionEventAccelerationInit where
  fromJSVal = return . fmap DeviceMotionEventAccelerationInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceMotionEventAccelerationInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DeviceMotionEventAccelerationInit where
  typeGType _ = gTypeDeviceMotionEventAccelerationInit
  {-# INLINE typeGType #-}

noDeviceMotionEventAccelerationInit :: Maybe DeviceMotionEventAccelerationInit
noDeviceMotionEventAccelerationInit = Nothing
{-# INLINE noDeviceMotionEventAccelerationInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDeviceMotionEventAccelerationInit :: GType

-- | Dictionary DeviceMotionEventInit (orientation-event)
newtype DeviceMotionEventInit = DeviceMotionEventInit { unDeviceMotionEventInit :: JSVal }

instance Eq DeviceMotionEventInit where
  (DeviceMotionEventInit a) == (DeviceMotionEventInit b) = js_eq a b

instance PToJSVal DeviceMotionEventInit where
  pToJSVal = unDeviceMotionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceMotionEventInit where
  pFromJSVal = DeviceMotionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceMotionEventInit where
  toJSVal = return . unDeviceMotionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceMotionEventInit where
  fromJSVal = return . fmap DeviceMotionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceMotionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit DeviceMotionEventInit

instance IsGObject DeviceMotionEventInit where
  typeGType _ = gTypeDeviceMotionEventInit
  {-# INLINE typeGType #-}

noDeviceMotionEventInit :: Maybe DeviceMotionEventInit
noDeviceMotionEventInit = Nothing
{-# INLINE noDeviceMotionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDeviceMotionEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DeviceMotionEventRotationRate" (orientation-event).
newtype DeviceMotionEventRotationRate = DeviceMotionEventRotationRate { unDeviceMotionEventRotationRate :: JSVal }

instance Eq DeviceMotionEventRotationRate where
  (DeviceMotionEventRotationRate a) == (DeviceMotionEventRotationRate b) = js_eq a b

instance PToJSVal DeviceMotionEventRotationRate where
  pToJSVal = unDeviceMotionEventRotationRate
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceMotionEventRotationRate where
  pFromJSVal = DeviceMotionEventRotationRate
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceMotionEventRotationRate where
  toJSVal = return . unDeviceMotionEventRotationRate
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceMotionEventRotationRate where
  fromJSVal = return . fmap DeviceMotionEventRotationRate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceMotionEventRotationRate
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DeviceMotionEventRotationRate where
  typeGType _ = gTypeDeviceMotionEventRotationRate
  {-# INLINE typeGType #-}

noDeviceMotionEventRotationRate :: Maybe DeviceMotionEventRotationRate
noDeviceMotionEventRotationRate = Nothing
{-# INLINE noDeviceMotionEventRotationRate #-}

foreign import javascript unsafe "(() => globalThis[\"DeviceMotionEventRotationRate\"])" gTypeDeviceMotionEventRotationRate :: GType

-- | Dictionary DeviceMotionEventRotationRateInit (orientation-event)
newtype DeviceMotionEventRotationRateInit = DeviceMotionEventRotationRateInit { unDeviceMotionEventRotationRateInit :: JSVal }

instance Eq DeviceMotionEventRotationRateInit where
  (DeviceMotionEventRotationRateInit a) == (DeviceMotionEventRotationRateInit b) = js_eq a b

instance PToJSVal DeviceMotionEventRotationRateInit where
  pToJSVal = unDeviceMotionEventRotationRateInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceMotionEventRotationRateInit where
  pFromJSVal = DeviceMotionEventRotationRateInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceMotionEventRotationRateInit where
  toJSVal = return . unDeviceMotionEventRotationRateInit
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceMotionEventRotationRateInit where
  fromJSVal = return . fmap DeviceMotionEventRotationRateInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceMotionEventRotationRateInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DeviceMotionEventRotationRateInit where
  typeGType _ = gTypeDeviceMotionEventRotationRateInit
  {-# INLINE typeGType #-}

noDeviceMotionEventRotationRateInit :: Maybe DeviceMotionEventRotationRateInit
noDeviceMotionEventRotationRateInit = Nothing
{-# INLINE noDeviceMotionEventRotationRateInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDeviceMotionEventRotationRateInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DeviceOrientationEvent" (orientation-event).
newtype DeviceOrientationEvent = DeviceOrientationEvent { unDeviceOrientationEvent :: JSVal }

instance Eq DeviceOrientationEvent where
  (DeviceOrientationEvent a) == (DeviceOrientationEvent b) = js_eq a b

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 = return . fmap DeviceOrientationEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceOrientationEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent DeviceOrientationEvent

instance IsGObject DeviceOrientationEvent where
  typeGType _ = gTypeDeviceOrientationEvent
  {-# INLINE typeGType #-}

noDeviceOrientationEvent :: Maybe DeviceOrientationEvent
noDeviceOrientationEvent = Nothing
{-# INLINE noDeviceOrientationEvent #-}

foreign import javascript unsafe "(() => globalThis[\"DeviceOrientationEvent\"])" gTypeDeviceOrientationEvent :: GType

-- | Dictionary DeviceOrientationEventInit (orientation-event)
newtype DeviceOrientationEventInit = DeviceOrientationEventInit { unDeviceOrientationEventInit :: JSVal }

instance Eq DeviceOrientationEventInit where
  (DeviceOrientationEventInit a) == (DeviceOrientationEventInit b) = js_eq a b

instance PToJSVal DeviceOrientationEventInit where
  pToJSVal = unDeviceOrientationEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DeviceOrientationEventInit where
  pFromJSVal = DeviceOrientationEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DeviceOrientationEventInit where
  toJSVal = return . unDeviceOrientationEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal DeviceOrientationEventInit where
  fromJSVal = return . fmap DeviceOrientationEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DeviceOrientationEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit DeviceOrientationEventInit

instance IsGObject DeviceOrientationEventInit where
  typeGType _ = gTypeDeviceOrientationEventInit
  {-# INLINE typeGType #-}

noDeviceOrientationEventInit :: Maybe DeviceOrientationEventInit
noDeviceOrientationEventInit = Nothing
{-# INLINE noDeviceOrientationEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDeviceOrientationEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DigitalCredential" (digital-credentials).
newtype DigitalCredential = DigitalCredential { unDigitalCredential :: JSVal }

instance Eq DigitalCredential where
  (DigitalCredential a) == (DigitalCredential b) = js_eq a b

instance PToJSVal DigitalCredential where
  pToJSVal = unDigitalCredential
  {-# INLINE pToJSVal #-}

instance PFromJSVal DigitalCredential where
  pFromJSVal = DigitalCredential
  {-# INLINE pFromJSVal #-}

instance ToJSVal DigitalCredential where
  toJSVal = return . unDigitalCredential
  {-# INLINE toJSVal #-}

instance FromJSVal DigitalCredential where
  fromJSVal = return . fmap DigitalCredential . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DigitalCredential
  {-# INLINE fromJSValUnchecked #-}

instance IsCredential DigitalCredential

instance IsGObject DigitalCredential where
  typeGType _ = gTypeDigitalCredential
  {-# INLINE typeGType #-}

noDigitalCredential :: Maybe DigitalCredential
noDigitalCredential = Nothing
{-# INLINE noDigitalCredential #-}

foreign import javascript unsafe "(() => globalThis[\"DigitalCredential\"])" gTypeDigitalCredential :: GType

-- | Dictionary DigitalCredentialCreateRequest (digital-credentials)
newtype DigitalCredentialCreateRequest = DigitalCredentialCreateRequest { unDigitalCredentialCreateRequest :: JSVal }

instance Eq DigitalCredentialCreateRequest where
  (DigitalCredentialCreateRequest a) == (DigitalCredentialCreateRequest b) = js_eq a b

instance PToJSVal DigitalCredentialCreateRequest where
  pToJSVal = unDigitalCredentialCreateRequest
  {-# INLINE pToJSVal #-}

instance PFromJSVal DigitalCredentialCreateRequest where
  pFromJSVal = DigitalCredentialCreateRequest
  {-# INLINE pFromJSVal #-}

instance ToJSVal DigitalCredentialCreateRequest where
  toJSVal = return . unDigitalCredentialCreateRequest
  {-# INLINE toJSVal #-}

instance FromJSVal DigitalCredentialCreateRequest where
  fromJSVal = return . fmap DigitalCredentialCreateRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DigitalCredentialCreateRequest
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DigitalCredentialCreateRequest where
  typeGType _ = gTypeDigitalCredentialCreateRequest
  {-# INLINE typeGType #-}

noDigitalCredentialCreateRequest :: Maybe DigitalCredentialCreateRequest
noDigitalCredentialCreateRequest = Nothing
{-# INLINE noDigitalCredentialCreateRequest #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDigitalCredentialCreateRequest :: GType

-- | Dictionary DigitalCredentialCreationOptions (digital-credentials)
newtype DigitalCredentialCreationOptions = DigitalCredentialCreationOptions { unDigitalCredentialCreationOptions :: JSVal }

instance Eq DigitalCredentialCreationOptions where
  (DigitalCredentialCreationOptions a) == (DigitalCredentialCreationOptions b) = js_eq a b

instance PToJSVal DigitalCredentialCreationOptions where
  pToJSVal = unDigitalCredentialCreationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DigitalCredentialCreationOptions where
  pFromJSVal = DigitalCredentialCreationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DigitalCredentialCreationOptions where
  toJSVal = return . unDigitalCredentialCreationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DigitalCredentialCreationOptions where
  fromJSVal = return . fmap DigitalCredentialCreationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DigitalCredentialCreationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DigitalCredentialCreationOptions where
  typeGType _ = gTypeDigitalCredentialCreationOptions
  {-# INLINE typeGType #-}

noDigitalCredentialCreationOptions :: Maybe DigitalCredentialCreationOptions
noDigitalCredentialCreationOptions = Nothing
{-# INLINE noDigitalCredentialCreationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDigitalCredentialCreationOptions :: GType

-- | Dictionary DigitalCredentialGetRequest (digital-credentials)
newtype DigitalCredentialGetRequest = DigitalCredentialGetRequest { unDigitalCredentialGetRequest :: JSVal }

instance Eq DigitalCredentialGetRequest where
  (DigitalCredentialGetRequest a) == (DigitalCredentialGetRequest b) = js_eq a b

instance PToJSVal DigitalCredentialGetRequest where
  pToJSVal = unDigitalCredentialGetRequest
  {-# INLINE pToJSVal #-}

instance PFromJSVal DigitalCredentialGetRequest where
  pFromJSVal = DigitalCredentialGetRequest
  {-# INLINE pFromJSVal #-}

instance ToJSVal DigitalCredentialGetRequest where
  toJSVal = return . unDigitalCredentialGetRequest
  {-# INLINE toJSVal #-}

instance FromJSVal DigitalCredentialGetRequest where
  fromJSVal = return . fmap DigitalCredentialGetRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DigitalCredentialGetRequest
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DigitalCredentialGetRequest where
  typeGType _ = gTypeDigitalCredentialGetRequest
  {-# INLINE typeGType #-}

noDigitalCredentialGetRequest :: Maybe DigitalCredentialGetRequest
noDigitalCredentialGetRequest = Nothing
{-# INLINE noDigitalCredentialGetRequest #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDigitalCredentialGetRequest :: GType

-- | Dictionary DigitalCredentialRequestOptions (digital-credentials)
newtype DigitalCredentialRequestOptions = DigitalCredentialRequestOptions { unDigitalCredentialRequestOptions :: JSVal }

instance Eq DigitalCredentialRequestOptions where
  (DigitalCredentialRequestOptions a) == (DigitalCredentialRequestOptions b) = js_eq a b

instance PToJSVal DigitalCredentialRequestOptions where
  pToJSVal = unDigitalCredentialRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DigitalCredentialRequestOptions where
  pFromJSVal = DigitalCredentialRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DigitalCredentialRequestOptions where
  toJSVal = return . unDigitalCredentialRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DigitalCredentialRequestOptions where
  fromJSVal = return . fmap DigitalCredentialRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DigitalCredentialRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DigitalCredentialRequestOptions where
  typeGType _ = gTypeDigitalCredentialRequestOptions
  {-# INLINE typeGType #-}

noDigitalCredentialRequestOptions :: Maybe DigitalCredentialRequestOptions
noDigitalCredentialRequestOptions = Nothing
{-# INLINE noDigitalCredentialRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDigitalCredentialRequestOptions :: GType

-- | Dictionary DisplayMediaStreamOptions (screen-capture)
newtype DisplayMediaStreamOptions = DisplayMediaStreamOptions { unDisplayMediaStreamOptions :: JSVal }

instance Eq DisplayMediaStreamOptions where
  (DisplayMediaStreamOptions a) == (DisplayMediaStreamOptions b) = js_eq a b

instance PToJSVal DisplayMediaStreamOptions where
  pToJSVal = unDisplayMediaStreamOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DisplayMediaStreamOptions where
  pFromJSVal = DisplayMediaStreamOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DisplayMediaStreamOptions where
  toJSVal = return . unDisplayMediaStreamOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DisplayMediaStreamOptions where
  fromJSVal = return . fmap DisplayMediaStreamOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DisplayMediaStreamOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DisplayMediaStreamOptions where
  typeGType _ = gTypeDisplayMediaStreamOptions
  {-# INLINE typeGType #-}

noDisplayMediaStreamOptions :: Maybe DisplayMediaStreamOptions
noDisplayMediaStreamOptions = Nothing
{-# INLINE noDisplayMediaStreamOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDisplayMediaStreamOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Document" (dom).
newtype Document = Document { unDocument :: JSVal }

instance Eq Document where
  (Document a) == (Document b) = js_eq a b

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 = return . fmap Document . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Document
  {-# INLINE fromJSValUnchecked #-}

class (IsNode o, IsARIANotifyMixin o, IsDocumentOrShadowRoot o, IsFontFaceSource o, IsGlobalEventHandlers o, IsNonElementParentNode o, IsParentNode o, IsXPathEvaluatorBase o, IsGObject o) => IsDocument o
toDocument :: IsDocument o => o -> Document
toDocument = Document . coerce

instance IsDocument Document
instance IsARIANotifyMixin Document
instance IsDocumentOrShadowRoot Document
instance IsFontFaceSource Document
instance IsGlobalEventHandlers Document
instance IsNonElementParentNode Document
instance IsParentNode Document
instance IsXPathEvaluatorBase Document
instance IsNode Document
instance IsEventTarget Document

instance IsGObject Document where
  typeGType _ = gTypeDocument
  {-# INLINE typeGType #-}

noDocument :: Maybe Document
noDocument = Nothing
{-# INLINE noDocument #-}

foreign import javascript unsafe "(() => globalThis[\"Document\"])" gTypeDocument :: GType

-- | Functions for this interface are in "GHCJS.DOM.DocumentFragment" (dom).
newtype DocumentFragment = DocumentFragment { unDocumentFragment :: JSVal }

instance Eq DocumentFragment where
  (DocumentFragment a) == (DocumentFragment b) = js_eq a b

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 = return . fmap DocumentFragment . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentFragment
  {-# INLINE fromJSValUnchecked #-}

class (IsNode o, IsNonElementParentNode o, IsParentNode o, IsGObject o) => IsDocumentFragment o
toDocumentFragment :: IsDocumentFragment o => o -> DocumentFragment
toDocumentFragment = DocumentFragment . coerce

instance IsDocumentFragment DocumentFragment
instance IsNonElementParentNode DocumentFragment
instance IsParentNode DocumentFragment
instance IsNode DocumentFragment
instance IsEventTarget DocumentFragment

instance IsGObject DocumentFragment where
  typeGType _ = gTypeDocumentFragment
  {-# INLINE typeGType #-}

noDocumentFragment :: Maybe DocumentFragment
noDocumentFragment = Nothing
{-# INLINE noDocumentFragment #-}

foreign import javascript unsafe "(() => globalThis[\"DocumentFragment\"])" gTypeDocumentFragment :: GType

-- | Functions for this interface are in "GHCJS.DOM.DocumentOrShadowRoot" (dom).
newtype DocumentOrShadowRoot = DocumentOrShadowRoot { unDocumentOrShadowRoot :: JSVal }

instance Eq DocumentOrShadowRoot where
  (DocumentOrShadowRoot a) == (DocumentOrShadowRoot b) = js_eq a b

instance PToJSVal DocumentOrShadowRoot where
  pToJSVal = unDocumentOrShadowRoot
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentOrShadowRoot where
  pFromJSVal = DocumentOrShadowRoot
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentOrShadowRoot where
  toJSVal = return . unDocumentOrShadowRoot
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentOrShadowRoot where
  fromJSVal = return . fmap DocumentOrShadowRoot . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentOrShadowRoot
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsDocumentOrShadowRoot o
toDocumentOrShadowRoot :: IsDocumentOrShadowRoot o => o -> DocumentOrShadowRoot
toDocumentOrShadowRoot = DocumentOrShadowRoot . coerce

instance IsDocumentOrShadowRoot DocumentOrShadowRoot

instance IsGObject DocumentOrShadowRoot where
  typeGType _ = gTypeDocumentOrShadowRoot
  {-# INLINE typeGType #-}

noDocumentOrShadowRoot :: Maybe DocumentOrShadowRoot
noDocumentOrShadowRoot = Nothing
{-# INLINE noDocumentOrShadowRoot #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDocumentOrShadowRoot :: GType

-- | Functions for this interface are in "GHCJS.DOM.DocumentPictureInPicture" (document-picture-in-picture).
newtype DocumentPictureInPicture = DocumentPictureInPicture { unDocumentPictureInPicture :: JSVal }

instance Eq DocumentPictureInPicture where
  (DocumentPictureInPicture a) == (DocumentPictureInPicture b) = js_eq a b

instance PToJSVal DocumentPictureInPicture where
  pToJSVal = unDocumentPictureInPicture
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentPictureInPicture where
  pFromJSVal = DocumentPictureInPicture
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentPictureInPicture where
  toJSVal = return . unDocumentPictureInPicture
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentPictureInPicture where
  fromJSVal = return . fmap DocumentPictureInPicture . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentPictureInPicture
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget DocumentPictureInPicture

instance IsGObject DocumentPictureInPicture where
  typeGType _ = gTypeDocumentPictureInPicture
  {-# INLINE typeGType #-}

noDocumentPictureInPicture :: Maybe DocumentPictureInPicture
noDocumentPictureInPicture = Nothing
{-# INLINE noDocumentPictureInPicture #-}

foreign import javascript unsafe "(() => globalThis[\"DocumentPictureInPicture\"])" gTypeDocumentPictureInPicture :: GType

-- | Functions for this interface are in "GHCJS.DOM.DocumentPictureInPictureEvent" (document-picture-in-picture).
newtype DocumentPictureInPictureEvent = DocumentPictureInPictureEvent { unDocumentPictureInPictureEvent :: JSVal }

instance Eq DocumentPictureInPictureEvent where
  (DocumentPictureInPictureEvent a) == (DocumentPictureInPictureEvent b) = js_eq a b

instance PToJSVal DocumentPictureInPictureEvent where
  pToJSVal = unDocumentPictureInPictureEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentPictureInPictureEvent where
  pFromJSVal = DocumentPictureInPictureEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentPictureInPictureEvent where
  toJSVal = return . unDocumentPictureInPictureEvent
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentPictureInPictureEvent where
  fromJSVal = return . fmap DocumentPictureInPictureEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentPictureInPictureEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent DocumentPictureInPictureEvent

instance IsGObject DocumentPictureInPictureEvent where
  typeGType _ = gTypeDocumentPictureInPictureEvent
  {-# INLINE typeGType #-}

noDocumentPictureInPictureEvent :: Maybe DocumentPictureInPictureEvent
noDocumentPictureInPictureEvent = Nothing
{-# INLINE noDocumentPictureInPictureEvent #-}

foreign import javascript unsafe "(() => globalThis[\"DocumentPictureInPictureEvent\"])" gTypeDocumentPictureInPictureEvent :: GType

-- | Dictionary DocumentPictureInPictureEventInit (document-picture-in-picture)
newtype DocumentPictureInPictureEventInit = DocumentPictureInPictureEventInit { unDocumentPictureInPictureEventInit :: JSVal }

instance Eq DocumentPictureInPictureEventInit where
  (DocumentPictureInPictureEventInit a) == (DocumentPictureInPictureEventInit b) = js_eq a b

instance PToJSVal DocumentPictureInPictureEventInit where
  pToJSVal = unDocumentPictureInPictureEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentPictureInPictureEventInit where
  pFromJSVal = DocumentPictureInPictureEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentPictureInPictureEventInit where
  toJSVal = return . unDocumentPictureInPictureEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentPictureInPictureEventInit where
  fromJSVal = return . fmap DocumentPictureInPictureEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentPictureInPictureEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit DocumentPictureInPictureEventInit

instance IsGObject DocumentPictureInPictureEventInit where
  typeGType _ = gTypeDocumentPictureInPictureEventInit
  {-# INLINE typeGType #-}

noDocumentPictureInPictureEventInit :: Maybe DocumentPictureInPictureEventInit
noDocumentPictureInPictureEventInit = Nothing
{-# INLINE noDocumentPictureInPictureEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDocumentPictureInPictureEventInit :: GType

-- | Dictionary DocumentPictureInPictureOptions (document-picture-in-picture)
newtype DocumentPictureInPictureOptions = DocumentPictureInPictureOptions { unDocumentPictureInPictureOptions :: JSVal }

instance Eq DocumentPictureInPictureOptions where
  (DocumentPictureInPictureOptions a) == (DocumentPictureInPictureOptions b) = js_eq a b

instance PToJSVal DocumentPictureInPictureOptions where
  pToJSVal = unDocumentPictureInPictureOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentPictureInPictureOptions where
  pFromJSVal = DocumentPictureInPictureOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentPictureInPictureOptions where
  toJSVal = return . unDocumentPictureInPictureOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentPictureInPictureOptions where
  fromJSVal = return . fmap DocumentPictureInPictureOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentPictureInPictureOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DocumentPictureInPictureOptions where
  typeGType _ = gTypeDocumentPictureInPictureOptions
  {-# INLINE typeGType #-}

noDocumentPictureInPictureOptions :: Maybe DocumentPictureInPictureOptions
noDocumentPictureInPictureOptions = Nothing
{-# INLINE noDocumentPictureInPictureOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDocumentPictureInPictureOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.DocumentTimeline" (web-animations-1).
newtype DocumentTimeline = DocumentTimeline { unDocumentTimeline :: JSVal }

instance Eq DocumentTimeline where
  (DocumentTimeline a) == (DocumentTimeline b) = js_eq a b

instance PToJSVal DocumentTimeline where
  pToJSVal = unDocumentTimeline
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentTimeline where
  pFromJSVal = DocumentTimeline
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentTimeline where
  toJSVal = return . unDocumentTimeline
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentTimeline where
  fromJSVal = return . fmap DocumentTimeline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentTimeline
  {-# INLINE fromJSValUnchecked #-}

instance IsAnimationTimeline DocumentTimeline

instance IsGObject DocumentTimeline where
  typeGType _ = gTypeDocumentTimeline
  {-# INLINE typeGType #-}

noDocumentTimeline :: Maybe DocumentTimeline
noDocumentTimeline = Nothing
{-# INLINE noDocumentTimeline #-}

foreign import javascript unsafe "(() => globalThis[\"DocumentTimeline\"])" gTypeDocumentTimeline :: GType

-- | Dictionary DocumentTimelineOptions (web-animations-1)
newtype DocumentTimelineOptions = DocumentTimelineOptions { unDocumentTimelineOptions :: JSVal }

instance Eq DocumentTimelineOptions where
  (DocumentTimelineOptions a) == (DocumentTimelineOptions b) = js_eq a b

instance PToJSVal DocumentTimelineOptions where
  pToJSVal = unDocumentTimelineOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DocumentTimelineOptions where
  pFromJSVal = DocumentTimelineOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DocumentTimelineOptions where
  toJSVal = return . unDocumentTimelineOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DocumentTimelineOptions where
  fromJSVal = return . fmap DocumentTimelineOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentTimelineOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject DocumentTimelineOptions where
  typeGType _ = gTypeDocumentTimelineOptions
  {-# INLINE typeGType #-}

noDocumentTimelineOptions :: Maybe DocumentTimelineOptions
noDocumentTimelineOptions = Nothing
{-# INLINE noDocumentTimelineOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDocumentTimelineOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.DocumentType" (dom).
newtype DocumentType = DocumentType { unDocumentType :: JSVal }

instance Eq DocumentType where
  (DocumentType a) == (DocumentType b) = js_eq a b

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 = return . fmap DocumentType . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DocumentType
  {-# INLINE fromJSValUnchecked #-}

instance IsChildNode DocumentType
instance IsNode DocumentType
instance IsEventTarget DocumentType

instance IsGObject DocumentType where
  typeGType _ = gTypeDocumentType
  {-# INLINE typeGType #-}

noDocumentType :: Maybe DocumentType
noDocumentType = Nothing
{-# INLINE noDocumentType #-}

foreign import javascript unsafe "(() => globalThis[\"DocumentType\"])" gTypeDocumentType :: GType

-- | Dictionary DoubleRange (mediacapture-streams)
newtype DoubleRange = DoubleRange { unDoubleRange :: JSVal }

instance Eq DoubleRange where
  (DoubleRange a) == (DoubleRange b) = js_eq a b

instance PToJSVal DoubleRange where
  pToJSVal = unDoubleRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal DoubleRange where
  pFromJSVal = DoubleRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal DoubleRange where
  toJSVal = return . unDoubleRange
  {-# INLINE toJSVal #-}

instance FromJSVal DoubleRange where
  fromJSVal = return . fmap DoubleRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DoubleRange
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsDoubleRange o
toDoubleRange :: IsDoubleRange o => o -> DoubleRange
toDoubleRange = DoubleRange . coerce

instance IsDoubleRange DoubleRange

instance IsGObject DoubleRange where
  typeGType _ = gTypeDoubleRange
  {-# INLINE typeGType #-}

noDoubleRange :: Maybe DoubleRange
noDoubleRange = Nothing
{-# INLINE noDoubleRange #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDoubleRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.DragEvent" (html).
newtype DragEvent = DragEvent { unDragEvent :: JSVal }

instance Eq DragEvent where
  (DragEvent a) == (DragEvent b) = js_eq a b

instance PToJSVal DragEvent where
  pToJSVal = unDragEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal DragEvent where
  pFromJSVal = DragEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal DragEvent where
  toJSVal = return . unDragEvent
  {-# INLINE toJSVal #-}

instance FromJSVal DragEvent where
  fromJSVal = return . fmap DragEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DragEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsMouseEvent DragEvent
instance IsUIEvent DragEvent
instance IsEvent DragEvent

instance IsGObject DragEvent where
  typeGType _ = gTypeDragEvent
  {-# INLINE typeGType #-}

noDragEvent :: Maybe DragEvent
noDragEvent = Nothing
{-# INLINE noDragEvent #-}

foreign import javascript unsafe "(() => globalThis[\"DragEvent\"])" gTypeDragEvent :: GType

-- | Dictionary DragEventInit (html)
newtype DragEventInit = DragEventInit { unDragEventInit :: JSVal }

instance Eq DragEventInit where
  (DragEventInit a) == (DragEventInit b) = js_eq a b

instance PToJSVal DragEventInit where
  pToJSVal = unDragEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal DragEventInit where
  pFromJSVal = DragEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal DragEventInit where
  toJSVal = return . unDragEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal DragEventInit where
  fromJSVal = return . fmap DragEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DragEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsMouseEventInit DragEventInit
instance IsEventModifierInit DragEventInit
instance IsUIEventInit DragEventInit
instance IsEventInit DragEventInit

instance IsGObject DragEventInit where
  typeGType _ = gTypeDragEventInit
  {-# INLINE typeGType #-}

noDragEventInit :: Maybe DragEventInit
noDragEventInit = Nothing
{-# INLINE noDragEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDragEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.DynamicsCompressorNode" (webaudio-1.1).
newtype DynamicsCompressorNode = DynamicsCompressorNode { unDynamicsCompressorNode :: JSVal }

instance Eq DynamicsCompressorNode where
  (DynamicsCompressorNode a) == (DynamicsCompressorNode b) = js_eq a b

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 = return . fmap DynamicsCompressorNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DynamicsCompressorNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode DynamicsCompressorNode
instance IsEventTarget DynamicsCompressorNode

instance IsGObject DynamicsCompressorNode where
  typeGType _ = gTypeDynamicsCompressorNode
  {-# INLINE typeGType #-}

noDynamicsCompressorNode :: Maybe DynamicsCompressorNode
noDynamicsCompressorNode = Nothing
{-# INLINE noDynamicsCompressorNode #-}

foreign import javascript unsafe "(() => globalThis[\"DynamicsCompressorNode\"])" gTypeDynamicsCompressorNode :: GType

-- | Dictionary DynamicsCompressorOptions (webaudio-1.1)
newtype DynamicsCompressorOptions = DynamicsCompressorOptions { unDynamicsCompressorOptions :: JSVal }

instance Eq DynamicsCompressorOptions where
  (DynamicsCompressorOptions a) == (DynamicsCompressorOptions b) = js_eq a b

instance PToJSVal DynamicsCompressorOptions where
  pToJSVal = unDynamicsCompressorOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal DynamicsCompressorOptions where
  pFromJSVal = DynamicsCompressorOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal DynamicsCompressorOptions where
  toJSVal = return . unDynamicsCompressorOptions
  {-# INLINE toJSVal #-}

instance FromJSVal DynamicsCompressorOptions where
  fromJSVal = return . fmap DynamicsCompressorOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . DynamicsCompressorOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions DynamicsCompressorOptions

instance IsGObject DynamicsCompressorOptions where
  typeGType _ = gTypeDynamicsCompressorOptions
  {-# INLINE typeGType #-}

noDynamicsCompressorOptions :: Maybe DynamicsCompressorOptions
noDynamicsCompressorOptions = Nothing
{-# INLINE noDynamicsCompressorOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeDynamicsCompressorOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_blend_minmax" (EXT_blend_minmax).
newtype EXT_blend_minmax = EXT_blend_minmax { unEXT_blend_minmax :: JSVal }

instance Eq EXT_blend_minmax where
  (EXT_blend_minmax a) == (EXT_blend_minmax b) = js_eq a b

instance PToJSVal EXT_blend_minmax where
  pToJSVal = unEXT_blend_minmax
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_blend_minmax where
  pFromJSVal = EXT_blend_minmax
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_blend_minmax where
  toJSVal = return . unEXT_blend_minmax
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_blend_minmax where
  fromJSVal = return . fmap EXT_blend_minmax . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_blend_minmax
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_blend_minmax where
  typeGType _ = gTypeEXT_blend_minmax
  {-# INLINE typeGType #-}

noEXT_blend_minmax :: Maybe EXT_blend_minmax
noEXT_blend_minmax = Nothing
{-# INLINE noEXT_blend_minmax #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_blend_minmax :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_clip_control" (EXT_clip_control).
newtype EXT_clip_control = EXT_clip_control { unEXT_clip_control :: JSVal }

instance Eq EXT_clip_control where
  (EXT_clip_control a) == (EXT_clip_control b) = js_eq a b

instance PToJSVal EXT_clip_control where
  pToJSVal = unEXT_clip_control
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_clip_control where
  pFromJSVal = EXT_clip_control
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_clip_control where
  toJSVal = return . unEXT_clip_control
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_clip_control where
  fromJSVal = return . fmap EXT_clip_control . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_clip_control
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_clip_control where
  typeGType _ = gTypeEXT_clip_control
  {-# INLINE typeGType #-}

noEXT_clip_control :: Maybe EXT_clip_control
noEXT_clip_control = Nothing
{-# INLINE noEXT_clip_control #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_clip_control :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_color_buffer_float" (EXT_color_buffer_float).
newtype EXT_color_buffer_float = EXT_color_buffer_float { unEXT_color_buffer_float :: JSVal }

instance Eq EXT_color_buffer_float where
  (EXT_color_buffer_float a) == (EXT_color_buffer_float b) = js_eq a b

instance PToJSVal EXT_color_buffer_float where
  pToJSVal = unEXT_color_buffer_float
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_color_buffer_float where
  pFromJSVal = EXT_color_buffer_float
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_color_buffer_float where
  toJSVal = return . unEXT_color_buffer_float
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_color_buffer_float where
  fromJSVal = return . fmap EXT_color_buffer_float . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_color_buffer_float
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_color_buffer_float where
  typeGType _ = gTypeEXT_color_buffer_float
  {-# INLINE typeGType #-}

noEXT_color_buffer_float :: Maybe EXT_color_buffer_float
noEXT_color_buffer_float = Nothing
{-# INLINE noEXT_color_buffer_float #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_color_buffer_float :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_color_buffer_half_float" (EXT_color_buffer_half_float).
newtype EXT_color_buffer_half_float = EXT_color_buffer_half_float { unEXT_color_buffer_half_float :: JSVal }

instance Eq EXT_color_buffer_half_float where
  (EXT_color_buffer_half_float a) == (EXT_color_buffer_half_float b) = js_eq a b

instance PToJSVal EXT_color_buffer_half_float where
  pToJSVal = unEXT_color_buffer_half_float
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_color_buffer_half_float where
  pFromJSVal = EXT_color_buffer_half_float
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_color_buffer_half_float where
  toJSVal = return . unEXT_color_buffer_half_float
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_color_buffer_half_float where
  fromJSVal = return . fmap EXT_color_buffer_half_float . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_color_buffer_half_float
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_color_buffer_half_float where
  typeGType _ = gTypeEXT_color_buffer_half_float
  {-# INLINE typeGType #-}

noEXT_color_buffer_half_float :: Maybe EXT_color_buffer_half_float
noEXT_color_buffer_half_float = Nothing
{-# INLINE noEXT_color_buffer_half_float #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_color_buffer_half_float :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_float_blend" (EXT_float_blend).
newtype EXT_float_blend = EXT_float_blend { unEXT_float_blend :: JSVal }

instance Eq EXT_float_blend where
  (EXT_float_blend a) == (EXT_float_blend b) = js_eq a b

instance PToJSVal EXT_float_blend where
  pToJSVal = unEXT_float_blend
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_float_blend where
  pFromJSVal = EXT_float_blend
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_float_blend where
  toJSVal = return . unEXT_float_blend
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_float_blend where
  fromJSVal = return . fmap EXT_float_blend . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_float_blend
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_float_blend where
  typeGType _ = gTypeEXT_float_blend
  {-# INLINE typeGType #-}

noEXT_float_blend :: Maybe EXT_float_blend
noEXT_float_blend = Nothing
{-# INLINE noEXT_float_blend #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_float_blend :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_frag_depth" (EXT_frag_depth).
newtype EXT_frag_depth = EXT_frag_depth { unEXT_frag_depth :: JSVal }

instance Eq EXT_frag_depth where
  (EXT_frag_depth a) == (EXT_frag_depth b) = js_eq a b

instance PToJSVal EXT_frag_depth where
  pToJSVal = unEXT_frag_depth
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_frag_depth where
  pFromJSVal = EXT_frag_depth
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_frag_depth where
  toJSVal = return . unEXT_frag_depth
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_frag_depth where
  fromJSVal = return . fmap EXT_frag_depth . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_frag_depth
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_frag_depth where
  typeGType _ = gTypeEXT_frag_depth
  {-# INLINE typeGType #-}

noEXT_frag_depth :: Maybe EXT_frag_depth
noEXT_frag_depth = Nothing
{-# INLINE noEXT_frag_depth #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_frag_depth :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_polygon_offset_clamp" (EXT_polygon_offset_clamp).
newtype EXT_polygon_offset_clamp = EXT_polygon_offset_clamp { unEXT_polygon_offset_clamp :: JSVal }

instance Eq EXT_polygon_offset_clamp where
  (EXT_polygon_offset_clamp a) == (EXT_polygon_offset_clamp b) = js_eq a b

instance PToJSVal EXT_polygon_offset_clamp where
  pToJSVal = unEXT_polygon_offset_clamp
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_polygon_offset_clamp where
  pFromJSVal = EXT_polygon_offset_clamp
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_polygon_offset_clamp where
  toJSVal = return . unEXT_polygon_offset_clamp
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_polygon_offset_clamp where
  fromJSVal = return . fmap EXT_polygon_offset_clamp . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_polygon_offset_clamp
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_polygon_offset_clamp where
  typeGType _ = gTypeEXT_polygon_offset_clamp
  {-# INLINE typeGType #-}

noEXT_polygon_offset_clamp :: Maybe EXT_polygon_offset_clamp
noEXT_polygon_offset_clamp = Nothing
{-# INLINE noEXT_polygon_offset_clamp #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_polygon_offset_clamp :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_sRGB" (EXT_sRGB).
newtype EXT_sRGB = EXT_sRGB { unEXT_sRGB :: JSVal }

instance Eq EXT_sRGB where
  (EXT_sRGB a) == (EXT_sRGB b) = js_eq a b

instance PToJSVal EXT_sRGB where
  pToJSVal = unEXT_sRGB
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_sRGB where
  pFromJSVal = EXT_sRGB
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_sRGB where
  toJSVal = return . unEXT_sRGB
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_sRGB where
  fromJSVal = return . fmap EXT_sRGB . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_sRGB
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_sRGB where
  typeGType _ = gTypeEXT_sRGB
  {-# INLINE typeGType #-}

noEXT_sRGB :: Maybe EXT_sRGB
noEXT_sRGB = Nothing
{-# INLINE noEXT_sRGB #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_sRGB :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_shader_texture_lod" (EXT_shader_texture_lod).
newtype EXT_shader_texture_lod = EXT_shader_texture_lod { unEXT_shader_texture_lod :: JSVal }

instance Eq EXT_shader_texture_lod where
  (EXT_shader_texture_lod a) == (EXT_shader_texture_lod b) = js_eq a b

instance PToJSVal EXT_shader_texture_lod where
  pToJSVal = unEXT_shader_texture_lod
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_shader_texture_lod where
  pFromJSVal = EXT_shader_texture_lod
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_shader_texture_lod where
  toJSVal = return . unEXT_shader_texture_lod
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_shader_texture_lod where
  fromJSVal = return . fmap EXT_shader_texture_lod . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_shader_texture_lod
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_shader_texture_lod where
  typeGType _ = gTypeEXT_shader_texture_lod
  {-# INLINE typeGType #-}

noEXT_shader_texture_lod :: Maybe EXT_shader_texture_lod
noEXT_shader_texture_lod = Nothing
{-# INLINE noEXT_shader_texture_lod #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_shader_texture_lod :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_texture_compression_bptc" (EXT_texture_compression_bptc).
newtype EXT_texture_compression_bptc = EXT_texture_compression_bptc { unEXT_texture_compression_bptc :: JSVal }

instance Eq EXT_texture_compression_bptc where
  (EXT_texture_compression_bptc a) == (EXT_texture_compression_bptc b) = js_eq a b

instance PToJSVal EXT_texture_compression_bptc where
  pToJSVal = unEXT_texture_compression_bptc
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_texture_compression_bptc where
  pFromJSVal = EXT_texture_compression_bptc
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_texture_compression_bptc where
  toJSVal = return . unEXT_texture_compression_bptc
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_texture_compression_bptc where
  fromJSVal = return . fmap EXT_texture_compression_bptc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_texture_compression_bptc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_texture_compression_bptc where
  typeGType _ = gTypeEXT_texture_compression_bptc
  {-# INLINE typeGType #-}

noEXT_texture_compression_bptc :: Maybe EXT_texture_compression_bptc
noEXT_texture_compression_bptc = Nothing
{-# INLINE noEXT_texture_compression_bptc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_texture_compression_bptc :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_texture_compression_rgtc" (EXT_texture_compression_rgtc).
newtype EXT_texture_compression_rgtc = EXT_texture_compression_rgtc { unEXT_texture_compression_rgtc :: JSVal }

instance Eq EXT_texture_compression_rgtc where
  (EXT_texture_compression_rgtc a) == (EXT_texture_compression_rgtc b) = js_eq a b

instance PToJSVal EXT_texture_compression_rgtc where
  pToJSVal = unEXT_texture_compression_rgtc
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_texture_compression_rgtc where
  pFromJSVal = EXT_texture_compression_rgtc
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_texture_compression_rgtc where
  toJSVal = return . unEXT_texture_compression_rgtc
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_texture_compression_rgtc where
  fromJSVal = return . fmap EXT_texture_compression_rgtc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_texture_compression_rgtc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_texture_compression_rgtc where
  typeGType _ = gTypeEXT_texture_compression_rgtc
  {-# INLINE typeGType #-}

noEXT_texture_compression_rgtc :: Maybe EXT_texture_compression_rgtc
noEXT_texture_compression_rgtc = Nothing
{-# INLINE noEXT_texture_compression_rgtc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_texture_compression_rgtc :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_texture_filter_anisotropic" (EXT_texture_filter_anisotropic).
newtype EXT_texture_filter_anisotropic = EXT_texture_filter_anisotropic { unEXT_texture_filter_anisotropic :: JSVal }

instance Eq EXT_texture_filter_anisotropic where
  (EXT_texture_filter_anisotropic a) == (EXT_texture_filter_anisotropic b) = js_eq a b

instance PToJSVal EXT_texture_filter_anisotropic where
  pToJSVal = unEXT_texture_filter_anisotropic
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_texture_filter_anisotropic where
  pFromJSVal = EXT_texture_filter_anisotropic
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_texture_filter_anisotropic where
  toJSVal = return . unEXT_texture_filter_anisotropic
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_texture_filter_anisotropic where
  fromJSVal = return . fmap EXT_texture_filter_anisotropic . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_texture_filter_anisotropic
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_texture_filter_anisotropic where
  typeGType _ = gTypeEXT_texture_filter_anisotropic
  {-# INLINE typeGType #-}

noEXT_texture_filter_anisotropic :: Maybe EXT_texture_filter_anisotropic
noEXT_texture_filter_anisotropic = Nothing
{-# INLINE noEXT_texture_filter_anisotropic #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_texture_filter_anisotropic :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_texture_mirror_clamp_to_edge" (EXT_texture_mirror_clamp_to_edge).
newtype EXT_texture_mirror_clamp_to_edge = EXT_texture_mirror_clamp_to_edge { unEXT_texture_mirror_clamp_to_edge :: JSVal }

instance Eq EXT_texture_mirror_clamp_to_edge where
  (EXT_texture_mirror_clamp_to_edge a) == (EXT_texture_mirror_clamp_to_edge b) = js_eq a b

instance PToJSVal EXT_texture_mirror_clamp_to_edge where
  pToJSVal = unEXT_texture_mirror_clamp_to_edge
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_texture_mirror_clamp_to_edge where
  pFromJSVal = EXT_texture_mirror_clamp_to_edge
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_texture_mirror_clamp_to_edge where
  toJSVal = return . unEXT_texture_mirror_clamp_to_edge
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_texture_mirror_clamp_to_edge where
  fromJSVal = return . fmap EXT_texture_mirror_clamp_to_edge . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_texture_mirror_clamp_to_edge
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_texture_mirror_clamp_to_edge where
  typeGType _ = gTypeEXT_texture_mirror_clamp_to_edge
  {-# INLINE typeGType #-}

noEXT_texture_mirror_clamp_to_edge :: Maybe EXT_texture_mirror_clamp_to_edge
noEXT_texture_mirror_clamp_to_edge = Nothing
{-# INLINE noEXT_texture_mirror_clamp_to_edge #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_texture_mirror_clamp_to_edge :: GType

-- | Functions for this interface are in "GHCJS.DOM.EXT_texture_norm16" (EXT_texture_norm16).
newtype EXT_texture_norm16 = EXT_texture_norm16 { unEXT_texture_norm16 :: JSVal }

instance Eq EXT_texture_norm16 where
  (EXT_texture_norm16 a) == (EXT_texture_norm16 b) = js_eq a b

instance PToJSVal EXT_texture_norm16 where
  pToJSVal = unEXT_texture_norm16
  {-# INLINE pToJSVal #-}

instance PFromJSVal EXT_texture_norm16 where
  pFromJSVal = EXT_texture_norm16
  {-# INLINE pFromJSVal #-}

instance ToJSVal EXT_texture_norm16 where
  toJSVal = return . unEXT_texture_norm16
  {-# INLINE toJSVal #-}

instance FromJSVal EXT_texture_norm16 where
  fromJSVal = return . fmap EXT_texture_norm16 . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EXT_texture_norm16
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EXT_texture_norm16 where
  typeGType _ = gTypeEXT_texture_norm16
  {-# INLINE typeGType #-}

noEXT_texture_norm16 :: Maybe EXT_texture_norm16
noEXT_texture_norm16 = Nothing
{-# INLINE noEXT_texture_norm16 #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEXT_texture_norm16 :: GType

-- | Dictionary EffectTiming (web-animations-1)
newtype EffectTiming = EffectTiming { unEffectTiming :: JSVal }

instance Eq EffectTiming where
  (EffectTiming a) == (EffectTiming b) = js_eq a b

instance PToJSVal EffectTiming where
  pToJSVal = unEffectTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal EffectTiming where
  pFromJSVal = EffectTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal EffectTiming where
  toJSVal = return . unEffectTiming
  {-# INLINE toJSVal #-}

instance FromJSVal EffectTiming where
  fromJSVal = return . fmap EffectTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EffectTiming
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsEffectTiming o
toEffectTiming :: IsEffectTiming o => o -> EffectTiming
toEffectTiming = EffectTiming . coerce

instance IsEffectTiming EffectTiming

instance IsGObject EffectTiming where
  typeGType _ = gTypeEffectTiming
  {-# INLINE typeGType #-}

noEffectTiming :: Maybe EffectTiming
noEffectTiming = Nothing
{-# INLINE noEffectTiming #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEffectTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.Element" (dom).
newtype Element = Element { unElement :: JSVal }

instance Eq Element where
  (Element a) == (Element b) = js_eq a b

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 = return . fmap Element . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Element
  {-# INLINE fromJSValUnchecked #-}

class (IsNode o, IsARIAMixin o, IsARIANotifyMixin o, IsAnimatable o, IsChildNode o, IsNonDocumentTypeChildNode o, IsParentNode o, IsSlottable o, IsGObject o) => IsElement o
toElement :: IsElement o => o -> Element
toElement = Element . coerce

instance IsElement Element
instance IsARIAMixin Element
instance IsARIANotifyMixin Element
instance IsAnimatable Element
instance IsChildNode Element
instance IsNonDocumentTypeChildNode Element
instance IsParentNode Element
instance IsSlottable Element
instance IsNode Element
instance IsEventTarget Element

instance IsGObject Element where
  typeGType _ = gTypeElement
  {-# INLINE typeGType #-}

noElement :: Maybe Element
noElement = Nothing
{-# INLINE noElement #-}

foreign import javascript unsafe "(() => globalThis[\"Element\"])" gTypeElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.ElementCSSInlineStyle" (cssom-1).
newtype ElementCSSInlineStyle = ElementCSSInlineStyle { unElementCSSInlineStyle :: JSVal }

instance Eq ElementCSSInlineStyle where
  (ElementCSSInlineStyle a) == (ElementCSSInlineStyle b) = js_eq a b

instance PToJSVal ElementCSSInlineStyle where
  pToJSVal = unElementCSSInlineStyle
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementCSSInlineStyle where
  pFromJSVal = ElementCSSInlineStyle
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementCSSInlineStyle where
  toJSVal = return . unElementCSSInlineStyle
  {-# INLINE toJSVal #-}

instance FromJSVal ElementCSSInlineStyle where
  fromJSVal = return . fmap ElementCSSInlineStyle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementCSSInlineStyle
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsElementCSSInlineStyle o
toElementCSSInlineStyle :: IsElementCSSInlineStyle o => o -> ElementCSSInlineStyle
toElementCSSInlineStyle = ElementCSSInlineStyle . coerce

instance IsElementCSSInlineStyle ElementCSSInlineStyle

instance IsGObject ElementCSSInlineStyle where
  typeGType _ = gTypeElementCSSInlineStyle
  {-# INLINE typeGType #-}

noElementCSSInlineStyle :: Maybe ElementCSSInlineStyle
noElementCSSInlineStyle = Nothing
{-# INLINE noElementCSSInlineStyle #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeElementCSSInlineStyle :: GType

-- | Functions for this interface are in "GHCJS.DOM.ElementContentEditable" (html).
newtype ElementContentEditable = ElementContentEditable { unElementContentEditable :: JSVal }

instance Eq ElementContentEditable where
  (ElementContentEditable a) == (ElementContentEditable b) = js_eq a b

instance PToJSVal ElementContentEditable where
  pToJSVal = unElementContentEditable
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementContentEditable where
  pFromJSVal = ElementContentEditable
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementContentEditable where
  toJSVal = return . unElementContentEditable
  {-# INLINE toJSVal #-}

instance FromJSVal ElementContentEditable where
  fromJSVal = return . fmap ElementContentEditable . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementContentEditable
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsElementContentEditable o
toElementContentEditable :: IsElementContentEditable o => o -> ElementContentEditable
toElementContentEditable = ElementContentEditable . coerce

instance IsElementContentEditable ElementContentEditable

instance IsGObject ElementContentEditable where
  typeGType _ = gTypeElementContentEditable
  {-# INLINE typeGType #-}

noElementContentEditable :: Maybe ElementContentEditable
noElementContentEditable = Nothing
{-# INLINE noElementContentEditable #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeElementContentEditable :: GType

-- | Dictionary ElementCreationOptions (dom)
newtype ElementCreationOptions = ElementCreationOptions { unElementCreationOptions :: JSVal }

instance Eq ElementCreationOptions where
  (ElementCreationOptions a) == (ElementCreationOptions b) = js_eq a b

instance PToJSVal ElementCreationOptions where
  pToJSVal = unElementCreationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementCreationOptions where
  pFromJSVal = ElementCreationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementCreationOptions where
  toJSVal = return . unElementCreationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ElementCreationOptions where
  fromJSVal = return . fmap ElementCreationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementCreationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ElementCreationOptions where
  typeGType _ = gTypeElementCreationOptions
  {-# INLINE typeGType #-}

noElementCreationOptions :: Maybe ElementCreationOptions
noElementCreationOptions = Nothing
{-# INLINE noElementCreationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeElementCreationOptions :: GType

-- | Dictionary ElementDefinitionOptions (html)
newtype ElementDefinitionOptions = ElementDefinitionOptions { unElementDefinitionOptions :: JSVal }

instance Eq ElementDefinitionOptions where
  (ElementDefinitionOptions a) == (ElementDefinitionOptions b) = js_eq a b

instance PToJSVal ElementDefinitionOptions where
  pToJSVal = unElementDefinitionOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementDefinitionOptions where
  pFromJSVal = ElementDefinitionOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementDefinitionOptions where
  toJSVal = return . unElementDefinitionOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ElementDefinitionOptions where
  fromJSVal = return . fmap ElementDefinitionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementDefinitionOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ElementDefinitionOptions where
  typeGType _ = gTypeElementDefinitionOptions
  {-# INLINE typeGType #-}

noElementDefinitionOptions :: Maybe ElementDefinitionOptions
noElementDefinitionOptions = Nothing
{-# INLINE noElementDefinitionOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeElementDefinitionOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ElementInternals" (html).
newtype ElementInternals = ElementInternals { unElementInternals :: JSVal }

instance Eq ElementInternals where
  (ElementInternals a) == (ElementInternals b) = js_eq a b

instance PToJSVal ElementInternals where
  pToJSVal = unElementInternals
  {-# INLINE pToJSVal #-}

instance PFromJSVal ElementInternals where
  pFromJSVal = ElementInternals
  {-# INLINE pFromJSVal #-}

instance ToJSVal ElementInternals where
  toJSVal = return . unElementInternals
  {-# INLINE toJSVal #-}

instance FromJSVal ElementInternals where
  fromJSVal = return . fmap ElementInternals . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ElementInternals
  {-# INLINE fromJSValUnchecked #-}

instance IsARIAMixin ElementInternals

instance IsGObject ElementInternals where
  typeGType _ = gTypeElementInternals
  {-# INLINE typeGType #-}

noElementInternals :: Maybe ElementInternals
noElementInternals = Nothing
{-# INLINE noElementInternals #-}

foreign import javascript unsafe "(() => globalThis[\"ElementInternals\"])" gTypeElementInternals :: GType

-- | Functions for this interface are in "GHCJS.DOM.EncodedAudioChunk" (webcodecs).
newtype EncodedAudioChunk = EncodedAudioChunk { unEncodedAudioChunk :: JSVal }

instance Eq EncodedAudioChunk where
  (EncodedAudioChunk a) == (EncodedAudioChunk b) = js_eq a b

instance PToJSVal EncodedAudioChunk where
  pToJSVal = unEncodedAudioChunk
  {-# INLINE pToJSVal #-}

instance PFromJSVal EncodedAudioChunk where
  pFromJSVal = EncodedAudioChunk
  {-# INLINE pFromJSVal #-}

instance ToJSVal EncodedAudioChunk where
  toJSVal = return . unEncodedAudioChunk
  {-# INLINE toJSVal #-}

instance FromJSVal EncodedAudioChunk where
  fromJSVal = return . fmap EncodedAudioChunk . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EncodedAudioChunk
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EncodedAudioChunk where
  typeGType _ = gTypeEncodedAudioChunk
  {-# INLINE typeGType #-}

noEncodedAudioChunk :: Maybe EncodedAudioChunk
noEncodedAudioChunk = Nothing
{-# INLINE noEncodedAudioChunk #-}

foreign import javascript unsafe "(() => globalThis[\"EncodedAudioChunk\"])" gTypeEncodedAudioChunk :: GType

-- | Dictionary EncodedAudioChunkInit (webcodecs)
newtype EncodedAudioChunkInit = EncodedAudioChunkInit { unEncodedAudioChunkInit :: JSVal }

instance Eq EncodedAudioChunkInit where
  (EncodedAudioChunkInit a) == (EncodedAudioChunkInit b) = js_eq a b

instance PToJSVal EncodedAudioChunkInit where
  pToJSVal = unEncodedAudioChunkInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal EncodedAudioChunkInit where
  pFromJSVal = EncodedAudioChunkInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal EncodedAudioChunkInit where
  toJSVal = return . unEncodedAudioChunkInit
  {-# INLINE toJSVal #-}

instance FromJSVal EncodedAudioChunkInit where
  fromJSVal = return . fmap EncodedAudioChunkInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EncodedAudioChunkInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EncodedAudioChunkInit where
  typeGType _ = gTypeEncodedAudioChunkInit
  {-# INLINE typeGType #-}

noEncodedAudioChunkInit :: Maybe EncodedAudioChunkInit
noEncodedAudioChunkInit = Nothing
{-# INLINE noEncodedAudioChunkInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEncodedAudioChunkInit :: GType

-- | Dictionary EncodedAudioChunkMetadata (webcodecs)
newtype EncodedAudioChunkMetadata = EncodedAudioChunkMetadata { unEncodedAudioChunkMetadata :: JSVal }

instance Eq EncodedAudioChunkMetadata where
  (EncodedAudioChunkMetadata a) == (EncodedAudioChunkMetadata b) = js_eq a b

instance PToJSVal EncodedAudioChunkMetadata where
  pToJSVal = unEncodedAudioChunkMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal EncodedAudioChunkMetadata where
  pFromJSVal = EncodedAudioChunkMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal EncodedAudioChunkMetadata where
  toJSVal = return . unEncodedAudioChunkMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal EncodedAudioChunkMetadata where
  fromJSVal = return . fmap EncodedAudioChunkMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EncodedAudioChunkMetadata
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EncodedAudioChunkMetadata where
  typeGType _ = gTypeEncodedAudioChunkMetadata
  {-# INLINE typeGType #-}

noEncodedAudioChunkMetadata :: Maybe EncodedAudioChunkMetadata
noEncodedAudioChunkMetadata = Nothing
{-# INLINE noEncodedAudioChunkMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEncodedAudioChunkMetadata :: GType

-- | Functions for this interface are in "GHCJS.DOM.EncodedVideoChunk" (webcodecs).
newtype EncodedVideoChunk = EncodedVideoChunk { unEncodedVideoChunk :: JSVal }

instance Eq EncodedVideoChunk where
  (EncodedVideoChunk a) == (EncodedVideoChunk b) = js_eq a b

instance PToJSVal EncodedVideoChunk where
  pToJSVal = unEncodedVideoChunk
  {-# INLINE pToJSVal #-}

instance PFromJSVal EncodedVideoChunk where
  pFromJSVal = EncodedVideoChunk
  {-# INLINE pFromJSVal #-}

instance ToJSVal EncodedVideoChunk where
  toJSVal = return . unEncodedVideoChunk
  {-# INLINE toJSVal #-}

instance FromJSVal EncodedVideoChunk where
  fromJSVal = return . fmap EncodedVideoChunk . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EncodedVideoChunk
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EncodedVideoChunk where
  typeGType _ = gTypeEncodedVideoChunk
  {-# INLINE typeGType #-}

noEncodedVideoChunk :: Maybe EncodedVideoChunk
noEncodedVideoChunk = Nothing
{-# INLINE noEncodedVideoChunk #-}

foreign import javascript unsafe "(() => globalThis[\"EncodedVideoChunk\"])" gTypeEncodedVideoChunk :: GType

-- | Dictionary EncodedVideoChunkInit (webcodecs)
newtype EncodedVideoChunkInit = EncodedVideoChunkInit { unEncodedVideoChunkInit :: JSVal }

instance Eq EncodedVideoChunkInit where
  (EncodedVideoChunkInit a) == (EncodedVideoChunkInit b) = js_eq a b

instance PToJSVal EncodedVideoChunkInit where
  pToJSVal = unEncodedVideoChunkInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal EncodedVideoChunkInit where
  pFromJSVal = EncodedVideoChunkInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal EncodedVideoChunkInit where
  toJSVal = return . unEncodedVideoChunkInit
  {-# INLINE toJSVal #-}

instance FromJSVal EncodedVideoChunkInit where
  fromJSVal = return . fmap EncodedVideoChunkInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EncodedVideoChunkInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EncodedVideoChunkInit where
  typeGType _ = gTypeEncodedVideoChunkInit
  {-# INLINE typeGType #-}

noEncodedVideoChunkInit :: Maybe EncodedVideoChunkInit
noEncodedVideoChunkInit = Nothing
{-# INLINE noEncodedVideoChunkInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEncodedVideoChunkInit :: GType

-- | Dictionary EncodedVideoChunkMetadata (webcodecs)
newtype EncodedVideoChunkMetadata = EncodedVideoChunkMetadata { unEncodedVideoChunkMetadata :: JSVal }

instance Eq EncodedVideoChunkMetadata where
  (EncodedVideoChunkMetadata a) == (EncodedVideoChunkMetadata b) = js_eq a b

instance PToJSVal EncodedVideoChunkMetadata where
  pToJSVal = unEncodedVideoChunkMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal EncodedVideoChunkMetadata where
  pFromJSVal = EncodedVideoChunkMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal EncodedVideoChunkMetadata where
  toJSVal = return . unEncodedVideoChunkMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal EncodedVideoChunkMetadata where
  fromJSVal = return . fmap EncodedVideoChunkMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EncodedVideoChunkMetadata
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EncodedVideoChunkMetadata where
  typeGType _ = gTypeEncodedVideoChunkMetadata
  {-# INLINE typeGType #-}

noEncodedVideoChunkMetadata :: Maybe EncodedVideoChunkMetadata
noEncodedVideoChunkMetadata = Nothing
{-# INLINE noEncodedVideoChunkMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEncodedVideoChunkMetadata :: GType

-- | Functions for this interface are in "GHCJS.DOM.ErrorEvent" (html).
newtype ErrorEvent = ErrorEvent { unErrorEvent :: JSVal }

instance Eq ErrorEvent where
  (ErrorEvent a) == (ErrorEvent b) = js_eq a b

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 = return . fmap ErrorEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ErrorEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent ErrorEvent

instance IsGObject ErrorEvent where
  typeGType _ = gTypeErrorEvent
  {-# INLINE typeGType #-}

noErrorEvent :: Maybe ErrorEvent
noErrorEvent = Nothing
{-# INLINE noErrorEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ErrorEvent\"])" gTypeErrorEvent :: GType

-- | Dictionary ErrorEventInit (html)
newtype ErrorEventInit = ErrorEventInit { unErrorEventInit :: JSVal }

instance Eq ErrorEventInit where
  (ErrorEventInit a) == (ErrorEventInit b) = js_eq a b

instance PToJSVal ErrorEventInit where
  pToJSVal = unErrorEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ErrorEventInit where
  pFromJSVal = ErrorEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ErrorEventInit where
  toJSVal = return . unErrorEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ErrorEventInit where
  fromJSVal = return . fmap ErrorEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ErrorEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit ErrorEventInit

instance IsGObject ErrorEventInit where
  typeGType _ = gTypeErrorEventInit
  {-# INLINE typeGType #-}

noErrorEventInit :: Maybe ErrorEventInit
noErrorEventInit = Nothing
{-# INLINE noErrorEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeErrorEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.Event" (dom).
newtype Event = Event { unEvent :: JSVal }

instance Eq Event where
  (Event a) == (Event b) = js_eq a b

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 = return . fmap Event . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Event
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsEvent o
toEvent :: IsEvent o => o -> Event
toEvent = Event . coerce

instance IsEvent Event

instance IsGObject Event where
  typeGType _ = gTypeEvent
  {-# INLINE typeGType #-}

noEvent :: Maybe Event
noEvent = Nothing
{-# INLINE noEvent #-}

foreign import javascript unsafe "(() => globalThis[\"Event\"])" gTypeEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.EventCounts" (event-timing).
newtype EventCounts = EventCounts { unEventCounts :: JSVal }

instance Eq EventCounts where
  (EventCounts a) == (EventCounts b) = js_eq a b

instance PToJSVal EventCounts where
  pToJSVal = unEventCounts
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventCounts where
  pFromJSVal = EventCounts
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventCounts where
  toJSVal = return . unEventCounts
  {-# INLINE toJSVal #-}

instance FromJSVal EventCounts where
  fromJSVal = return . fmap EventCounts . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventCounts
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EventCounts where
  typeGType _ = gTypeEventCounts
  {-# INLINE typeGType #-}

noEventCounts :: Maybe EventCounts
noEventCounts = Nothing
{-# INLINE noEventCounts #-}

foreign import javascript unsafe "(() => globalThis[\"EventCounts\"])" gTypeEventCounts :: GType

-- | Dictionary EventInit (dom)
newtype EventInit = EventInit { unEventInit :: JSVal }

instance Eq EventInit where
  (EventInit a) == (EventInit b) = js_eq a b

instance PToJSVal EventInit where
  pToJSVal = unEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventInit where
  pFromJSVal = EventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventInit where
  toJSVal = return . unEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal EventInit where
  fromJSVal = return . fmap EventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventInit
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsEventInit o
toEventInit :: IsEventInit o => o -> EventInit
toEventInit = EventInit . coerce

instance IsEventInit EventInit

instance IsGObject EventInit where
  typeGType _ = gTypeEventInit
  {-# INLINE typeGType #-}

noEventInit :: Maybe EventInit
noEventInit = Nothing
{-# INLINE noEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEventInit :: GType

-- | Dictionary EventListener (dom)
newtype EventListener = EventListener { unEventListener :: JSVal }

instance Eq EventListener where
  (EventListener a) == (EventListener b) = js_eq a b

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 = return . fmap EventListener . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventListener
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EventListener where
  typeGType _ = gTypeEventListener
  {-# INLINE typeGType #-}

noEventListener :: Maybe EventListener
noEventListener = Nothing
{-# INLINE noEventListener #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEventListener :: GType

-- | Dictionary EventListenerOptions (dom)
newtype EventListenerOptions = EventListenerOptions { unEventListenerOptions :: JSVal }

instance Eq EventListenerOptions where
  (EventListenerOptions a) == (EventListenerOptions b) = js_eq a b

instance PToJSVal EventListenerOptions where
  pToJSVal = unEventListenerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventListenerOptions where
  pFromJSVal = EventListenerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventListenerOptions where
  toJSVal = return . unEventListenerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal EventListenerOptions where
  fromJSVal = return . fmap EventListenerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventListenerOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsEventListenerOptions o
toEventListenerOptions :: IsEventListenerOptions o => o -> EventListenerOptions
toEventListenerOptions = EventListenerOptions . coerce

instance IsEventListenerOptions EventListenerOptions

instance IsGObject EventListenerOptions where
  typeGType _ = gTypeEventListenerOptions
  {-# INLINE typeGType #-}

noEventListenerOptions :: Maybe EventListenerOptions
noEventListenerOptions = Nothing
{-# INLINE noEventListenerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEventListenerOptions :: GType

-- | Dictionary EventModifierInit (uievents)
newtype EventModifierInit = EventModifierInit { unEventModifierInit :: JSVal }

instance Eq EventModifierInit where
  (EventModifierInit a) == (EventModifierInit b) = js_eq a b

instance PToJSVal EventModifierInit where
  pToJSVal = unEventModifierInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventModifierInit where
  pFromJSVal = EventModifierInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventModifierInit where
  toJSVal = return . unEventModifierInit
  {-# INLINE toJSVal #-}

instance FromJSVal EventModifierInit where
  fromJSVal = return . fmap EventModifierInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventModifierInit
  {-# INLINE fromJSValUnchecked #-}

class (IsUIEventInit o, IsGObject o) => IsEventModifierInit o
toEventModifierInit :: IsEventModifierInit o => o -> EventModifierInit
toEventModifierInit = EventModifierInit . coerce

instance IsEventModifierInit EventModifierInit
instance IsUIEventInit EventModifierInit
instance IsEventInit EventModifierInit

instance IsGObject EventModifierInit where
  typeGType _ = gTypeEventModifierInit
  {-# INLINE typeGType #-}

noEventModifierInit :: Maybe EventModifierInit
noEventModifierInit = Nothing
{-# INLINE noEventModifierInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEventModifierInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.EventSource" (html).
newtype EventSource = EventSource { unEventSource :: JSVal }

instance Eq EventSource where
  (EventSource a) == (EventSource b) = js_eq a b

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 = return . fmap EventSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventSource
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget EventSource

instance IsGObject EventSource where
  typeGType _ = gTypeEventSource
  {-# INLINE typeGType #-}

noEventSource :: Maybe EventSource
noEventSource = Nothing
{-# INLINE noEventSource #-}

foreign import javascript unsafe "(() => globalThis[\"EventSource\"])" gTypeEventSource :: GType

-- | Dictionary EventSourceInit (html)
newtype EventSourceInit = EventSourceInit { unEventSourceInit :: JSVal }

instance Eq EventSourceInit where
  (EventSourceInit a) == (EventSourceInit b) = js_eq a b

instance PToJSVal EventSourceInit where
  pToJSVal = unEventSourceInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal EventSourceInit where
  pFromJSVal = EventSourceInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal EventSourceInit where
  toJSVal = return . unEventSourceInit
  {-# INLINE toJSVal #-}

instance FromJSVal EventSourceInit where
  fromJSVal = return . fmap EventSourceInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventSourceInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject EventSourceInit where
  typeGType _ = gTypeEventSourceInit
  {-# INLINE typeGType #-}

noEventSourceInit :: Maybe EventSourceInit
noEventSourceInit = Nothing
{-# INLINE noEventSourceInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeEventSourceInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.EventTarget" (dom).
newtype EventTarget = EventTarget { unEventTarget :: JSVal }

instance Eq EventTarget where
  (EventTarget a) == (EventTarget b) = js_eq a b

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 = return . fmap EventTarget . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . EventTarget
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsEventTarget o
toEventTarget :: IsEventTarget o => o -> EventTarget
toEventTarget = EventTarget . coerce

instance IsEventTarget EventTarget

instance IsGObject EventTarget where
  typeGType _ = gTypeEventTarget
  {-# INLINE typeGType #-}

noEventTarget :: Maybe EventTarget
noEventTarget = Nothing
{-# INLINE noEventTarget #-}

foreign import javascript unsafe "(() => globalThis[\"EventTarget\"])" gTypeEventTarget :: GType

-- | Functions for this interface are in "GHCJS.DOM.ExtendableCookieChangeEvent" (cookiestore).
newtype ExtendableCookieChangeEvent = ExtendableCookieChangeEvent { unExtendableCookieChangeEvent :: JSVal }

instance Eq ExtendableCookieChangeEvent where
  (ExtendableCookieChangeEvent a) == (ExtendableCookieChangeEvent b) = js_eq a b

instance PToJSVal ExtendableCookieChangeEvent where
  pToJSVal = unExtendableCookieChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ExtendableCookieChangeEvent where
  pFromJSVal = ExtendableCookieChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ExtendableCookieChangeEvent where
  toJSVal = return . unExtendableCookieChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ExtendableCookieChangeEvent where
  fromJSVal = return . fmap ExtendableCookieChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ExtendableCookieChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent ExtendableCookieChangeEvent
instance IsEvent ExtendableCookieChangeEvent

instance IsGObject ExtendableCookieChangeEvent where
  typeGType _ = gTypeExtendableCookieChangeEvent
  {-# INLINE typeGType #-}

noExtendableCookieChangeEvent :: Maybe ExtendableCookieChangeEvent
noExtendableCookieChangeEvent = Nothing
{-# INLINE noExtendableCookieChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ExtendableCookieChangeEvent\"])" gTypeExtendableCookieChangeEvent :: GType

-- | Dictionary ExtendableCookieChangeEventInit (cookiestore)
newtype ExtendableCookieChangeEventInit = ExtendableCookieChangeEventInit { unExtendableCookieChangeEventInit :: JSVal }

instance Eq ExtendableCookieChangeEventInit where
  (ExtendableCookieChangeEventInit a) == (ExtendableCookieChangeEventInit b) = js_eq a b

instance PToJSVal ExtendableCookieChangeEventInit where
  pToJSVal = unExtendableCookieChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ExtendableCookieChangeEventInit where
  pFromJSVal = ExtendableCookieChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ExtendableCookieChangeEventInit where
  toJSVal = return . unExtendableCookieChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ExtendableCookieChangeEventInit where
  fromJSVal = return . fmap ExtendableCookieChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ExtendableCookieChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEventInit ExtendableCookieChangeEventInit
instance IsEventInit ExtendableCookieChangeEventInit

instance IsGObject ExtendableCookieChangeEventInit where
  typeGType _ = gTypeExtendableCookieChangeEventInit
  {-# INLINE typeGType #-}

noExtendableCookieChangeEventInit :: Maybe ExtendableCookieChangeEventInit
noExtendableCookieChangeEventInit = Nothing
{-# INLINE noExtendableCookieChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeExtendableCookieChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.ExtendableEvent" (service-workers).
newtype ExtendableEvent = ExtendableEvent { unExtendableEvent :: JSVal }

instance Eq ExtendableEvent where
  (ExtendableEvent a) == (ExtendableEvent b) = js_eq a b

instance PToJSVal ExtendableEvent where
  pToJSVal = unExtendableEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ExtendableEvent where
  pFromJSVal = ExtendableEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ExtendableEvent where
  toJSVal = return . unExtendableEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ExtendableEvent where
  fromJSVal = return . fmap ExtendableEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ExtendableEvent
  {-# INLINE fromJSValUnchecked #-}

class (IsEvent o, IsGObject o) => IsExtendableEvent o
toExtendableEvent :: IsExtendableEvent o => o -> ExtendableEvent
toExtendableEvent = ExtendableEvent . coerce

instance IsExtendableEvent ExtendableEvent
instance IsEvent ExtendableEvent

instance IsGObject ExtendableEvent where
  typeGType _ = gTypeExtendableEvent
  {-# INLINE typeGType #-}

noExtendableEvent :: Maybe ExtendableEvent
noExtendableEvent = Nothing
{-# INLINE noExtendableEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ExtendableEvent\"])" gTypeExtendableEvent :: GType

-- | Dictionary ExtendableEventInit (service-workers)
newtype ExtendableEventInit = ExtendableEventInit { unExtendableEventInit :: JSVal }

instance Eq ExtendableEventInit where
  (ExtendableEventInit a) == (ExtendableEventInit b) = js_eq a b

instance PToJSVal ExtendableEventInit where
  pToJSVal = unExtendableEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ExtendableEventInit where
  pFromJSVal = ExtendableEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ExtendableEventInit where
  toJSVal = return . unExtendableEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ExtendableEventInit where
  fromJSVal = return . fmap ExtendableEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ExtendableEventInit
  {-# INLINE fromJSValUnchecked #-}

class (IsEventInit o, IsGObject o) => IsExtendableEventInit o
toExtendableEventInit :: IsExtendableEventInit o => o -> ExtendableEventInit
toExtendableEventInit = ExtendableEventInit . coerce

instance IsExtendableEventInit ExtendableEventInit
instance IsEventInit ExtendableEventInit

instance IsGObject ExtendableEventInit where
  typeGType _ = gTypeExtendableEventInit
  {-# INLINE typeGType #-}

noExtendableEventInit :: Maybe ExtendableEventInit
noExtendableEventInit = Nothing
{-# INLINE noExtendableEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeExtendableEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.ExtendableMessageEvent" (service-workers).
newtype ExtendableMessageEvent = ExtendableMessageEvent { unExtendableMessageEvent :: JSVal }

instance Eq ExtendableMessageEvent where
  (ExtendableMessageEvent a) == (ExtendableMessageEvent b) = js_eq a b

instance PToJSVal ExtendableMessageEvent where
  pToJSVal = unExtendableMessageEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ExtendableMessageEvent where
  pFromJSVal = ExtendableMessageEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ExtendableMessageEvent where
  toJSVal = return . unExtendableMessageEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ExtendableMessageEvent where
  fromJSVal = return . fmap ExtendableMessageEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ExtendableMessageEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent ExtendableMessageEvent
instance IsEvent ExtendableMessageEvent

instance IsGObject ExtendableMessageEvent where
  typeGType _ = gTypeExtendableMessageEvent
  {-# INLINE typeGType #-}

noExtendableMessageEvent :: Maybe ExtendableMessageEvent
noExtendableMessageEvent = Nothing
{-# INLINE noExtendableMessageEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ExtendableMessageEvent\"])" gTypeExtendableMessageEvent :: GType

-- | Dictionary ExtendableMessageEventInit (service-workers)
newtype ExtendableMessageEventInit = ExtendableMessageEventInit { unExtendableMessageEventInit :: JSVal }

instance Eq ExtendableMessageEventInit where
  (ExtendableMessageEventInit a) == (ExtendableMessageEventInit b) = js_eq a b

instance PToJSVal ExtendableMessageEventInit where
  pToJSVal = unExtendableMessageEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ExtendableMessageEventInit where
  pFromJSVal = ExtendableMessageEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ExtendableMessageEventInit where
  toJSVal = return . unExtendableMessageEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ExtendableMessageEventInit where
  fromJSVal = return . fmap ExtendableMessageEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ExtendableMessageEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEventInit ExtendableMessageEventInit
instance IsEventInit ExtendableMessageEventInit

instance IsGObject ExtendableMessageEventInit where
  typeGType _ = gTypeExtendableMessageEventInit
  {-# INLINE typeGType #-}

noExtendableMessageEventInit :: Maybe ExtendableMessageEventInit
noExtendableMessageEventInit = Nothing
{-# INLINE noExtendableMessageEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeExtendableMessageEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.External" (html).
newtype External = External { unExternal :: JSVal }

instance Eq External where
  (External a) == (External b) = js_eq a b

instance PToJSVal External where
  pToJSVal = unExternal
  {-# INLINE pToJSVal #-}

instance PFromJSVal External where
  pFromJSVal = External
  {-# INLINE pFromJSVal #-}

instance ToJSVal External where
  toJSVal = return . unExternal
  {-# INLINE toJSVal #-}

instance FromJSVal External where
  fromJSVal = return . fmap External . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . External
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject External where
  typeGType _ = gTypeExternal
  {-# INLINE typeGType #-}

noExternal :: Maybe External
noExternal = Nothing
{-# INLINE noExternal #-}

foreign import javascript unsafe "(() => globalThis[\"External\"])" gTypeExternal :: GType

-- | Dictionary FederatedCredentialInit (credential-management-1)
newtype FederatedCredentialInit = FederatedCredentialInit { unFederatedCredentialInit :: JSVal }

instance Eq FederatedCredentialInit where
  (FederatedCredentialInit a) == (FederatedCredentialInit b) = js_eq a b

instance PToJSVal FederatedCredentialInit where
  pToJSVal = unFederatedCredentialInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal FederatedCredentialInit where
  pFromJSVal = FederatedCredentialInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal FederatedCredentialInit where
  toJSVal = return . unFederatedCredentialInit
  {-# INLINE toJSVal #-}

instance FromJSVal FederatedCredentialInit where
  fromJSVal = return . fmap FederatedCredentialInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FederatedCredentialInit
  {-# INLINE fromJSValUnchecked #-}

instance IsCredentialData FederatedCredentialInit

instance IsGObject FederatedCredentialInit where
  typeGType _ = gTypeFederatedCredentialInit
  {-# INLINE typeGType #-}

noFederatedCredentialInit :: Maybe FederatedCredentialInit
noFederatedCredentialInit = Nothing
{-# INLINE noFederatedCredentialInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFederatedCredentialInit :: GType

-- | Dictionary FederatedCredentialRequestOptions (credential-management-1)
newtype FederatedCredentialRequestOptions = FederatedCredentialRequestOptions { unFederatedCredentialRequestOptions :: JSVal }

instance Eq FederatedCredentialRequestOptions where
  (FederatedCredentialRequestOptions a) == (FederatedCredentialRequestOptions b) = js_eq a b

instance PToJSVal FederatedCredentialRequestOptions where
  pToJSVal = unFederatedCredentialRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FederatedCredentialRequestOptions where
  pFromJSVal = FederatedCredentialRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FederatedCredentialRequestOptions where
  toJSVal = return . unFederatedCredentialRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FederatedCredentialRequestOptions where
  fromJSVal = return . fmap FederatedCredentialRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FederatedCredentialRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FederatedCredentialRequestOptions where
  typeGType _ = gTypeFederatedCredentialRequestOptions
  {-# INLINE typeGType #-}

noFederatedCredentialRequestOptions :: Maybe FederatedCredentialRequestOptions
noFederatedCredentialRequestOptions = Nothing
{-# INLINE noFederatedCredentialRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFederatedCredentialRequestOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.FetchEvent" (service-workers).
newtype FetchEvent = FetchEvent { unFetchEvent :: JSVal }

instance Eq FetchEvent where
  (FetchEvent a) == (FetchEvent b) = js_eq a b

instance PToJSVal FetchEvent where
  pToJSVal = unFetchEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal FetchEvent where
  pFromJSVal = FetchEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal FetchEvent where
  toJSVal = return . unFetchEvent
  {-# INLINE toJSVal #-}

instance FromJSVal FetchEvent where
  fromJSVal = return . fmap FetchEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FetchEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent FetchEvent
instance IsEvent FetchEvent

instance IsGObject FetchEvent where
  typeGType _ = gTypeFetchEvent
  {-# INLINE typeGType #-}

noFetchEvent :: Maybe FetchEvent
noFetchEvent = Nothing
{-# INLINE noFetchEvent #-}

foreign import javascript unsafe "(() => globalThis[\"FetchEvent\"])" gTypeFetchEvent :: GType

-- | Dictionary FetchEventInit (service-workers)
newtype FetchEventInit = FetchEventInit { unFetchEventInit :: JSVal }

instance Eq FetchEventInit where
  (FetchEventInit a) == (FetchEventInit b) = js_eq a b

instance PToJSVal FetchEventInit where
  pToJSVal = unFetchEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal FetchEventInit where
  pFromJSVal = FetchEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal FetchEventInit where
  toJSVal = return . unFetchEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal FetchEventInit where
  fromJSVal = return . fmap FetchEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FetchEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEventInit FetchEventInit
instance IsEventInit FetchEventInit

instance IsGObject FetchEventInit where
  typeGType _ = gTypeFetchEventInit
  {-# INLINE typeGType #-}

noFetchEventInit :: Maybe FetchEventInit
noFetchEventInit = Nothing
{-# INLINE noFetchEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFetchEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.File" (FileAPI).
newtype File = File { unFile :: JSVal }

instance Eq File where
  (File a) == (File b) = js_eq a b

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 = return . fmap File . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . File
  {-# INLINE fromJSValUnchecked #-}

instance IsBlob File

instance IsGObject File where
  typeGType _ = gTypeFile
  {-# INLINE typeGType #-}

noFile :: Maybe File
noFile = Nothing
{-# INLINE noFile #-}

foreign import javascript unsafe "(() => globalThis[\"File\"])" gTypeFile :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileList" (FileAPI).
newtype FileList = FileList { unFileList :: JSVal }

instance Eq FileList where
  (FileList a) == (FileList b) = js_eq a b

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 = return . fmap FileList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileList where
  typeGType _ = gTypeFileList
  {-# INLINE typeGType #-}

noFileList :: Maybe FileList
noFileList = Nothing
{-# INLINE noFileList #-}

foreign import javascript unsafe "(() => globalThis[\"FileList\"])" gTypeFileList :: GType

-- | Dictionary FilePropertyBag (FileAPI)
newtype FilePropertyBag = FilePropertyBag { unFilePropertyBag :: JSVal }

instance Eq FilePropertyBag where
  (FilePropertyBag a) == (FilePropertyBag b) = js_eq a b

instance PToJSVal FilePropertyBag where
  pToJSVal = unFilePropertyBag
  {-# INLINE pToJSVal #-}

instance PFromJSVal FilePropertyBag where
  pFromJSVal = FilePropertyBag
  {-# INLINE pFromJSVal #-}

instance ToJSVal FilePropertyBag where
  toJSVal = return . unFilePropertyBag
  {-# INLINE toJSVal #-}

instance FromJSVal FilePropertyBag where
  fromJSVal = return . fmap FilePropertyBag . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FilePropertyBag
  {-# INLINE fromJSValUnchecked #-}

instance IsBlobPropertyBag FilePropertyBag

instance IsGObject FilePropertyBag where
  typeGType _ = gTypeFilePropertyBag
  {-# INLINE typeGType #-}

noFilePropertyBag :: Maybe FilePropertyBag
noFilePropertyBag = Nothing
{-# INLINE noFilePropertyBag #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFilePropertyBag :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileReader" (FileAPI).
newtype FileReader = FileReader { unFileReader :: JSVal }

instance Eq FileReader where
  (FileReader a) == (FileReader b) = js_eq a b

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 = return . fmap FileReader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileReader
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget FileReader

instance IsGObject FileReader where
  typeGType _ = gTypeFileReader
  {-# INLINE typeGType #-}

noFileReader :: Maybe FileReader
noFileReader = Nothing
{-# INLINE noFileReader #-}

foreign import javascript unsafe "(() => globalThis[\"FileReader\"])" gTypeFileReader :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileReaderSync" (FileAPI).
newtype FileReaderSync = FileReaderSync { unFileReaderSync :: JSVal }

instance Eq FileReaderSync where
  (FileReaderSync a) == (FileReaderSync b) = js_eq a b

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 = return . fmap FileReaderSync . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileReaderSync
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileReaderSync where
  typeGType _ = gTypeFileReaderSync
  {-# INLINE typeGType #-}

noFileReaderSync :: Maybe FileReaderSync
noFileReaderSync = Nothing
{-# INLINE noFileReaderSync #-}

foreign import javascript unsafe "(() => globalThis[\"FileReaderSync\"])" gTypeFileReaderSync :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystem" (entries-api).
newtype FileSystem = FileSystem { unFileSystem :: JSVal }

instance Eq FileSystem where
  (FileSystem a) == (FileSystem b) = js_eq a b

instance PToJSVal FileSystem where
  pToJSVal = unFileSystem
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystem where
  pFromJSVal = FileSystem
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystem where
  toJSVal = return . unFileSystem
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystem where
  fromJSVal = return . fmap FileSystem . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystem
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystem where
  typeGType _ = gTypeFileSystem
  {-# INLINE typeGType #-}

noFileSystem :: Maybe FileSystem
noFileSystem = Nothing
{-# INLINE noFileSystem #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystem\"])" gTypeFileSystem :: GType

-- | Dictionary FileSystemCreateWritableOptions (fs)
newtype FileSystemCreateWritableOptions = FileSystemCreateWritableOptions { unFileSystemCreateWritableOptions :: JSVal }

instance Eq FileSystemCreateWritableOptions where
  (FileSystemCreateWritableOptions a) == (FileSystemCreateWritableOptions b) = js_eq a b

instance PToJSVal FileSystemCreateWritableOptions where
  pToJSVal = unFileSystemCreateWritableOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemCreateWritableOptions where
  pFromJSVal = FileSystemCreateWritableOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemCreateWritableOptions where
  toJSVal = return . unFileSystemCreateWritableOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemCreateWritableOptions where
  fromJSVal = return . fmap FileSystemCreateWritableOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemCreateWritableOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemCreateWritableOptions where
  typeGType _ = gTypeFileSystemCreateWritableOptions
  {-# INLINE typeGType #-}

noFileSystemCreateWritableOptions :: Maybe FileSystemCreateWritableOptions
noFileSystemCreateWritableOptions = Nothing
{-# INLINE noFileSystemCreateWritableOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFileSystemCreateWritableOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemDirectoryEntry" (entries-api).
newtype FileSystemDirectoryEntry = FileSystemDirectoryEntry { unFileSystemDirectoryEntry :: JSVal }

instance Eq FileSystemDirectoryEntry where
  (FileSystemDirectoryEntry a) == (FileSystemDirectoryEntry b) = js_eq a b

instance PToJSVal FileSystemDirectoryEntry where
  pToJSVal = unFileSystemDirectoryEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemDirectoryEntry where
  pFromJSVal = FileSystemDirectoryEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemDirectoryEntry where
  toJSVal = return . unFileSystemDirectoryEntry
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemDirectoryEntry where
  fromJSVal = return . fmap FileSystemDirectoryEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemDirectoryEntry
  {-# INLINE fromJSValUnchecked #-}

instance IsFileSystemEntry FileSystemDirectoryEntry

instance IsGObject FileSystemDirectoryEntry where
  typeGType _ = gTypeFileSystemDirectoryEntry
  {-# INLINE typeGType #-}

noFileSystemDirectoryEntry :: Maybe FileSystemDirectoryEntry
noFileSystemDirectoryEntry = Nothing
{-# INLINE noFileSystemDirectoryEntry #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemDirectoryEntry\"])" gTypeFileSystemDirectoryEntry :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemDirectoryHandle" (fs).
newtype FileSystemDirectoryHandle = FileSystemDirectoryHandle { unFileSystemDirectoryHandle :: JSVal }

instance Eq FileSystemDirectoryHandle where
  (FileSystemDirectoryHandle a) == (FileSystemDirectoryHandle b) = js_eq a b

instance PToJSVal FileSystemDirectoryHandle where
  pToJSVal = unFileSystemDirectoryHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemDirectoryHandle where
  pFromJSVal = FileSystemDirectoryHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemDirectoryHandle where
  toJSVal = return . unFileSystemDirectoryHandle
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemDirectoryHandle where
  fromJSVal = return . fmap FileSystemDirectoryHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemDirectoryHandle
  {-# INLINE fromJSValUnchecked #-}

instance IsFileSystemHandle FileSystemDirectoryHandle

instance IsGObject FileSystemDirectoryHandle where
  typeGType _ = gTypeFileSystemDirectoryHandle
  {-# INLINE typeGType #-}

noFileSystemDirectoryHandle :: Maybe FileSystemDirectoryHandle
noFileSystemDirectoryHandle = Nothing
{-# INLINE noFileSystemDirectoryHandle #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemDirectoryHandle\"])" gTypeFileSystemDirectoryHandle :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemDirectoryReader" (entries-api).
newtype FileSystemDirectoryReader = FileSystemDirectoryReader { unFileSystemDirectoryReader :: JSVal }

instance Eq FileSystemDirectoryReader where
  (FileSystemDirectoryReader a) == (FileSystemDirectoryReader b) = js_eq a b

instance PToJSVal FileSystemDirectoryReader where
  pToJSVal = unFileSystemDirectoryReader
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemDirectoryReader where
  pFromJSVal = FileSystemDirectoryReader
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemDirectoryReader where
  toJSVal = return . unFileSystemDirectoryReader
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemDirectoryReader where
  fromJSVal = return . fmap FileSystemDirectoryReader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemDirectoryReader
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemDirectoryReader where
  typeGType _ = gTypeFileSystemDirectoryReader
  {-# INLINE typeGType #-}

noFileSystemDirectoryReader :: Maybe FileSystemDirectoryReader
noFileSystemDirectoryReader = Nothing
{-# INLINE noFileSystemDirectoryReader #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemDirectoryReader\"])" gTypeFileSystemDirectoryReader :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemEntry" (entries-api).
newtype FileSystemEntry = FileSystemEntry { unFileSystemEntry :: JSVal }

instance Eq FileSystemEntry where
  (FileSystemEntry a) == (FileSystemEntry b) = js_eq a b

instance PToJSVal FileSystemEntry where
  pToJSVal = unFileSystemEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemEntry where
  pFromJSVal = FileSystemEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemEntry where
  toJSVal = return . unFileSystemEntry
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemEntry where
  fromJSVal = return . fmap FileSystemEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemEntry
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsFileSystemEntry o
toFileSystemEntry :: IsFileSystemEntry o => o -> FileSystemEntry
toFileSystemEntry = FileSystemEntry . coerce

instance IsFileSystemEntry FileSystemEntry

instance IsGObject FileSystemEntry where
  typeGType _ = gTypeFileSystemEntry
  {-# INLINE typeGType #-}

noFileSystemEntry :: Maybe FileSystemEntry
noFileSystemEntry = Nothing
{-# INLINE noFileSystemEntry #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemEntry\"])" gTypeFileSystemEntry :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemFileEntry" (entries-api).
newtype FileSystemFileEntry = FileSystemFileEntry { unFileSystemFileEntry :: JSVal }

instance Eq FileSystemFileEntry where
  (FileSystemFileEntry a) == (FileSystemFileEntry b) = js_eq a b

instance PToJSVal FileSystemFileEntry where
  pToJSVal = unFileSystemFileEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemFileEntry where
  pFromJSVal = FileSystemFileEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemFileEntry where
  toJSVal = return . unFileSystemFileEntry
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemFileEntry where
  fromJSVal = return . fmap FileSystemFileEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemFileEntry
  {-# INLINE fromJSValUnchecked #-}

instance IsFileSystemEntry FileSystemFileEntry

instance IsGObject FileSystemFileEntry where
  typeGType _ = gTypeFileSystemFileEntry
  {-# INLINE typeGType #-}

noFileSystemFileEntry :: Maybe FileSystemFileEntry
noFileSystemFileEntry = Nothing
{-# INLINE noFileSystemFileEntry #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemFileEntry\"])" gTypeFileSystemFileEntry :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemFileHandle" (fs).
newtype FileSystemFileHandle = FileSystemFileHandle { unFileSystemFileHandle :: JSVal }

instance Eq FileSystemFileHandle where
  (FileSystemFileHandle a) == (FileSystemFileHandle b) = js_eq a b

instance PToJSVal FileSystemFileHandle where
  pToJSVal = unFileSystemFileHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemFileHandle where
  pFromJSVal = FileSystemFileHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemFileHandle where
  toJSVal = return . unFileSystemFileHandle
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemFileHandle where
  fromJSVal = return . fmap FileSystemFileHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemFileHandle
  {-# INLINE fromJSValUnchecked #-}

instance IsFileSystemHandle FileSystemFileHandle

instance IsGObject FileSystemFileHandle where
  typeGType _ = gTypeFileSystemFileHandle
  {-# INLINE typeGType #-}

noFileSystemFileHandle :: Maybe FileSystemFileHandle
noFileSystemFileHandle = Nothing
{-# INLINE noFileSystemFileHandle #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemFileHandle\"])" gTypeFileSystemFileHandle :: GType

-- | Dictionary FileSystemFlags (entries-api)
newtype FileSystemFlags = FileSystemFlags { unFileSystemFlags :: JSVal }

instance Eq FileSystemFlags where
  (FileSystemFlags a) == (FileSystemFlags b) = js_eq a b

instance PToJSVal FileSystemFlags where
  pToJSVal = unFileSystemFlags
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemFlags where
  pFromJSVal = FileSystemFlags
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemFlags where
  toJSVal = return . unFileSystemFlags
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemFlags where
  fromJSVal = return . fmap FileSystemFlags . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemFlags
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemFlags where
  typeGType _ = gTypeFileSystemFlags
  {-# INLINE typeGType #-}

noFileSystemFlags :: Maybe FileSystemFlags
noFileSystemFlags = Nothing
{-# INLINE noFileSystemFlags #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFileSystemFlags :: GType

-- | Dictionary FileSystemGetDirectoryOptions (fs)
newtype FileSystemGetDirectoryOptions = FileSystemGetDirectoryOptions { unFileSystemGetDirectoryOptions :: JSVal }

instance Eq FileSystemGetDirectoryOptions where
  (FileSystemGetDirectoryOptions a) == (FileSystemGetDirectoryOptions b) = js_eq a b

instance PToJSVal FileSystemGetDirectoryOptions where
  pToJSVal = unFileSystemGetDirectoryOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemGetDirectoryOptions where
  pFromJSVal = FileSystemGetDirectoryOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemGetDirectoryOptions where
  toJSVal = return . unFileSystemGetDirectoryOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemGetDirectoryOptions where
  fromJSVal = return . fmap FileSystemGetDirectoryOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemGetDirectoryOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemGetDirectoryOptions where
  typeGType _ = gTypeFileSystemGetDirectoryOptions
  {-# INLINE typeGType #-}

noFileSystemGetDirectoryOptions :: Maybe FileSystemGetDirectoryOptions
noFileSystemGetDirectoryOptions = Nothing
{-# INLINE noFileSystemGetDirectoryOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFileSystemGetDirectoryOptions :: GType

-- | Dictionary FileSystemGetFileOptions (fs)
newtype FileSystemGetFileOptions = FileSystemGetFileOptions { unFileSystemGetFileOptions :: JSVal }

instance Eq FileSystemGetFileOptions where
  (FileSystemGetFileOptions a) == (FileSystemGetFileOptions b) = js_eq a b

instance PToJSVal FileSystemGetFileOptions where
  pToJSVal = unFileSystemGetFileOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemGetFileOptions where
  pFromJSVal = FileSystemGetFileOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemGetFileOptions where
  toJSVal = return . unFileSystemGetFileOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemGetFileOptions where
  fromJSVal = return . fmap FileSystemGetFileOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemGetFileOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemGetFileOptions where
  typeGType _ = gTypeFileSystemGetFileOptions
  {-# INLINE typeGType #-}

noFileSystemGetFileOptions :: Maybe FileSystemGetFileOptions
noFileSystemGetFileOptions = Nothing
{-# INLINE noFileSystemGetFileOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFileSystemGetFileOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemHandle" (fs).
newtype FileSystemHandle = FileSystemHandle { unFileSystemHandle :: JSVal }

instance Eq FileSystemHandle where
  (FileSystemHandle a) == (FileSystemHandle b) = js_eq a b

instance PToJSVal FileSystemHandle where
  pToJSVal = unFileSystemHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemHandle where
  pFromJSVal = FileSystemHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemHandle where
  toJSVal = return . unFileSystemHandle
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemHandle where
  fromJSVal = return . fmap FileSystemHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemHandle
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsFileSystemHandle o
toFileSystemHandle :: IsFileSystemHandle o => o -> FileSystemHandle
toFileSystemHandle = FileSystemHandle . coerce

instance IsFileSystemHandle FileSystemHandle

instance IsGObject FileSystemHandle where
  typeGType _ = gTypeFileSystemHandle
  {-# INLINE typeGType #-}

noFileSystemHandle :: Maybe FileSystemHandle
noFileSystemHandle = Nothing
{-# INLINE noFileSystemHandle #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemHandle\"])" gTypeFileSystemHandle :: GType

-- | Dictionary FileSystemReadWriteOptions (fs)
newtype FileSystemReadWriteOptions = FileSystemReadWriteOptions { unFileSystemReadWriteOptions :: JSVal }

instance Eq FileSystemReadWriteOptions where
  (FileSystemReadWriteOptions a) == (FileSystemReadWriteOptions b) = js_eq a b

instance PToJSVal FileSystemReadWriteOptions where
  pToJSVal = unFileSystemReadWriteOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemReadWriteOptions where
  pFromJSVal = FileSystemReadWriteOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemReadWriteOptions where
  toJSVal = return . unFileSystemReadWriteOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemReadWriteOptions where
  fromJSVal = return . fmap FileSystemReadWriteOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemReadWriteOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemReadWriteOptions where
  typeGType _ = gTypeFileSystemReadWriteOptions
  {-# INLINE typeGType #-}

noFileSystemReadWriteOptions :: Maybe FileSystemReadWriteOptions
noFileSystemReadWriteOptions = Nothing
{-# INLINE noFileSystemReadWriteOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFileSystemReadWriteOptions :: GType

-- | Dictionary FileSystemRemoveOptions (fs)
newtype FileSystemRemoveOptions = FileSystemRemoveOptions { unFileSystemRemoveOptions :: JSVal }

instance Eq FileSystemRemoveOptions where
  (FileSystemRemoveOptions a) == (FileSystemRemoveOptions b) = js_eq a b

instance PToJSVal FileSystemRemoveOptions where
  pToJSVal = unFileSystemRemoveOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemRemoveOptions where
  pFromJSVal = FileSystemRemoveOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemRemoveOptions where
  toJSVal = return . unFileSystemRemoveOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemRemoveOptions where
  fromJSVal = return . fmap FileSystemRemoveOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemRemoveOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemRemoveOptions where
  typeGType _ = gTypeFileSystemRemoveOptions
  {-# INLINE typeGType #-}

noFileSystemRemoveOptions :: Maybe FileSystemRemoveOptions
noFileSystemRemoveOptions = Nothing
{-# INLINE noFileSystemRemoveOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFileSystemRemoveOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemSyncAccessHandle" (fs).
newtype FileSystemSyncAccessHandle = FileSystemSyncAccessHandle { unFileSystemSyncAccessHandle :: JSVal }

instance Eq FileSystemSyncAccessHandle where
  (FileSystemSyncAccessHandle a) == (FileSystemSyncAccessHandle b) = js_eq a b

instance PToJSVal FileSystemSyncAccessHandle where
  pToJSVal = unFileSystemSyncAccessHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemSyncAccessHandle where
  pFromJSVal = FileSystemSyncAccessHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemSyncAccessHandle where
  toJSVal = return . unFileSystemSyncAccessHandle
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemSyncAccessHandle where
  fromJSVal = return . fmap FileSystemSyncAccessHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemSyncAccessHandle
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FileSystemSyncAccessHandle where
  typeGType _ = gTypeFileSystemSyncAccessHandle
  {-# INLINE typeGType #-}

noFileSystemSyncAccessHandle :: Maybe FileSystemSyncAccessHandle
noFileSystemSyncAccessHandle = Nothing
{-# INLINE noFileSystemSyncAccessHandle #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemSyncAccessHandle\"])" gTypeFileSystemSyncAccessHandle :: GType

-- | Functions for this interface are in "GHCJS.DOM.FileSystemWritableFileStream" (fs).
newtype FileSystemWritableFileStream = FileSystemWritableFileStream { unFileSystemWritableFileStream :: JSVal }

instance Eq FileSystemWritableFileStream where
  (FileSystemWritableFileStream a) == (FileSystemWritableFileStream b) = js_eq a b

instance PToJSVal FileSystemWritableFileStream where
  pToJSVal = unFileSystemWritableFileStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal FileSystemWritableFileStream where
  pFromJSVal = FileSystemWritableFileStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal FileSystemWritableFileStream where
  toJSVal = return . unFileSystemWritableFileStream
  {-# INLINE toJSVal #-}

instance FromJSVal FileSystemWritableFileStream where
  fromJSVal = return . fmap FileSystemWritableFileStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FileSystemWritableFileStream
  {-# INLINE fromJSValUnchecked #-}

instance IsWritableStream FileSystemWritableFileStream

instance IsGObject FileSystemWritableFileStream where
  typeGType _ = gTypeFileSystemWritableFileStream
  {-# INLINE typeGType #-}

noFileSystemWritableFileStream :: Maybe FileSystemWritableFileStream
noFileSystemWritableFileStream = Nothing
{-# INLINE noFileSystemWritableFileStream #-}

foreign import javascript unsafe "(() => globalThis[\"FileSystemWritableFileStream\"])" gTypeFileSystemWritableFileStream :: GType

-- | Dictionary FlacEncoderConfig (webcodecs-flac-codec-registration)
newtype FlacEncoderConfig = FlacEncoderConfig { unFlacEncoderConfig :: JSVal }

instance Eq FlacEncoderConfig where
  (FlacEncoderConfig a) == (FlacEncoderConfig b) = js_eq a b

instance PToJSVal FlacEncoderConfig where
  pToJSVal = unFlacEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal FlacEncoderConfig where
  pFromJSVal = FlacEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal FlacEncoderConfig where
  toJSVal = return . unFlacEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal FlacEncoderConfig where
  fromJSVal = return . fmap FlacEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FlacEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FlacEncoderConfig where
  typeGType _ = gTypeFlacEncoderConfig
  {-# INLINE typeGType #-}

noFlacEncoderConfig :: Maybe FlacEncoderConfig
noFlacEncoderConfig = Nothing
{-# INLINE noFlacEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFlacEncoderConfig :: GType

newtype Float16Array = Float16Array { unFloat16Array :: JSVal }

instance Eq Float16Array where
  (Float16Array a) == (Float16Array b) = js_eq a b

instance PToJSVal Float16Array where
  pToJSVal = unFloat16Array
  {-# INLINE pToJSVal #-}

instance PFromJSVal Float16Array where
  pFromJSVal = Float16Array
  {-# INLINE pFromJSVal #-}

instance ToJSVal Float16Array where
  toJSVal = return . unFloat16Array
  {-# INLINE toJSVal #-}

instance FromJSVal Float16Array where
  fromJSVal = return . fmap Float16Array . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Float16Array
  {-# INLINE fromJSValUnchecked #-}

instance IsArrayBufferView Float16Array

instance IsGObject Float16Array where
  typeGType _ = gTypeFloat16Array
  {-# INLINE typeGType #-}

noFloat16Array :: Maybe Float16Array
noFloat16Array = Nothing
{-# INLINE noFloat16Array #-}

foreign import javascript unsafe "(() => globalThis[\"Float16Array\"])" gTypeFloat16Array :: GType

-- | Functions for this interface are in "GHCJS.DOM.FocusEvent" (uievents).
newtype FocusEvent = FocusEvent { unFocusEvent :: JSVal }

instance Eq FocusEvent where
  (FocusEvent a) == (FocusEvent b) = js_eq a b

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 = return . fmap FocusEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FocusEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent FocusEvent
instance IsEvent FocusEvent

instance IsGObject FocusEvent where
  typeGType _ = gTypeFocusEvent
  {-# INLINE typeGType #-}

noFocusEvent :: Maybe FocusEvent
noFocusEvent = Nothing
{-# INLINE noFocusEvent #-}

foreign import javascript unsafe "(() => globalThis[\"FocusEvent\"])" gTypeFocusEvent :: GType

-- | Dictionary FocusEventInit (uievents)
newtype FocusEventInit = FocusEventInit { unFocusEventInit :: JSVal }

instance Eq FocusEventInit where
  (FocusEventInit a) == (FocusEventInit b) = js_eq a b

instance PToJSVal FocusEventInit where
  pToJSVal = unFocusEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal FocusEventInit where
  pFromJSVal = FocusEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal FocusEventInit where
  toJSVal = return . unFocusEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal FocusEventInit where
  fromJSVal = return . fmap FocusEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FocusEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEventInit FocusEventInit
instance IsEventInit FocusEventInit

instance IsGObject FocusEventInit where
  typeGType _ = gTypeFocusEventInit
  {-# INLINE typeGType #-}

noFocusEventInit :: Maybe FocusEventInit
noFocusEventInit = Nothing
{-# INLINE noFocusEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFocusEventInit :: GType

-- | Dictionary FocusOptions (html)
newtype FocusOptions = FocusOptions { unFocusOptions :: JSVal }

instance Eq FocusOptions where
  (FocusOptions a) == (FocusOptions b) = js_eq a b

instance PToJSVal FocusOptions where
  pToJSVal = unFocusOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FocusOptions where
  pFromJSVal = FocusOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FocusOptions where
  toJSVal = return . unFocusOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FocusOptions where
  fromJSVal = return . fmap FocusOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FocusOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FocusOptions where
  typeGType _ = gTypeFocusOptions
  {-# INLINE typeGType #-}

noFocusOptions :: Maybe FocusOptions
noFocusOptions = Nothing
{-# INLINE noFocusOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFocusOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.FontFace" (css-font-loading-3).
newtype FontFace = FontFace { unFontFace :: JSVal }

instance Eq FontFace where
  (FontFace a) == (FontFace b) = js_eq a b

instance PToJSVal FontFace where
  pToJSVal = unFontFace
  {-# INLINE pToJSVal #-}

instance PFromJSVal FontFace where
  pFromJSVal = FontFace
  {-# INLINE pFromJSVal #-}

instance ToJSVal FontFace where
  toJSVal = return . unFontFace
  {-# INLINE toJSVal #-}

instance FromJSVal FontFace where
  fromJSVal = return . fmap FontFace . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FontFace
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FontFace where
  typeGType _ = gTypeFontFace
  {-# INLINE typeGType #-}

noFontFace :: Maybe FontFace
noFontFace = Nothing
{-# INLINE noFontFace #-}

foreign import javascript unsafe "(() => globalThis[\"FontFace\"])" gTypeFontFace :: GType

-- | Dictionary FontFaceDescriptors (css-font-loading-3)
newtype FontFaceDescriptors = FontFaceDescriptors { unFontFaceDescriptors :: JSVal }

instance Eq FontFaceDescriptors where
  (FontFaceDescriptors a) == (FontFaceDescriptors b) = js_eq a b

instance PToJSVal FontFaceDescriptors where
  pToJSVal = unFontFaceDescriptors
  {-# INLINE pToJSVal #-}

instance PFromJSVal FontFaceDescriptors where
  pFromJSVal = FontFaceDescriptors
  {-# INLINE pFromJSVal #-}

instance ToJSVal FontFaceDescriptors where
  toJSVal = return . unFontFaceDescriptors
  {-# INLINE toJSVal #-}

instance FromJSVal FontFaceDescriptors where
  fromJSVal = return . fmap FontFaceDescriptors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FontFaceDescriptors
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FontFaceDescriptors where
  typeGType _ = gTypeFontFaceDescriptors
  {-# INLINE typeGType #-}

noFontFaceDescriptors :: Maybe FontFaceDescriptors
noFontFaceDescriptors = Nothing
{-# INLINE noFontFaceDescriptors #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFontFaceDescriptors :: GType

-- | Functions for this interface are in "GHCJS.DOM.FontFaceSet" (css-font-loading-3).
newtype FontFaceSet = FontFaceSet { unFontFaceSet :: JSVal }

instance Eq FontFaceSet where
  (FontFaceSet a) == (FontFaceSet b) = js_eq a b

instance PToJSVal FontFaceSet where
  pToJSVal = unFontFaceSet
  {-# INLINE pToJSVal #-}

instance PFromJSVal FontFaceSet where
  pFromJSVal = FontFaceSet
  {-# INLINE pFromJSVal #-}

instance ToJSVal FontFaceSet where
  toJSVal = return . unFontFaceSet
  {-# INLINE toJSVal #-}

instance FromJSVal FontFaceSet where
  fromJSVal = return . fmap FontFaceSet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FontFaceSet
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget FontFaceSet

instance IsGObject FontFaceSet where
  typeGType _ = gTypeFontFaceSet
  {-# INLINE typeGType #-}

noFontFaceSet :: Maybe FontFaceSet
noFontFaceSet = Nothing
{-# INLINE noFontFaceSet #-}

foreign import javascript unsafe "(() => globalThis[\"FontFaceSet\"])" gTypeFontFaceSet :: GType

-- | Functions for this interface are in "GHCJS.DOM.FontFaceSetLoadEvent" (css-font-loading-3).
newtype FontFaceSetLoadEvent = FontFaceSetLoadEvent { unFontFaceSetLoadEvent :: JSVal }

instance Eq FontFaceSetLoadEvent where
  (FontFaceSetLoadEvent a) == (FontFaceSetLoadEvent b) = js_eq a b

instance PToJSVal FontFaceSetLoadEvent where
  pToJSVal = unFontFaceSetLoadEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal FontFaceSetLoadEvent where
  pFromJSVal = FontFaceSetLoadEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal FontFaceSetLoadEvent where
  toJSVal = return . unFontFaceSetLoadEvent
  {-# INLINE toJSVal #-}

instance FromJSVal FontFaceSetLoadEvent where
  fromJSVal = return . fmap FontFaceSetLoadEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FontFaceSetLoadEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent FontFaceSetLoadEvent

instance IsGObject FontFaceSetLoadEvent where
  typeGType _ = gTypeFontFaceSetLoadEvent
  {-# INLINE typeGType #-}

noFontFaceSetLoadEvent :: Maybe FontFaceSetLoadEvent
noFontFaceSetLoadEvent = Nothing
{-# INLINE noFontFaceSetLoadEvent #-}

foreign import javascript unsafe "(() => globalThis[\"FontFaceSetLoadEvent\"])" gTypeFontFaceSetLoadEvent :: GType

-- | Dictionary FontFaceSetLoadEventInit (css-font-loading-3)
newtype FontFaceSetLoadEventInit = FontFaceSetLoadEventInit { unFontFaceSetLoadEventInit :: JSVal }

instance Eq FontFaceSetLoadEventInit where
  (FontFaceSetLoadEventInit a) == (FontFaceSetLoadEventInit b) = js_eq a b

instance PToJSVal FontFaceSetLoadEventInit where
  pToJSVal = unFontFaceSetLoadEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal FontFaceSetLoadEventInit where
  pFromJSVal = FontFaceSetLoadEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal FontFaceSetLoadEventInit where
  toJSVal = return . unFontFaceSetLoadEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal FontFaceSetLoadEventInit where
  fromJSVal = return . fmap FontFaceSetLoadEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FontFaceSetLoadEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit FontFaceSetLoadEventInit

instance IsGObject FontFaceSetLoadEventInit where
  typeGType _ = gTypeFontFaceSetLoadEventInit
  {-# INLINE typeGType #-}

noFontFaceSetLoadEventInit :: Maybe FontFaceSetLoadEventInit
noFontFaceSetLoadEventInit = Nothing
{-# INLINE noFontFaceSetLoadEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFontFaceSetLoadEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.FontFaceSource" (css-font-loading-3).
newtype FontFaceSource = FontFaceSource { unFontFaceSource :: JSVal }

instance Eq FontFaceSource where
  (FontFaceSource a) == (FontFaceSource b) = js_eq a b

instance PToJSVal FontFaceSource where
  pToJSVal = unFontFaceSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal FontFaceSource where
  pFromJSVal = FontFaceSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal FontFaceSource where
  toJSVal = return . unFontFaceSource
  {-# INLINE toJSVal #-}

instance FromJSVal FontFaceSource where
  fromJSVal = return . fmap FontFaceSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FontFaceSource
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsFontFaceSource o
toFontFaceSource :: IsFontFaceSource o => o -> FontFaceSource
toFontFaceSource = FontFaceSource . coerce

instance IsFontFaceSource FontFaceSource

instance IsGObject FontFaceSource where
  typeGType _ = gTypeFontFaceSource
  {-# INLINE typeGType #-}

noFontFaceSource :: Maybe FontFaceSource
noFontFaceSource = Nothing
{-# INLINE noFontFaceSource #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFontFaceSource :: GType

-- | Functions for this interface are in "GHCJS.DOM.FormData" (xhr).
newtype FormData = FormData { unFormData :: JSVal }

instance Eq FormData where
  (FormData a) == (FormData b) = js_eq a b

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 = return . fmap FormData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FormData
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FormData where
  typeGType _ = gTypeFormData
  {-# INLINE typeGType #-}

noFormData :: Maybe FormData
noFormData = Nothing
{-# INLINE noFormData #-}

foreign import javascript unsafe "(() => globalThis[\"FormData\"])" gTypeFormData :: GType

-- | Functions for this interface are in "GHCJS.DOM.FormDataEvent" (html).
newtype FormDataEvent = FormDataEvent { unFormDataEvent :: JSVal }

instance Eq FormDataEvent where
  (FormDataEvent a) == (FormDataEvent b) = js_eq a b

instance PToJSVal FormDataEvent where
  pToJSVal = unFormDataEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal FormDataEvent where
  pFromJSVal = FormDataEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal FormDataEvent where
  toJSVal = return . unFormDataEvent
  {-# INLINE toJSVal #-}

instance FromJSVal FormDataEvent where
  fromJSVal = return . fmap FormDataEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FormDataEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent FormDataEvent

instance IsGObject FormDataEvent where
  typeGType _ = gTypeFormDataEvent
  {-# INLINE typeGType #-}

noFormDataEvent :: Maybe FormDataEvent
noFormDataEvent = Nothing
{-# INLINE noFormDataEvent #-}

foreign import javascript unsafe "(() => globalThis[\"FormDataEvent\"])" gTypeFormDataEvent :: GType

-- | Dictionary FormDataEventInit (html)
newtype FormDataEventInit = FormDataEventInit { unFormDataEventInit :: JSVal }

instance Eq FormDataEventInit where
  (FormDataEventInit a) == (FormDataEventInit b) = js_eq a b

instance PToJSVal FormDataEventInit where
  pToJSVal = unFormDataEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal FormDataEventInit where
  pFromJSVal = FormDataEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal FormDataEventInit where
  toJSVal = return . unFormDataEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal FormDataEventInit where
  fromJSVal = return . fmap FormDataEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FormDataEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit FormDataEventInit

instance IsGObject FormDataEventInit where
  typeGType _ = gTypeFormDataEventInit
  {-# INLINE typeGType #-}

noFormDataEventInit :: Maybe FormDataEventInit
noFormDataEventInit = Nothing
{-# INLINE noFormDataEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFormDataEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.FragmentDirective" (scroll-to-text-fragment).
newtype FragmentDirective = FragmentDirective { unFragmentDirective :: JSVal }

instance Eq FragmentDirective where
  (FragmentDirective a) == (FragmentDirective b) = js_eq a b

instance PToJSVal FragmentDirective where
  pToJSVal = unFragmentDirective
  {-# INLINE pToJSVal #-}

instance PFromJSVal FragmentDirective where
  pFromJSVal = FragmentDirective
  {-# INLINE pFromJSVal #-}

instance ToJSVal FragmentDirective where
  toJSVal = return . unFragmentDirective
  {-# INLINE toJSVal #-}

instance FromJSVal FragmentDirective where
  fromJSVal = return . fmap FragmentDirective . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FragmentDirective
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FragmentDirective where
  typeGType _ = gTypeFragmentDirective
  {-# INLINE typeGType #-}

noFragmentDirective :: Maybe FragmentDirective
noFragmentDirective = Nothing
{-# INLINE noFragmentDirective #-}

foreign import javascript unsafe "(() => globalThis[\"FragmentDirective\"])" gTypeFragmentDirective :: GType

-- | Dictionary FullscreenOptions (fullscreen)
newtype FullscreenOptions = FullscreenOptions { unFullscreenOptions :: JSVal }

instance Eq FullscreenOptions where
  (FullscreenOptions a) == (FullscreenOptions b) = js_eq a b

instance PToJSVal FullscreenOptions where
  pToJSVal = unFullscreenOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal FullscreenOptions where
  pFromJSVal = FullscreenOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal FullscreenOptions where
  toJSVal = return . unFullscreenOptions
  {-# INLINE toJSVal #-}

instance FromJSVal FullscreenOptions where
  fromJSVal = return . fmap FullscreenOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . FullscreenOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject FullscreenOptions where
  typeGType _ = gTypeFullscreenOptions
  {-# INLINE typeGType #-}

noFullscreenOptions :: Maybe FullscreenOptions
noFullscreenOptions = Nothing
{-# INLINE noFullscreenOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeFullscreenOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPU" (webgpu).
newtype GPU = GPU { unGPU :: JSVal }

instance Eq GPU where
  (GPU a) == (GPU b) = js_eq a b

instance PToJSVal GPU where
  pToJSVal = unGPU
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPU where
  pFromJSVal = GPU
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPU where
  toJSVal = return . unGPU
  {-# INLINE toJSVal #-}

instance FromJSVal GPU where
  fromJSVal = return . fmap GPU . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPU
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPU where
  typeGType _ = gTypeGPU
  {-# INLINE typeGType #-}

noGPU :: Maybe GPU
noGPU = Nothing
{-# INLINE noGPU #-}

foreign import javascript unsafe "(() => globalThis[\"GPU\"])" gTypeGPU :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUAdapter" (webgpu).
newtype GPUAdapter = GPUAdapter { unGPUAdapter :: JSVal }

instance Eq GPUAdapter where
  (GPUAdapter a) == (GPUAdapter b) = js_eq a b

instance PToJSVal GPUAdapter where
  pToJSVal = unGPUAdapter
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUAdapter where
  pFromJSVal = GPUAdapter
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUAdapter where
  toJSVal = return . unGPUAdapter
  {-# INLINE toJSVal #-}

instance FromJSVal GPUAdapter where
  fromJSVal = return . fmap GPUAdapter . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUAdapter
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUAdapter where
  typeGType _ = gTypeGPUAdapter
  {-# INLINE typeGType #-}

noGPUAdapter :: Maybe GPUAdapter
noGPUAdapter = Nothing
{-# INLINE noGPUAdapter #-}

foreign import javascript unsafe "(() => globalThis[\"GPUAdapter\"])" gTypeGPUAdapter :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUAdapterInfo" (webgpu).
newtype GPUAdapterInfo = GPUAdapterInfo { unGPUAdapterInfo :: JSVal }

instance Eq GPUAdapterInfo where
  (GPUAdapterInfo a) == (GPUAdapterInfo b) = js_eq a b

instance PToJSVal GPUAdapterInfo where
  pToJSVal = unGPUAdapterInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUAdapterInfo where
  pFromJSVal = GPUAdapterInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUAdapterInfo where
  toJSVal = return . unGPUAdapterInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUAdapterInfo where
  fromJSVal = return . fmap GPUAdapterInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUAdapterInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUAdapterInfo where
  typeGType _ = gTypeGPUAdapterInfo
  {-# INLINE typeGType #-}

noGPUAdapterInfo :: Maybe GPUAdapterInfo
noGPUAdapterInfo = Nothing
{-# INLINE noGPUAdapterInfo #-}

foreign import javascript unsafe "(() => globalThis[\"GPUAdapterInfo\"])" gTypeGPUAdapterInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUBindGroup" (webgpu).
newtype GPUBindGroup = GPUBindGroup { unGPUBindGroup :: JSVal }

instance Eq GPUBindGroup where
  (GPUBindGroup a) == (GPUBindGroup b) = js_eq a b

instance PToJSVal GPUBindGroup where
  pToJSVal = unGPUBindGroup
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindGroup where
  pFromJSVal = GPUBindGroup
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindGroup where
  toJSVal = return . unGPUBindGroup
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindGroup where
  fromJSVal = return . fmap GPUBindGroup . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindGroup
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUBindGroup

instance IsGObject GPUBindGroup where
  typeGType _ = gTypeGPUBindGroup
  {-# INLINE typeGType #-}

noGPUBindGroup :: Maybe GPUBindGroup
noGPUBindGroup = Nothing
{-# INLINE noGPUBindGroup #-}

foreign import javascript unsafe "(() => globalThis[\"GPUBindGroup\"])" gTypeGPUBindGroup :: GType

-- | Dictionary GPUBindGroupDescriptor (webgpu)
newtype GPUBindGroupDescriptor = GPUBindGroupDescriptor { unGPUBindGroupDescriptor :: JSVal }

instance Eq GPUBindGroupDescriptor where
  (GPUBindGroupDescriptor a) == (GPUBindGroupDescriptor b) = js_eq a b

instance PToJSVal GPUBindGroupDescriptor where
  pToJSVal = unGPUBindGroupDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindGroupDescriptor where
  pFromJSVal = GPUBindGroupDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindGroupDescriptor where
  toJSVal = return . unGPUBindGroupDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindGroupDescriptor where
  fromJSVal = return . fmap GPUBindGroupDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindGroupDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUBindGroupDescriptor

instance IsGObject GPUBindGroupDescriptor where
  typeGType _ = gTypeGPUBindGroupDescriptor
  {-# INLINE typeGType #-}

noGPUBindGroupDescriptor :: Maybe GPUBindGroupDescriptor
noGPUBindGroupDescriptor = Nothing
{-# INLINE noGPUBindGroupDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBindGroupDescriptor :: GType

-- | Dictionary GPUBindGroupEntry (webgpu)
newtype GPUBindGroupEntry = GPUBindGroupEntry { unGPUBindGroupEntry :: JSVal }

instance Eq GPUBindGroupEntry where
  (GPUBindGroupEntry a) == (GPUBindGroupEntry b) = js_eq a b

instance PToJSVal GPUBindGroupEntry where
  pToJSVal = unGPUBindGroupEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindGroupEntry where
  pFromJSVal = GPUBindGroupEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindGroupEntry where
  toJSVal = return . unGPUBindGroupEntry
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindGroupEntry where
  fromJSVal = return . fmap GPUBindGroupEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindGroupEntry
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUBindGroupEntry where
  typeGType _ = gTypeGPUBindGroupEntry
  {-# INLINE typeGType #-}

noGPUBindGroupEntry :: Maybe GPUBindGroupEntry
noGPUBindGroupEntry = Nothing
{-# INLINE noGPUBindGroupEntry #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBindGroupEntry :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUBindGroupLayout" (webgpu).
newtype GPUBindGroupLayout = GPUBindGroupLayout { unGPUBindGroupLayout :: JSVal }

instance Eq GPUBindGroupLayout where
  (GPUBindGroupLayout a) == (GPUBindGroupLayout b) = js_eq a b

instance PToJSVal GPUBindGroupLayout where
  pToJSVal = unGPUBindGroupLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindGroupLayout where
  pFromJSVal = GPUBindGroupLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindGroupLayout where
  toJSVal = return . unGPUBindGroupLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindGroupLayout where
  fromJSVal = return . fmap GPUBindGroupLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindGroupLayout
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUBindGroupLayout

instance IsGObject GPUBindGroupLayout where
  typeGType _ = gTypeGPUBindGroupLayout
  {-# INLINE typeGType #-}

noGPUBindGroupLayout :: Maybe GPUBindGroupLayout
noGPUBindGroupLayout = Nothing
{-# INLINE noGPUBindGroupLayout #-}

foreign import javascript unsafe "(() => globalThis[\"GPUBindGroupLayout\"])" gTypeGPUBindGroupLayout :: GType

-- | Dictionary GPUBindGroupLayoutDescriptor (webgpu)
newtype GPUBindGroupLayoutDescriptor = GPUBindGroupLayoutDescriptor { unGPUBindGroupLayoutDescriptor :: JSVal }

instance Eq GPUBindGroupLayoutDescriptor where
  (GPUBindGroupLayoutDescriptor a) == (GPUBindGroupLayoutDescriptor b) = js_eq a b

instance PToJSVal GPUBindGroupLayoutDescriptor where
  pToJSVal = unGPUBindGroupLayoutDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindGroupLayoutDescriptor where
  pFromJSVal = GPUBindGroupLayoutDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindGroupLayoutDescriptor where
  toJSVal = return . unGPUBindGroupLayoutDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindGroupLayoutDescriptor where
  fromJSVal = return . fmap GPUBindGroupLayoutDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindGroupLayoutDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUBindGroupLayoutDescriptor

instance IsGObject GPUBindGroupLayoutDescriptor where
  typeGType _ = gTypeGPUBindGroupLayoutDescriptor
  {-# INLINE typeGType #-}

noGPUBindGroupLayoutDescriptor :: Maybe GPUBindGroupLayoutDescriptor
noGPUBindGroupLayoutDescriptor = Nothing
{-# INLINE noGPUBindGroupLayoutDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBindGroupLayoutDescriptor :: GType

-- | Dictionary GPUBindGroupLayoutEntry (webgpu)
newtype GPUBindGroupLayoutEntry = GPUBindGroupLayoutEntry { unGPUBindGroupLayoutEntry :: JSVal }

instance Eq GPUBindGroupLayoutEntry where
  (GPUBindGroupLayoutEntry a) == (GPUBindGroupLayoutEntry b) = js_eq a b

instance PToJSVal GPUBindGroupLayoutEntry where
  pToJSVal = unGPUBindGroupLayoutEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindGroupLayoutEntry where
  pFromJSVal = GPUBindGroupLayoutEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindGroupLayoutEntry where
  toJSVal = return . unGPUBindGroupLayoutEntry
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindGroupLayoutEntry where
  fromJSVal = return . fmap GPUBindGroupLayoutEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindGroupLayoutEntry
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUBindGroupLayoutEntry where
  typeGType _ = gTypeGPUBindGroupLayoutEntry
  {-# INLINE typeGType #-}

noGPUBindGroupLayoutEntry :: Maybe GPUBindGroupLayoutEntry
noGPUBindGroupLayoutEntry = Nothing
{-# INLINE noGPUBindGroupLayoutEntry #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBindGroupLayoutEntry :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUBindingCommandsMixin" (webgpu).
newtype GPUBindingCommandsMixin = GPUBindingCommandsMixin { unGPUBindingCommandsMixin :: JSVal }

instance Eq GPUBindingCommandsMixin where
  (GPUBindingCommandsMixin a) == (GPUBindingCommandsMixin b) = js_eq a b

instance PToJSVal GPUBindingCommandsMixin where
  pToJSVal = unGPUBindingCommandsMixin
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBindingCommandsMixin where
  pFromJSVal = GPUBindingCommandsMixin
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBindingCommandsMixin where
  toJSVal = return . unGPUBindingCommandsMixin
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBindingCommandsMixin where
  fromJSVal = return . fmap GPUBindingCommandsMixin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBindingCommandsMixin
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUBindingCommandsMixin o
toGPUBindingCommandsMixin :: IsGPUBindingCommandsMixin o => o -> GPUBindingCommandsMixin
toGPUBindingCommandsMixin = GPUBindingCommandsMixin . coerce

instance IsGPUBindingCommandsMixin GPUBindingCommandsMixin

instance IsGObject GPUBindingCommandsMixin where
  typeGType _ = gTypeGPUBindingCommandsMixin
  {-# INLINE typeGType #-}

noGPUBindingCommandsMixin :: Maybe GPUBindingCommandsMixin
noGPUBindingCommandsMixin = Nothing
{-# INLINE noGPUBindingCommandsMixin #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBindingCommandsMixin :: GType

-- | Dictionary GPUBlendComponent (webgpu)
newtype GPUBlendComponent = GPUBlendComponent { unGPUBlendComponent :: JSVal }

instance Eq GPUBlendComponent where
  (GPUBlendComponent a) == (GPUBlendComponent b) = js_eq a b

instance PToJSVal GPUBlendComponent where
  pToJSVal = unGPUBlendComponent
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBlendComponent where
  pFromJSVal = GPUBlendComponent
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBlendComponent where
  toJSVal = return . unGPUBlendComponent
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBlendComponent where
  fromJSVal = return . fmap GPUBlendComponent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBlendComponent
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUBlendComponent where
  typeGType _ = gTypeGPUBlendComponent
  {-# INLINE typeGType #-}

noGPUBlendComponent :: Maybe GPUBlendComponent
noGPUBlendComponent = Nothing
{-# INLINE noGPUBlendComponent #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBlendComponent :: GType

-- | Dictionary GPUBlendState (webgpu)
newtype GPUBlendState = GPUBlendState { unGPUBlendState :: JSVal }

instance Eq GPUBlendState where
  (GPUBlendState a) == (GPUBlendState b) = js_eq a b

instance PToJSVal GPUBlendState where
  pToJSVal = unGPUBlendState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBlendState where
  pFromJSVal = GPUBlendState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBlendState where
  toJSVal = return . unGPUBlendState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBlendState where
  fromJSVal = return . fmap GPUBlendState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBlendState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUBlendState where
  typeGType _ = gTypeGPUBlendState
  {-# INLINE typeGType #-}

noGPUBlendState :: Maybe GPUBlendState
noGPUBlendState = Nothing
{-# INLINE noGPUBlendState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBlendState :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUBuffer" (webgpu).
newtype GPUBuffer = GPUBuffer { unGPUBuffer :: JSVal }

instance Eq GPUBuffer where
  (GPUBuffer a) == (GPUBuffer b) = js_eq a b

instance PToJSVal GPUBuffer where
  pToJSVal = unGPUBuffer
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBuffer where
  pFromJSVal = GPUBuffer
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBuffer where
  toJSVal = return . unGPUBuffer
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBuffer where
  fromJSVal = return . fmap GPUBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBuffer
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUBuffer

instance IsGObject GPUBuffer where
  typeGType _ = gTypeGPUBuffer
  {-# INLINE typeGType #-}

noGPUBuffer :: Maybe GPUBuffer
noGPUBuffer = Nothing
{-# INLINE noGPUBuffer #-}

foreign import javascript unsafe "(() => globalThis[\"GPUBuffer\"])" gTypeGPUBuffer :: GType

-- | Dictionary GPUBufferBinding (webgpu)
newtype GPUBufferBinding = GPUBufferBinding { unGPUBufferBinding :: JSVal }

instance Eq GPUBufferBinding where
  (GPUBufferBinding a) == (GPUBufferBinding b) = js_eq a b

instance PToJSVal GPUBufferBinding where
  pToJSVal = unGPUBufferBinding
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBufferBinding where
  pFromJSVal = GPUBufferBinding
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBufferBinding where
  toJSVal = return . unGPUBufferBinding
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBufferBinding where
  fromJSVal = return . fmap GPUBufferBinding . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBufferBinding
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUBufferBinding where
  typeGType _ = gTypeGPUBufferBinding
  {-# INLINE typeGType #-}

noGPUBufferBinding :: Maybe GPUBufferBinding
noGPUBufferBinding = Nothing
{-# INLINE noGPUBufferBinding #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBufferBinding :: GType

-- | Dictionary GPUBufferBindingLayout (webgpu)
newtype GPUBufferBindingLayout = GPUBufferBindingLayout { unGPUBufferBindingLayout :: JSVal }

instance Eq GPUBufferBindingLayout where
  (GPUBufferBindingLayout a) == (GPUBufferBindingLayout b) = js_eq a b

instance PToJSVal GPUBufferBindingLayout where
  pToJSVal = unGPUBufferBindingLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBufferBindingLayout where
  pFromJSVal = GPUBufferBindingLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBufferBindingLayout where
  toJSVal = return . unGPUBufferBindingLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBufferBindingLayout where
  fromJSVal = return . fmap GPUBufferBindingLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBufferBindingLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUBufferBindingLayout where
  typeGType _ = gTypeGPUBufferBindingLayout
  {-# INLINE typeGType #-}

noGPUBufferBindingLayout :: Maybe GPUBufferBindingLayout
noGPUBufferBindingLayout = Nothing
{-# INLINE noGPUBufferBindingLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBufferBindingLayout :: GType

-- | Dictionary GPUBufferDescriptor (webgpu)
newtype GPUBufferDescriptor = GPUBufferDescriptor { unGPUBufferDescriptor :: JSVal }

instance Eq GPUBufferDescriptor where
  (GPUBufferDescriptor a) == (GPUBufferDescriptor b) = js_eq a b

instance PToJSVal GPUBufferDescriptor where
  pToJSVal = unGPUBufferDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUBufferDescriptor where
  pFromJSVal = GPUBufferDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUBufferDescriptor where
  toJSVal = return . unGPUBufferDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUBufferDescriptor where
  fromJSVal = return . fmap GPUBufferDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUBufferDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUBufferDescriptor

instance IsGObject GPUBufferDescriptor where
  typeGType _ = gTypeGPUBufferDescriptor
  {-# INLINE typeGType #-}

noGPUBufferDescriptor :: Maybe GPUBufferDescriptor
noGPUBufferDescriptor = Nothing
{-# INLINE noGPUBufferDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUBufferDescriptor :: GType

-- | Dictionary GPUCanvasConfiguration (webgpu)
newtype GPUCanvasConfiguration = GPUCanvasConfiguration { unGPUCanvasConfiguration :: JSVal }

instance Eq GPUCanvasConfiguration where
  (GPUCanvasConfiguration a) == (GPUCanvasConfiguration b) = js_eq a b

instance PToJSVal GPUCanvasConfiguration where
  pToJSVal = unGPUCanvasConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCanvasConfiguration where
  pFromJSVal = GPUCanvasConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCanvasConfiguration where
  toJSVal = return . unGPUCanvasConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCanvasConfiguration where
  fromJSVal = return . fmap GPUCanvasConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCanvasConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUCanvasConfiguration where
  typeGType _ = gTypeGPUCanvasConfiguration
  {-# INLINE typeGType #-}

noGPUCanvasConfiguration :: Maybe GPUCanvasConfiguration
noGPUCanvasConfiguration = Nothing
{-# INLINE noGPUCanvasConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUCanvasConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUCanvasContext" (webgpu).
newtype GPUCanvasContext = GPUCanvasContext { unGPUCanvasContext :: JSVal }

instance Eq GPUCanvasContext where
  (GPUCanvasContext a) == (GPUCanvasContext b) = js_eq a b

instance PToJSVal GPUCanvasContext where
  pToJSVal = unGPUCanvasContext
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCanvasContext where
  pFromJSVal = GPUCanvasContext
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCanvasContext where
  toJSVal = return . unGPUCanvasContext
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCanvasContext where
  fromJSVal = return . fmap GPUCanvasContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCanvasContext
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUCanvasContext where
  typeGType _ = gTypeGPUCanvasContext
  {-# INLINE typeGType #-}

noGPUCanvasContext :: Maybe GPUCanvasContext
noGPUCanvasContext = Nothing
{-# INLINE noGPUCanvasContext #-}

foreign import javascript unsafe "(() => globalThis[\"GPUCanvasContext\"])" gTypeGPUCanvasContext :: GType

-- | Dictionary GPUCanvasToneMapping (webgpu)
newtype GPUCanvasToneMapping = GPUCanvasToneMapping { unGPUCanvasToneMapping :: JSVal }

instance Eq GPUCanvasToneMapping where
  (GPUCanvasToneMapping a) == (GPUCanvasToneMapping b) = js_eq a b

instance PToJSVal GPUCanvasToneMapping where
  pToJSVal = unGPUCanvasToneMapping
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCanvasToneMapping where
  pFromJSVal = GPUCanvasToneMapping
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCanvasToneMapping where
  toJSVal = return . unGPUCanvasToneMapping
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCanvasToneMapping where
  fromJSVal = return . fmap GPUCanvasToneMapping . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCanvasToneMapping
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUCanvasToneMapping where
  typeGType _ = gTypeGPUCanvasToneMapping
  {-# INLINE typeGType #-}

noGPUCanvasToneMapping :: Maybe GPUCanvasToneMapping
noGPUCanvasToneMapping = Nothing
{-# INLINE noGPUCanvasToneMapping #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUCanvasToneMapping :: GType

-- | Dictionary GPUColorDict (webgpu)
newtype GPUColorDict = GPUColorDict { unGPUColorDict :: JSVal }

instance Eq GPUColorDict where
  (GPUColorDict a) == (GPUColorDict b) = js_eq a b

instance PToJSVal GPUColorDict where
  pToJSVal = unGPUColorDict
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUColorDict where
  pFromJSVal = GPUColorDict
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUColorDict where
  toJSVal = return . unGPUColorDict
  {-# INLINE toJSVal #-}

instance FromJSVal GPUColorDict where
  fromJSVal = return . fmap GPUColorDict . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUColorDict
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUColorDict where
  typeGType _ = gTypeGPUColorDict
  {-# INLINE typeGType #-}

noGPUColorDict :: Maybe GPUColorDict
noGPUColorDict = Nothing
{-# INLINE noGPUColorDict #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUColorDict :: GType

-- | Dictionary GPUColorTargetState (webgpu)
newtype GPUColorTargetState = GPUColorTargetState { unGPUColorTargetState :: JSVal }

instance Eq GPUColorTargetState where
  (GPUColorTargetState a) == (GPUColorTargetState b) = js_eq a b

instance PToJSVal GPUColorTargetState where
  pToJSVal = unGPUColorTargetState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUColorTargetState where
  pFromJSVal = GPUColorTargetState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUColorTargetState where
  toJSVal = return . unGPUColorTargetState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUColorTargetState where
  fromJSVal = return . fmap GPUColorTargetState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUColorTargetState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUColorTargetState where
  typeGType _ = gTypeGPUColorTargetState
  {-# INLINE typeGType #-}

noGPUColorTargetState :: Maybe GPUColorTargetState
noGPUColorTargetState = Nothing
{-# INLINE noGPUColorTargetState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUColorTargetState :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUCommandBuffer" (webgpu).
newtype GPUCommandBuffer = GPUCommandBuffer { unGPUCommandBuffer :: JSVal }

instance Eq GPUCommandBuffer where
  (GPUCommandBuffer a) == (GPUCommandBuffer b) = js_eq a b

instance PToJSVal GPUCommandBuffer where
  pToJSVal = unGPUCommandBuffer
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCommandBuffer where
  pFromJSVal = GPUCommandBuffer
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCommandBuffer where
  toJSVal = return . unGPUCommandBuffer
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCommandBuffer where
  fromJSVal = return . fmap GPUCommandBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCommandBuffer
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUCommandBuffer

instance IsGObject GPUCommandBuffer where
  typeGType _ = gTypeGPUCommandBuffer
  {-# INLINE typeGType #-}

noGPUCommandBuffer :: Maybe GPUCommandBuffer
noGPUCommandBuffer = Nothing
{-# INLINE noGPUCommandBuffer #-}

foreign import javascript unsafe "(() => globalThis[\"GPUCommandBuffer\"])" gTypeGPUCommandBuffer :: GType

-- | Dictionary GPUCommandBufferDescriptor (webgpu)
newtype GPUCommandBufferDescriptor = GPUCommandBufferDescriptor { unGPUCommandBufferDescriptor :: JSVal }

instance Eq GPUCommandBufferDescriptor where
  (GPUCommandBufferDescriptor a) == (GPUCommandBufferDescriptor b) = js_eq a b

instance PToJSVal GPUCommandBufferDescriptor where
  pToJSVal = unGPUCommandBufferDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCommandBufferDescriptor where
  pFromJSVal = GPUCommandBufferDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCommandBufferDescriptor where
  toJSVal = return . unGPUCommandBufferDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCommandBufferDescriptor where
  fromJSVal = return . fmap GPUCommandBufferDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCommandBufferDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUCommandBufferDescriptor

instance IsGObject GPUCommandBufferDescriptor where
  typeGType _ = gTypeGPUCommandBufferDescriptor
  {-# INLINE typeGType #-}

noGPUCommandBufferDescriptor :: Maybe GPUCommandBufferDescriptor
noGPUCommandBufferDescriptor = Nothing
{-# INLINE noGPUCommandBufferDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUCommandBufferDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUCommandEncoder" (webgpu).
newtype GPUCommandEncoder = GPUCommandEncoder { unGPUCommandEncoder :: JSVal }

instance Eq GPUCommandEncoder where
  (GPUCommandEncoder a) == (GPUCommandEncoder b) = js_eq a b

instance PToJSVal GPUCommandEncoder where
  pToJSVal = unGPUCommandEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCommandEncoder where
  pFromJSVal = GPUCommandEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCommandEncoder where
  toJSVal = return . unGPUCommandEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCommandEncoder where
  fromJSVal = return . fmap GPUCommandEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCommandEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUDebugCommandsMixin GPUCommandEncoder
instance IsGPUObjectBase GPUCommandEncoder

instance IsGObject GPUCommandEncoder where
  typeGType _ = gTypeGPUCommandEncoder
  {-# INLINE typeGType #-}

noGPUCommandEncoder :: Maybe GPUCommandEncoder
noGPUCommandEncoder = Nothing
{-# INLINE noGPUCommandEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"GPUCommandEncoder\"])" gTypeGPUCommandEncoder :: GType

-- | Dictionary GPUCommandEncoderDescriptor (webgpu)
newtype GPUCommandEncoderDescriptor = GPUCommandEncoderDescriptor { unGPUCommandEncoderDescriptor :: JSVal }

instance Eq GPUCommandEncoderDescriptor where
  (GPUCommandEncoderDescriptor a) == (GPUCommandEncoderDescriptor b) = js_eq a b

instance PToJSVal GPUCommandEncoderDescriptor where
  pToJSVal = unGPUCommandEncoderDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCommandEncoderDescriptor where
  pFromJSVal = GPUCommandEncoderDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCommandEncoderDescriptor where
  toJSVal = return . unGPUCommandEncoderDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCommandEncoderDescriptor where
  fromJSVal = return . fmap GPUCommandEncoderDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCommandEncoderDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUCommandEncoderDescriptor

instance IsGObject GPUCommandEncoderDescriptor where
  typeGType _ = gTypeGPUCommandEncoderDescriptor
  {-# INLINE typeGType #-}

noGPUCommandEncoderDescriptor :: Maybe GPUCommandEncoderDescriptor
noGPUCommandEncoderDescriptor = Nothing
{-# INLINE noGPUCommandEncoderDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUCommandEncoderDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUCompilationInfo" (webgpu).
newtype GPUCompilationInfo = GPUCompilationInfo { unGPUCompilationInfo :: JSVal }

instance Eq GPUCompilationInfo where
  (GPUCompilationInfo a) == (GPUCompilationInfo b) = js_eq a b

instance PToJSVal GPUCompilationInfo where
  pToJSVal = unGPUCompilationInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCompilationInfo where
  pFromJSVal = GPUCompilationInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCompilationInfo where
  toJSVal = return . unGPUCompilationInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCompilationInfo where
  fromJSVal = return . fmap GPUCompilationInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCompilationInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUCompilationInfo where
  typeGType _ = gTypeGPUCompilationInfo
  {-# INLINE typeGType #-}

noGPUCompilationInfo :: Maybe GPUCompilationInfo
noGPUCompilationInfo = Nothing
{-# INLINE noGPUCompilationInfo #-}

foreign import javascript unsafe "(() => globalThis[\"GPUCompilationInfo\"])" gTypeGPUCompilationInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUCompilationMessage" (webgpu).
newtype GPUCompilationMessage = GPUCompilationMessage { unGPUCompilationMessage :: JSVal }

instance Eq GPUCompilationMessage where
  (GPUCompilationMessage a) == (GPUCompilationMessage b) = js_eq a b

instance PToJSVal GPUCompilationMessage where
  pToJSVal = unGPUCompilationMessage
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCompilationMessage where
  pFromJSVal = GPUCompilationMessage
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCompilationMessage where
  toJSVal = return . unGPUCompilationMessage
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCompilationMessage where
  fromJSVal = return . fmap GPUCompilationMessage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCompilationMessage
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUCompilationMessage where
  typeGType _ = gTypeGPUCompilationMessage
  {-# INLINE typeGType #-}

noGPUCompilationMessage :: Maybe GPUCompilationMessage
noGPUCompilationMessage = Nothing
{-# INLINE noGPUCompilationMessage #-}

foreign import javascript unsafe "(() => globalThis[\"GPUCompilationMessage\"])" gTypeGPUCompilationMessage :: GType

-- | Dictionary GPUComputePassDescriptor (webgpu)
newtype GPUComputePassDescriptor = GPUComputePassDescriptor { unGPUComputePassDescriptor :: JSVal }

instance Eq GPUComputePassDescriptor where
  (GPUComputePassDescriptor a) == (GPUComputePassDescriptor b) = js_eq a b

instance PToJSVal GPUComputePassDescriptor where
  pToJSVal = unGPUComputePassDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUComputePassDescriptor where
  pFromJSVal = GPUComputePassDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUComputePassDescriptor where
  toJSVal = return . unGPUComputePassDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUComputePassDescriptor where
  fromJSVal = return . fmap GPUComputePassDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUComputePassDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUComputePassDescriptor

instance IsGObject GPUComputePassDescriptor where
  typeGType _ = gTypeGPUComputePassDescriptor
  {-# INLINE typeGType #-}

noGPUComputePassDescriptor :: Maybe GPUComputePassDescriptor
noGPUComputePassDescriptor = Nothing
{-# INLINE noGPUComputePassDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUComputePassDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUComputePassEncoder" (webgpu).
newtype GPUComputePassEncoder = GPUComputePassEncoder { unGPUComputePassEncoder :: JSVal }

instance Eq GPUComputePassEncoder where
  (GPUComputePassEncoder a) == (GPUComputePassEncoder b) = js_eq a b

instance PToJSVal GPUComputePassEncoder where
  pToJSVal = unGPUComputePassEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUComputePassEncoder where
  pFromJSVal = GPUComputePassEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUComputePassEncoder where
  toJSVal = return . unGPUComputePassEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal GPUComputePassEncoder where
  fromJSVal = return . fmap GPUComputePassEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUComputePassEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUBindingCommandsMixin GPUComputePassEncoder
instance IsGPUDebugCommandsMixin GPUComputePassEncoder
instance IsGPUObjectBase GPUComputePassEncoder

instance IsGObject GPUComputePassEncoder where
  typeGType _ = gTypeGPUComputePassEncoder
  {-# INLINE typeGType #-}

noGPUComputePassEncoder :: Maybe GPUComputePassEncoder
noGPUComputePassEncoder = Nothing
{-# INLINE noGPUComputePassEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"GPUComputePassEncoder\"])" gTypeGPUComputePassEncoder :: GType

-- | Dictionary GPUComputePassTimestampWrites (webgpu)
newtype GPUComputePassTimestampWrites = GPUComputePassTimestampWrites { unGPUComputePassTimestampWrites :: JSVal }

instance Eq GPUComputePassTimestampWrites where
  (GPUComputePassTimestampWrites a) == (GPUComputePassTimestampWrites b) = js_eq a b

instance PToJSVal GPUComputePassTimestampWrites where
  pToJSVal = unGPUComputePassTimestampWrites
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUComputePassTimestampWrites where
  pFromJSVal = GPUComputePassTimestampWrites
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUComputePassTimestampWrites where
  toJSVal = return . unGPUComputePassTimestampWrites
  {-# INLINE toJSVal #-}

instance FromJSVal GPUComputePassTimestampWrites where
  fromJSVal = return . fmap GPUComputePassTimestampWrites . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUComputePassTimestampWrites
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUComputePassTimestampWrites where
  typeGType _ = gTypeGPUComputePassTimestampWrites
  {-# INLINE typeGType #-}

noGPUComputePassTimestampWrites :: Maybe GPUComputePassTimestampWrites
noGPUComputePassTimestampWrites = Nothing
{-# INLINE noGPUComputePassTimestampWrites #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUComputePassTimestampWrites :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUComputePipeline" (webgpu).
newtype GPUComputePipeline = GPUComputePipeline { unGPUComputePipeline :: JSVal }

instance Eq GPUComputePipeline where
  (GPUComputePipeline a) == (GPUComputePipeline b) = js_eq a b

instance PToJSVal GPUComputePipeline where
  pToJSVal = unGPUComputePipeline
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUComputePipeline where
  pFromJSVal = GPUComputePipeline
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUComputePipeline where
  toJSVal = return . unGPUComputePipeline
  {-# INLINE toJSVal #-}

instance FromJSVal GPUComputePipeline where
  fromJSVal = return . fmap GPUComputePipeline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUComputePipeline
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUComputePipeline
instance IsGPUPipelineBase GPUComputePipeline

instance IsGObject GPUComputePipeline where
  typeGType _ = gTypeGPUComputePipeline
  {-# INLINE typeGType #-}

noGPUComputePipeline :: Maybe GPUComputePipeline
noGPUComputePipeline = Nothing
{-# INLINE noGPUComputePipeline #-}

foreign import javascript unsafe "(() => globalThis[\"GPUComputePipeline\"])" gTypeGPUComputePipeline :: GType

-- | Dictionary GPUComputePipelineDescriptor (webgpu)
newtype GPUComputePipelineDescriptor = GPUComputePipelineDescriptor { unGPUComputePipelineDescriptor :: JSVal }

instance Eq GPUComputePipelineDescriptor where
  (GPUComputePipelineDescriptor a) == (GPUComputePipelineDescriptor b) = js_eq a b

instance PToJSVal GPUComputePipelineDescriptor where
  pToJSVal = unGPUComputePipelineDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUComputePipelineDescriptor where
  pFromJSVal = GPUComputePipelineDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUComputePipelineDescriptor where
  toJSVal = return . unGPUComputePipelineDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUComputePipelineDescriptor where
  fromJSVal = return . fmap GPUComputePipelineDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUComputePipelineDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUPipelineDescriptorBase GPUComputePipelineDescriptor
instance IsGPUObjectDescriptorBase GPUComputePipelineDescriptor

instance IsGObject GPUComputePipelineDescriptor where
  typeGType _ = gTypeGPUComputePipelineDescriptor
  {-# INLINE typeGType #-}

noGPUComputePipelineDescriptor :: Maybe GPUComputePipelineDescriptor
noGPUComputePipelineDescriptor = Nothing
{-# INLINE noGPUComputePipelineDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUComputePipelineDescriptor :: GType

-- | Dictionary GPUCopyExternalImageDestInfo (webgpu)
newtype GPUCopyExternalImageDestInfo = GPUCopyExternalImageDestInfo { unGPUCopyExternalImageDestInfo :: JSVal }

instance Eq GPUCopyExternalImageDestInfo where
  (GPUCopyExternalImageDestInfo a) == (GPUCopyExternalImageDestInfo b) = js_eq a b

instance PToJSVal GPUCopyExternalImageDestInfo where
  pToJSVal = unGPUCopyExternalImageDestInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCopyExternalImageDestInfo where
  pFromJSVal = GPUCopyExternalImageDestInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCopyExternalImageDestInfo where
  toJSVal = return . unGPUCopyExternalImageDestInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCopyExternalImageDestInfo where
  fromJSVal = return . fmap GPUCopyExternalImageDestInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCopyExternalImageDestInfo
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUTexelCopyTextureInfo GPUCopyExternalImageDestInfo

instance IsGObject GPUCopyExternalImageDestInfo where
  typeGType _ = gTypeGPUCopyExternalImageDestInfo
  {-# INLINE typeGType #-}

noGPUCopyExternalImageDestInfo :: Maybe GPUCopyExternalImageDestInfo
noGPUCopyExternalImageDestInfo = Nothing
{-# INLINE noGPUCopyExternalImageDestInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUCopyExternalImageDestInfo :: GType

-- | Dictionary GPUCopyExternalImageSourceInfo (webgpu)
newtype GPUCopyExternalImageSourceInfo = GPUCopyExternalImageSourceInfo { unGPUCopyExternalImageSourceInfo :: JSVal }

instance Eq GPUCopyExternalImageSourceInfo where
  (GPUCopyExternalImageSourceInfo a) == (GPUCopyExternalImageSourceInfo b) = js_eq a b

instance PToJSVal GPUCopyExternalImageSourceInfo where
  pToJSVal = unGPUCopyExternalImageSourceInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUCopyExternalImageSourceInfo where
  pFromJSVal = GPUCopyExternalImageSourceInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUCopyExternalImageSourceInfo where
  toJSVal = return . unGPUCopyExternalImageSourceInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUCopyExternalImageSourceInfo where
  fromJSVal = return . fmap GPUCopyExternalImageSourceInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUCopyExternalImageSourceInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUCopyExternalImageSourceInfo where
  typeGType _ = gTypeGPUCopyExternalImageSourceInfo
  {-# INLINE typeGType #-}

noGPUCopyExternalImageSourceInfo :: Maybe GPUCopyExternalImageSourceInfo
noGPUCopyExternalImageSourceInfo = Nothing
{-# INLINE noGPUCopyExternalImageSourceInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUCopyExternalImageSourceInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUDebugCommandsMixin" (webgpu).
newtype GPUDebugCommandsMixin = GPUDebugCommandsMixin { unGPUDebugCommandsMixin :: JSVal }

instance Eq GPUDebugCommandsMixin where
  (GPUDebugCommandsMixin a) == (GPUDebugCommandsMixin b) = js_eq a b

instance PToJSVal GPUDebugCommandsMixin where
  pToJSVal = unGPUDebugCommandsMixin
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUDebugCommandsMixin where
  pFromJSVal = GPUDebugCommandsMixin
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUDebugCommandsMixin where
  toJSVal = return . unGPUDebugCommandsMixin
  {-# INLINE toJSVal #-}

instance FromJSVal GPUDebugCommandsMixin where
  fromJSVal = return . fmap GPUDebugCommandsMixin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUDebugCommandsMixin
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUDebugCommandsMixin o
toGPUDebugCommandsMixin :: IsGPUDebugCommandsMixin o => o -> GPUDebugCommandsMixin
toGPUDebugCommandsMixin = GPUDebugCommandsMixin . coerce

instance IsGPUDebugCommandsMixin GPUDebugCommandsMixin

instance IsGObject GPUDebugCommandsMixin where
  typeGType _ = gTypeGPUDebugCommandsMixin
  {-# INLINE typeGType #-}

noGPUDebugCommandsMixin :: Maybe GPUDebugCommandsMixin
noGPUDebugCommandsMixin = Nothing
{-# INLINE noGPUDebugCommandsMixin #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUDebugCommandsMixin :: GType

-- | Dictionary GPUDepthStencilState (webgpu)
newtype GPUDepthStencilState = GPUDepthStencilState { unGPUDepthStencilState :: JSVal }

instance Eq GPUDepthStencilState where
  (GPUDepthStencilState a) == (GPUDepthStencilState b) = js_eq a b

instance PToJSVal GPUDepthStencilState where
  pToJSVal = unGPUDepthStencilState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUDepthStencilState where
  pFromJSVal = GPUDepthStencilState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUDepthStencilState where
  toJSVal = return . unGPUDepthStencilState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUDepthStencilState where
  fromJSVal = return . fmap GPUDepthStencilState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUDepthStencilState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUDepthStencilState where
  typeGType _ = gTypeGPUDepthStencilState
  {-# INLINE typeGType #-}

noGPUDepthStencilState :: Maybe GPUDepthStencilState
noGPUDepthStencilState = Nothing
{-# INLINE noGPUDepthStencilState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUDepthStencilState :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUDevice" (webgpu).
newtype GPUDevice = GPUDevice { unGPUDevice :: JSVal }

instance Eq GPUDevice where
  (GPUDevice a) == (GPUDevice b) = js_eq a b

instance PToJSVal GPUDevice where
  pToJSVal = unGPUDevice
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUDevice where
  pFromJSVal = GPUDevice
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUDevice where
  toJSVal = return . unGPUDevice
  {-# INLINE toJSVal #-}

instance FromJSVal GPUDevice where
  fromJSVal = return . fmap GPUDevice . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUDevice
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUDevice
instance IsEventTarget GPUDevice

instance IsGObject GPUDevice where
  typeGType _ = gTypeGPUDevice
  {-# INLINE typeGType #-}

noGPUDevice :: Maybe GPUDevice
noGPUDevice = Nothing
{-# INLINE noGPUDevice #-}

foreign import javascript unsafe "(() => globalThis[\"GPUDevice\"])" gTypeGPUDevice :: GType

-- | Dictionary GPUDeviceDescriptor (webgpu)
newtype GPUDeviceDescriptor = GPUDeviceDescriptor { unGPUDeviceDescriptor :: JSVal }

instance Eq GPUDeviceDescriptor where
  (GPUDeviceDescriptor a) == (GPUDeviceDescriptor b) = js_eq a b

instance PToJSVal GPUDeviceDescriptor where
  pToJSVal = unGPUDeviceDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUDeviceDescriptor where
  pFromJSVal = GPUDeviceDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUDeviceDescriptor where
  toJSVal = return . unGPUDeviceDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUDeviceDescriptor where
  fromJSVal = return . fmap GPUDeviceDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUDeviceDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUDeviceDescriptor

instance IsGObject GPUDeviceDescriptor where
  typeGType _ = gTypeGPUDeviceDescriptor
  {-# INLINE typeGType #-}

noGPUDeviceDescriptor :: Maybe GPUDeviceDescriptor
noGPUDeviceDescriptor = Nothing
{-# INLINE noGPUDeviceDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUDeviceDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUDeviceLostInfo" (webgpu).
newtype GPUDeviceLostInfo = GPUDeviceLostInfo { unGPUDeviceLostInfo :: JSVal }

instance Eq GPUDeviceLostInfo where
  (GPUDeviceLostInfo a) == (GPUDeviceLostInfo b) = js_eq a b

instance PToJSVal GPUDeviceLostInfo where
  pToJSVal = unGPUDeviceLostInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUDeviceLostInfo where
  pFromJSVal = GPUDeviceLostInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUDeviceLostInfo where
  toJSVal = return . unGPUDeviceLostInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUDeviceLostInfo where
  fromJSVal = return . fmap GPUDeviceLostInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUDeviceLostInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUDeviceLostInfo where
  typeGType _ = gTypeGPUDeviceLostInfo
  {-# INLINE typeGType #-}

noGPUDeviceLostInfo :: Maybe GPUDeviceLostInfo
noGPUDeviceLostInfo = Nothing
{-# INLINE noGPUDeviceLostInfo #-}

foreign import javascript unsafe "(() => globalThis[\"GPUDeviceLostInfo\"])" gTypeGPUDeviceLostInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUError" (webgpu).
newtype GPUError = GPUError { unGPUError :: JSVal }

instance Eq GPUError where
  (GPUError a) == (GPUError b) = js_eq a b

instance PToJSVal GPUError where
  pToJSVal = unGPUError
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUError where
  pFromJSVal = GPUError
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUError where
  toJSVal = return . unGPUError
  {-# INLINE toJSVal #-}

instance FromJSVal GPUError where
  fromJSVal = return . fmap GPUError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUError
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUError o
toGPUError :: IsGPUError o => o -> GPUError
toGPUError = GPUError . coerce

instance IsGPUError GPUError

instance IsGObject GPUError where
  typeGType _ = gTypeGPUError
  {-# INLINE typeGType #-}

noGPUError :: Maybe GPUError
noGPUError = Nothing
{-# INLINE noGPUError #-}

foreign import javascript unsafe "(() => globalThis[\"GPUError\"])" gTypeGPUError :: GType

-- | Dictionary GPUExtent3DDict (webgpu)
newtype GPUExtent3DDict = GPUExtent3DDict { unGPUExtent3DDict :: JSVal }

instance Eq GPUExtent3DDict where
  (GPUExtent3DDict a) == (GPUExtent3DDict b) = js_eq a b

instance PToJSVal GPUExtent3DDict where
  pToJSVal = unGPUExtent3DDict
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUExtent3DDict where
  pFromJSVal = GPUExtent3DDict
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUExtent3DDict where
  toJSVal = return . unGPUExtent3DDict
  {-# INLINE toJSVal #-}

instance FromJSVal GPUExtent3DDict where
  fromJSVal = return . fmap GPUExtent3DDict . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUExtent3DDict
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUExtent3DDict where
  typeGType _ = gTypeGPUExtent3DDict
  {-# INLINE typeGType #-}

noGPUExtent3DDict :: Maybe GPUExtent3DDict
noGPUExtent3DDict = Nothing
{-# INLINE noGPUExtent3DDict #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUExtent3DDict :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUExternalTexture" (webgpu).
newtype GPUExternalTexture = GPUExternalTexture { unGPUExternalTexture :: JSVal }

instance Eq GPUExternalTexture where
  (GPUExternalTexture a) == (GPUExternalTexture b) = js_eq a b

instance PToJSVal GPUExternalTexture where
  pToJSVal = unGPUExternalTexture
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUExternalTexture where
  pFromJSVal = GPUExternalTexture
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUExternalTexture where
  toJSVal = return . unGPUExternalTexture
  {-# INLINE toJSVal #-}

instance FromJSVal GPUExternalTexture where
  fromJSVal = return . fmap GPUExternalTexture . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUExternalTexture
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUExternalTexture

instance IsGObject GPUExternalTexture where
  typeGType _ = gTypeGPUExternalTexture
  {-# INLINE typeGType #-}

noGPUExternalTexture :: Maybe GPUExternalTexture
noGPUExternalTexture = Nothing
{-# INLINE noGPUExternalTexture #-}

foreign import javascript unsafe "(() => globalThis[\"GPUExternalTexture\"])" gTypeGPUExternalTexture :: GType

-- | Dictionary GPUExternalTextureBindingLayout (webgpu)
newtype GPUExternalTextureBindingLayout = GPUExternalTextureBindingLayout { unGPUExternalTextureBindingLayout :: JSVal }

instance Eq GPUExternalTextureBindingLayout where
  (GPUExternalTextureBindingLayout a) == (GPUExternalTextureBindingLayout b) = js_eq a b

instance PToJSVal GPUExternalTextureBindingLayout where
  pToJSVal = unGPUExternalTextureBindingLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUExternalTextureBindingLayout where
  pFromJSVal = GPUExternalTextureBindingLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUExternalTextureBindingLayout where
  toJSVal = return . unGPUExternalTextureBindingLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUExternalTextureBindingLayout where
  fromJSVal = return . fmap GPUExternalTextureBindingLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUExternalTextureBindingLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUExternalTextureBindingLayout where
  typeGType _ = gTypeGPUExternalTextureBindingLayout
  {-# INLINE typeGType #-}

noGPUExternalTextureBindingLayout :: Maybe GPUExternalTextureBindingLayout
noGPUExternalTextureBindingLayout = Nothing
{-# INLINE noGPUExternalTextureBindingLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUExternalTextureBindingLayout :: GType

-- | Dictionary GPUExternalTextureDescriptor (webgpu)
newtype GPUExternalTextureDescriptor = GPUExternalTextureDescriptor { unGPUExternalTextureDescriptor :: JSVal }

instance Eq GPUExternalTextureDescriptor where
  (GPUExternalTextureDescriptor a) == (GPUExternalTextureDescriptor b) = js_eq a b

instance PToJSVal GPUExternalTextureDescriptor where
  pToJSVal = unGPUExternalTextureDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUExternalTextureDescriptor where
  pFromJSVal = GPUExternalTextureDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUExternalTextureDescriptor where
  toJSVal = return . unGPUExternalTextureDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUExternalTextureDescriptor where
  fromJSVal = return . fmap GPUExternalTextureDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUExternalTextureDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUExternalTextureDescriptor

instance IsGObject GPUExternalTextureDescriptor where
  typeGType _ = gTypeGPUExternalTextureDescriptor
  {-# INLINE typeGType #-}

noGPUExternalTextureDescriptor :: Maybe GPUExternalTextureDescriptor
noGPUExternalTextureDescriptor = Nothing
{-# INLINE noGPUExternalTextureDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUExternalTextureDescriptor :: GType

-- | Dictionary GPUFragmentState (webgpu)
newtype GPUFragmentState = GPUFragmentState { unGPUFragmentState :: JSVal }

instance Eq GPUFragmentState where
  (GPUFragmentState a) == (GPUFragmentState b) = js_eq a b

instance PToJSVal GPUFragmentState where
  pToJSVal = unGPUFragmentState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUFragmentState where
  pFromJSVal = GPUFragmentState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUFragmentState where
  toJSVal = return . unGPUFragmentState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUFragmentState where
  fromJSVal = return . fmap GPUFragmentState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUFragmentState
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUProgrammableStage GPUFragmentState

instance IsGObject GPUFragmentState where
  typeGType _ = gTypeGPUFragmentState
  {-# INLINE typeGType #-}

noGPUFragmentState :: Maybe GPUFragmentState
noGPUFragmentState = Nothing
{-# INLINE noGPUFragmentState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUFragmentState :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUInternalError" (webgpu).
newtype GPUInternalError = GPUInternalError { unGPUInternalError :: JSVal }

instance Eq GPUInternalError where
  (GPUInternalError a) == (GPUInternalError b) = js_eq a b

instance PToJSVal GPUInternalError where
  pToJSVal = unGPUInternalError
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUInternalError where
  pFromJSVal = GPUInternalError
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUInternalError where
  toJSVal = return . unGPUInternalError
  {-# INLINE toJSVal #-}

instance FromJSVal GPUInternalError where
  fromJSVal = return . fmap GPUInternalError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUInternalError
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUError GPUInternalError

instance IsGObject GPUInternalError where
  typeGType _ = gTypeGPUInternalError
  {-# INLINE typeGType #-}

noGPUInternalError :: Maybe GPUInternalError
noGPUInternalError = Nothing
{-# INLINE noGPUInternalError #-}

foreign import javascript unsafe "(() => globalThis[\"GPUInternalError\"])" gTypeGPUInternalError :: GType

-- | Dictionary GPUMultisampleState (webgpu)
newtype GPUMultisampleState = GPUMultisampleState { unGPUMultisampleState :: JSVal }

instance Eq GPUMultisampleState where
  (GPUMultisampleState a) == (GPUMultisampleState b) = js_eq a b

instance PToJSVal GPUMultisampleState where
  pToJSVal = unGPUMultisampleState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUMultisampleState where
  pFromJSVal = GPUMultisampleState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUMultisampleState where
  toJSVal = return . unGPUMultisampleState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUMultisampleState where
  fromJSVal = return . fmap GPUMultisampleState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUMultisampleState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUMultisampleState where
  typeGType _ = gTypeGPUMultisampleState
  {-# INLINE typeGType #-}

noGPUMultisampleState :: Maybe GPUMultisampleState
noGPUMultisampleState = Nothing
{-# INLINE noGPUMultisampleState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUMultisampleState :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUObjectBase" (webgpu).
newtype GPUObjectBase = GPUObjectBase { unGPUObjectBase :: JSVal }

instance Eq GPUObjectBase where
  (GPUObjectBase a) == (GPUObjectBase b) = js_eq a b

instance PToJSVal GPUObjectBase where
  pToJSVal = unGPUObjectBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUObjectBase where
  pFromJSVal = GPUObjectBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUObjectBase where
  toJSVal = return . unGPUObjectBase
  {-# INLINE toJSVal #-}

instance FromJSVal GPUObjectBase where
  fromJSVal = return . fmap GPUObjectBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUObjectBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUObjectBase o
toGPUObjectBase :: IsGPUObjectBase o => o -> GPUObjectBase
toGPUObjectBase = GPUObjectBase . coerce

instance IsGPUObjectBase GPUObjectBase

instance IsGObject GPUObjectBase where
  typeGType _ = gTypeGPUObjectBase
  {-# INLINE typeGType #-}

noGPUObjectBase :: Maybe GPUObjectBase
noGPUObjectBase = Nothing
{-# INLINE noGPUObjectBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUObjectBase :: GType

-- | Dictionary GPUObjectDescriptorBase (webgpu)
newtype GPUObjectDescriptorBase = GPUObjectDescriptorBase { unGPUObjectDescriptorBase :: JSVal }

instance Eq GPUObjectDescriptorBase where
  (GPUObjectDescriptorBase a) == (GPUObjectDescriptorBase b) = js_eq a b

instance PToJSVal GPUObjectDescriptorBase where
  pToJSVal = unGPUObjectDescriptorBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUObjectDescriptorBase where
  pFromJSVal = GPUObjectDescriptorBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUObjectDescriptorBase where
  toJSVal = return . unGPUObjectDescriptorBase
  {-# INLINE toJSVal #-}

instance FromJSVal GPUObjectDescriptorBase where
  fromJSVal = return . fmap GPUObjectDescriptorBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUObjectDescriptorBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUObjectDescriptorBase o
toGPUObjectDescriptorBase :: IsGPUObjectDescriptorBase o => o -> GPUObjectDescriptorBase
toGPUObjectDescriptorBase = GPUObjectDescriptorBase . coerce

instance IsGPUObjectDescriptorBase GPUObjectDescriptorBase

instance IsGObject GPUObjectDescriptorBase where
  typeGType _ = gTypeGPUObjectDescriptorBase
  {-# INLINE typeGType #-}

noGPUObjectDescriptorBase :: Maybe GPUObjectDescriptorBase
noGPUObjectDescriptorBase = Nothing
{-# INLINE noGPUObjectDescriptorBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUObjectDescriptorBase :: GType

-- | Dictionary GPUOrigin2DDict (webgpu)
newtype GPUOrigin2DDict = GPUOrigin2DDict { unGPUOrigin2DDict :: JSVal }

instance Eq GPUOrigin2DDict where
  (GPUOrigin2DDict a) == (GPUOrigin2DDict b) = js_eq a b

instance PToJSVal GPUOrigin2DDict where
  pToJSVal = unGPUOrigin2DDict
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUOrigin2DDict where
  pFromJSVal = GPUOrigin2DDict
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUOrigin2DDict where
  toJSVal = return . unGPUOrigin2DDict
  {-# INLINE toJSVal #-}

instance FromJSVal GPUOrigin2DDict where
  fromJSVal = return . fmap GPUOrigin2DDict . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUOrigin2DDict
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUOrigin2DDict where
  typeGType _ = gTypeGPUOrigin2DDict
  {-# INLINE typeGType #-}

noGPUOrigin2DDict :: Maybe GPUOrigin2DDict
noGPUOrigin2DDict = Nothing
{-# INLINE noGPUOrigin2DDict #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUOrigin2DDict :: GType

-- | Dictionary GPUOrigin3DDict (webgpu)
newtype GPUOrigin3DDict = GPUOrigin3DDict { unGPUOrigin3DDict :: JSVal }

instance Eq GPUOrigin3DDict where
  (GPUOrigin3DDict a) == (GPUOrigin3DDict b) = js_eq a b

instance PToJSVal GPUOrigin3DDict where
  pToJSVal = unGPUOrigin3DDict
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUOrigin3DDict where
  pFromJSVal = GPUOrigin3DDict
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUOrigin3DDict where
  toJSVal = return . unGPUOrigin3DDict
  {-# INLINE toJSVal #-}

instance FromJSVal GPUOrigin3DDict where
  fromJSVal = return . fmap GPUOrigin3DDict . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUOrigin3DDict
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUOrigin3DDict where
  typeGType _ = gTypeGPUOrigin3DDict
  {-# INLINE typeGType #-}

noGPUOrigin3DDict :: Maybe GPUOrigin3DDict
noGPUOrigin3DDict = Nothing
{-# INLINE noGPUOrigin3DDict #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUOrigin3DDict :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUOutOfMemoryError" (webgpu).
newtype GPUOutOfMemoryError = GPUOutOfMemoryError { unGPUOutOfMemoryError :: JSVal }

instance Eq GPUOutOfMemoryError where
  (GPUOutOfMemoryError a) == (GPUOutOfMemoryError b) = js_eq a b

instance PToJSVal GPUOutOfMemoryError where
  pToJSVal = unGPUOutOfMemoryError
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUOutOfMemoryError where
  pFromJSVal = GPUOutOfMemoryError
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUOutOfMemoryError where
  toJSVal = return . unGPUOutOfMemoryError
  {-# INLINE toJSVal #-}

instance FromJSVal GPUOutOfMemoryError where
  fromJSVal = return . fmap GPUOutOfMemoryError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUOutOfMemoryError
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUError GPUOutOfMemoryError

instance IsGObject GPUOutOfMemoryError where
  typeGType _ = gTypeGPUOutOfMemoryError
  {-# INLINE typeGType #-}

noGPUOutOfMemoryError :: Maybe GPUOutOfMemoryError
noGPUOutOfMemoryError = Nothing
{-# INLINE noGPUOutOfMemoryError #-}

foreign import javascript unsafe "(() => globalThis[\"GPUOutOfMemoryError\"])" gTypeGPUOutOfMemoryError :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUPipelineBase" (webgpu).
newtype GPUPipelineBase = GPUPipelineBase { unGPUPipelineBase :: JSVal }

instance Eq GPUPipelineBase where
  (GPUPipelineBase a) == (GPUPipelineBase b) = js_eq a b

instance PToJSVal GPUPipelineBase where
  pToJSVal = unGPUPipelineBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineBase where
  pFromJSVal = GPUPipelineBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineBase where
  toJSVal = return . unGPUPipelineBase
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineBase where
  fromJSVal = return . fmap GPUPipelineBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUPipelineBase o
toGPUPipelineBase :: IsGPUPipelineBase o => o -> GPUPipelineBase
toGPUPipelineBase = GPUPipelineBase . coerce

instance IsGPUPipelineBase GPUPipelineBase

instance IsGObject GPUPipelineBase where
  typeGType _ = gTypeGPUPipelineBase
  {-# INLINE typeGType #-}

noGPUPipelineBase :: Maybe GPUPipelineBase
noGPUPipelineBase = Nothing
{-# INLINE noGPUPipelineBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUPipelineBase :: GType

-- | Dictionary GPUPipelineDescriptorBase (webgpu)
newtype GPUPipelineDescriptorBase = GPUPipelineDescriptorBase { unGPUPipelineDescriptorBase :: JSVal }

instance Eq GPUPipelineDescriptorBase where
  (GPUPipelineDescriptorBase a) == (GPUPipelineDescriptorBase b) = js_eq a b

instance PToJSVal GPUPipelineDescriptorBase where
  pToJSVal = unGPUPipelineDescriptorBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineDescriptorBase where
  pFromJSVal = GPUPipelineDescriptorBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineDescriptorBase where
  toJSVal = return . unGPUPipelineDescriptorBase
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineDescriptorBase where
  fromJSVal = return . fmap GPUPipelineDescriptorBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineDescriptorBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGPUObjectDescriptorBase o, IsGObject o) => IsGPUPipelineDescriptorBase o
toGPUPipelineDescriptorBase :: IsGPUPipelineDescriptorBase o => o -> GPUPipelineDescriptorBase
toGPUPipelineDescriptorBase = GPUPipelineDescriptorBase . coerce

instance IsGPUPipelineDescriptorBase GPUPipelineDescriptorBase
instance IsGPUObjectDescriptorBase GPUPipelineDescriptorBase

instance IsGObject GPUPipelineDescriptorBase where
  typeGType _ = gTypeGPUPipelineDescriptorBase
  {-# INLINE typeGType #-}

noGPUPipelineDescriptorBase :: Maybe GPUPipelineDescriptorBase
noGPUPipelineDescriptorBase = Nothing
{-# INLINE noGPUPipelineDescriptorBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUPipelineDescriptorBase :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUPipelineError" (webgpu).
newtype GPUPipelineError = GPUPipelineError { unGPUPipelineError :: JSVal }

instance Eq GPUPipelineError where
  (GPUPipelineError a) == (GPUPipelineError b) = js_eq a b

instance PToJSVal GPUPipelineError where
  pToJSVal = unGPUPipelineError
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineError where
  pFromJSVal = GPUPipelineError
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineError where
  toJSVal = return . unGPUPipelineError
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineError where
  fromJSVal = return . fmap GPUPipelineError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineError
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMException GPUPipelineError

instance IsGObject GPUPipelineError where
  typeGType _ = gTypeGPUPipelineError
  {-# INLINE typeGType #-}

noGPUPipelineError :: Maybe GPUPipelineError
noGPUPipelineError = Nothing
{-# INLINE noGPUPipelineError #-}

foreign import javascript unsafe "(() => globalThis[\"GPUPipelineError\"])" gTypeGPUPipelineError :: GType

-- | Dictionary GPUPipelineErrorInit (webgpu)
newtype GPUPipelineErrorInit = GPUPipelineErrorInit { unGPUPipelineErrorInit :: JSVal }

instance Eq GPUPipelineErrorInit where
  (GPUPipelineErrorInit a) == (GPUPipelineErrorInit b) = js_eq a b

instance PToJSVal GPUPipelineErrorInit where
  pToJSVal = unGPUPipelineErrorInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineErrorInit where
  pFromJSVal = GPUPipelineErrorInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineErrorInit where
  toJSVal = return . unGPUPipelineErrorInit
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineErrorInit where
  fromJSVal = return . fmap GPUPipelineErrorInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineErrorInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUPipelineErrorInit where
  typeGType _ = gTypeGPUPipelineErrorInit
  {-# INLINE typeGType #-}

noGPUPipelineErrorInit :: Maybe GPUPipelineErrorInit
noGPUPipelineErrorInit = Nothing
{-# INLINE noGPUPipelineErrorInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUPipelineErrorInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUPipelineLayout" (webgpu).
newtype GPUPipelineLayout = GPUPipelineLayout { unGPUPipelineLayout :: JSVal }

instance Eq GPUPipelineLayout where
  (GPUPipelineLayout a) == (GPUPipelineLayout b) = js_eq a b

instance PToJSVal GPUPipelineLayout where
  pToJSVal = unGPUPipelineLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineLayout where
  pFromJSVal = GPUPipelineLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineLayout where
  toJSVal = return . unGPUPipelineLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineLayout where
  fromJSVal = return . fmap GPUPipelineLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineLayout
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUPipelineLayout

instance IsGObject GPUPipelineLayout where
  typeGType _ = gTypeGPUPipelineLayout
  {-# INLINE typeGType #-}

noGPUPipelineLayout :: Maybe GPUPipelineLayout
noGPUPipelineLayout = Nothing
{-# INLINE noGPUPipelineLayout #-}

foreign import javascript unsafe "(() => globalThis[\"GPUPipelineLayout\"])" gTypeGPUPipelineLayout :: GType

-- | Dictionary GPUPipelineLayoutDescriptor (webgpu)
newtype GPUPipelineLayoutDescriptor = GPUPipelineLayoutDescriptor { unGPUPipelineLayoutDescriptor :: JSVal }

instance Eq GPUPipelineLayoutDescriptor where
  (GPUPipelineLayoutDescriptor a) == (GPUPipelineLayoutDescriptor b) = js_eq a b

instance PToJSVal GPUPipelineLayoutDescriptor where
  pToJSVal = unGPUPipelineLayoutDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPipelineLayoutDescriptor where
  pFromJSVal = GPUPipelineLayoutDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPipelineLayoutDescriptor where
  toJSVal = return . unGPUPipelineLayoutDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPipelineLayoutDescriptor where
  fromJSVal = return . fmap GPUPipelineLayoutDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPipelineLayoutDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUPipelineLayoutDescriptor

instance IsGObject GPUPipelineLayoutDescriptor where
  typeGType _ = gTypeGPUPipelineLayoutDescriptor
  {-# INLINE typeGType #-}

noGPUPipelineLayoutDescriptor :: Maybe GPUPipelineLayoutDescriptor
noGPUPipelineLayoutDescriptor = Nothing
{-# INLINE noGPUPipelineLayoutDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUPipelineLayoutDescriptor :: GType

-- | Dictionary GPUPrimitiveState (webgpu)
newtype GPUPrimitiveState = GPUPrimitiveState { unGPUPrimitiveState :: JSVal }

instance Eq GPUPrimitiveState where
  (GPUPrimitiveState a) == (GPUPrimitiveState b) = js_eq a b

instance PToJSVal GPUPrimitiveState where
  pToJSVal = unGPUPrimitiveState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUPrimitiveState where
  pFromJSVal = GPUPrimitiveState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUPrimitiveState where
  toJSVal = return . unGPUPrimitiveState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUPrimitiveState where
  fromJSVal = return . fmap GPUPrimitiveState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUPrimitiveState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUPrimitiveState where
  typeGType _ = gTypeGPUPrimitiveState
  {-# INLINE typeGType #-}

noGPUPrimitiveState :: Maybe GPUPrimitiveState
noGPUPrimitiveState = Nothing
{-# INLINE noGPUPrimitiveState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUPrimitiveState :: GType

-- | Dictionary GPUProgrammableStage (webgpu)
newtype GPUProgrammableStage = GPUProgrammableStage { unGPUProgrammableStage :: JSVal }

instance Eq GPUProgrammableStage where
  (GPUProgrammableStage a) == (GPUProgrammableStage b) = js_eq a b

instance PToJSVal GPUProgrammableStage where
  pToJSVal = unGPUProgrammableStage
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUProgrammableStage where
  pFromJSVal = GPUProgrammableStage
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUProgrammableStage where
  toJSVal = return . unGPUProgrammableStage
  {-# INLINE toJSVal #-}

instance FromJSVal GPUProgrammableStage where
  fromJSVal = return . fmap GPUProgrammableStage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUProgrammableStage
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUProgrammableStage o
toGPUProgrammableStage :: IsGPUProgrammableStage o => o -> GPUProgrammableStage
toGPUProgrammableStage = GPUProgrammableStage . coerce

instance IsGPUProgrammableStage GPUProgrammableStage

instance IsGObject GPUProgrammableStage where
  typeGType _ = gTypeGPUProgrammableStage
  {-# INLINE typeGType #-}

noGPUProgrammableStage :: Maybe GPUProgrammableStage
noGPUProgrammableStage = Nothing
{-# INLINE noGPUProgrammableStage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUProgrammableStage :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUQuerySet" (webgpu).
newtype GPUQuerySet = GPUQuerySet { unGPUQuerySet :: JSVal }

instance Eq GPUQuerySet where
  (GPUQuerySet a) == (GPUQuerySet b) = js_eq a b

instance PToJSVal GPUQuerySet where
  pToJSVal = unGPUQuerySet
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUQuerySet where
  pFromJSVal = GPUQuerySet
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUQuerySet where
  toJSVal = return . unGPUQuerySet
  {-# INLINE toJSVal #-}

instance FromJSVal GPUQuerySet where
  fromJSVal = return . fmap GPUQuerySet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUQuerySet
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUQuerySet

instance IsGObject GPUQuerySet where
  typeGType _ = gTypeGPUQuerySet
  {-# INLINE typeGType #-}

noGPUQuerySet :: Maybe GPUQuerySet
noGPUQuerySet = Nothing
{-# INLINE noGPUQuerySet #-}

foreign import javascript unsafe "(() => globalThis[\"GPUQuerySet\"])" gTypeGPUQuerySet :: GType

-- | Dictionary GPUQuerySetDescriptor (webgpu)
newtype GPUQuerySetDescriptor = GPUQuerySetDescriptor { unGPUQuerySetDescriptor :: JSVal }

instance Eq GPUQuerySetDescriptor where
  (GPUQuerySetDescriptor a) == (GPUQuerySetDescriptor b) = js_eq a b

instance PToJSVal GPUQuerySetDescriptor where
  pToJSVal = unGPUQuerySetDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUQuerySetDescriptor where
  pFromJSVal = GPUQuerySetDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUQuerySetDescriptor where
  toJSVal = return . unGPUQuerySetDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUQuerySetDescriptor where
  fromJSVal = return . fmap GPUQuerySetDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUQuerySetDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUQuerySetDescriptor

instance IsGObject GPUQuerySetDescriptor where
  typeGType _ = gTypeGPUQuerySetDescriptor
  {-# INLINE typeGType #-}

noGPUQuerySetDescriptor :: Maybe GPUQuerySetDescriptor
noGPUQuerySetDescriptor = Nothing
{-# INLINE noGPUQuerySetDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUQuerySetDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUQueue" (webgpu).
newtype GPUQueue = GPUQueue { unGPUQueue :: JSVal }

instance Eq GPUQueue where
  (GPUQueue a) == (GPUQueue b) = js_eq a b

instance PToJSVal GPUQueue where
  pToJSVal = unGPUQueue
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUQueue where
  pFromJSVal = GPUQueue
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUQueue where
  toJSVal = return . unGPUQueue
  {-# INLINE toJSVal #-}

instance FromJSVal GPUQueue where
  fromJSVal = return . fmap GPUQueue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUQueue
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUQueue

instance IsGObject GPUQueue where
  typeGType _ = gTypeGPUQueue
  {-# INLINE typeGType #-}

noGPUQueue :: Maybe GPUQueue
noGPUQueue = Nothing
{-# INLINE noGPUQueue #-}

foreign import javascript unsafe "(() => globalThis[\"GPUQueue\"])" gTypeGPUQueue :: GType

-- | Dictionary GPUQueueDescriptor (webgpu)
newtype GPUQueueDescriptor = GPUQueueDescriptor { unGPUQueueDescriptor :: JSVal }

instance Eq GPUQueueDescriptor where
  (GPUQueueDescriptor a) == (GPUQueueDescriptor b) = js_eq a b

instance PToJSVal GPUQueueDescriptor where
  pToJSVal = unGPUQueueDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUQueueDescriptor where
  pFromJSVal = GPUQueueDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUQueueDescriptor where
  toJSVal = return . unGPUQueueDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUQueueDescriptor where
  fromJSVal = return . fmap GPUQueueDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUQueueDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUQueueDescriptor

instance IsGObject GPUQueueDescriptor where
  typeGType _ = gTypeGPUQueueDescriptor
  {-# INLINE typeGType #-}

noGPUQueueDescriptor :: Maybe GPUQueueDescriptor
noGPUQueueDescriptor = Nothing
{-# INLINE noGPUQueueDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUQueueDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPURenderBundle" (webgpu).
newtype GPURenderBundle = GPURenderBundle { unGPURenderBundle :: JSVal }

instance Eq GPURenderBundle where
  (GPURenderBundle a) == (GPURenderBundle b) = js_eq a b

instance PToJSVal GPURenderBundle where
  pToJSVal = unGPURenderBundle
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderBundle where
  pFromJSVal = GPURenderBundle
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderBundle where
  toJSVal = return . unGPURenderBundle
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderBundle where
  fromJSVal = return . fmap GPURenderBundle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderBundle
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPURenderBundle

instance IsGObject GPURenderBundle where
  typeGType _ = gTypeGPURenderBundle
  {-# INLINE typeGType #-}

noGPURenderBundle :: Maybe GPURenderBundle
noGPURenderBundle = Nothing
{-# INLINE noGPURenderBundle #-}

foreign import javascript unsafe "(() => globalThis[\"GPURenderBundle\"])" gTypeGPURenderBundle :: GType

-- | Dictionary GPURenderBundleDescriptor (webgpu)
newtype GPURenderBundleDescriptor = GPURenderBundleDescriptor { unGPURenderBundleDescriptor :: JSVal }

instance Eq GPURenderBundleDescriptor where
  (GPURenderBundleDescriptor a) == (GPURenderBundleDescriptor b) = js_eq a b

instance PToJSVal GPURenderBundleDescriptor where
  pToJSVal = unGPURenderBundleDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderBundleDescriptor where
  pFromJSVal = GPURenderBundleDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderBundleDescriptor where
  toJSVal = return . unGPURenderBundleDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderBundleDescriptor where
  fromJSVal = return . fmap GPURenderBundleDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderBundleDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPURenderBundleDescriptor

instance IsGObject GPURenderBundleDescriptor where
  typeGType _ = gTypeGPURenderBundleDescriptor
  {-# INLINE typeGType #-}

noGPURenderBundleDescriptor :: Maybe GPURenderBundleDescriptor
noGPURenderBundleDescriptor = Nothing
{-# INLINE noGPURenderBundleDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderBundleDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPURenderBundleEncoder" (webgpu).
newtype GPURenderBundleEncoder = GPURenderBundleEncoder { unGPURenderBundleEncoder :: JSVal }

instance Eq GPURenderBundleEncoder where
  (GPURenderBundleEncoder a) == (GPURenderBundleEncoder b) = js_eq a b

instance PToJSVal GPURenderBundleEncoder where
  pToJSVal = unGPURenderBundleEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderBundleEncoder where
  pFromJSVal = GPURenderBundleEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderBundleEncoder where
  toJSVal = return . unGPURenderBundleEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderBundleEncoder where
  fromJSVal = return . fmap GPURenderBundleEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderBundleEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUBindingCommandsMixin GPURenderBundleEncoder
instance IsGPUDebugCommandsMixin GPURenderBundleEncoder
instance IsGPUObjectBase GPURenderBundleEncoder
instance IsGPURenderCommandsMixin GPURenderBundleEncoder

instance IsGObject GPURenderBundleEncoder where
  typeGType _ = gTypeGPURenderBundleEncoder
  {-# INLINE typeGType #-}

noGPURenderBundleEncoder :: Maybe GPURenderBundleEncoder
noGPURenderBundleEncoder = Nothing
{-# INLINE noGPURenderBundleEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"GPURenderBundleEncoder\"])" gTypeGPURenderBundleEncoder :: GType

-- | Dictionary GPURenderBundleEncoderDescriptor (webgpu)
newtype GPURenderBundleEncoderDescriptor = GPURenderBundleEncoderDescriptor { unGPURenderBundleEncoderDescriptor :: JSVal }

instance Eq GPURenderBundleEncoderDescriptor where
  (GPURenderBundleEncoderDescriptor a) == (GPURenderBundleEncoderDescriptor b) = js_eq a b

instance PToJSVal GPURenderBundleEncoderDescriptor where
  pToJSVal = unGPURenderBundleEncoderDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderBundleEncoderDescriptor where
  pFromJSVal = GPURenderBundleEncoderDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderBundleEncoderDescriptor where
  toJSVal = return . unGPURenderBundleEncoderDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderBundleEncoderDescriptor where
  fromJSVal = return . fmap GPURenderBundleEncoderDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderBundleEncoderDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPURenderPassLayout GPURenderBundleEncoderDescriptor
instance IsGPUObjectDescriptorBase GPURenderBundleEncoderDescriptor

instance IsGObject GPURenderBundleEncoderDescriptor where
  typeGType _ = gTypeGPURenderBundleEncoderDescriptor
  {-# INLINE typeGType #-}

noGPURenderBundleEncoderDescriptor :: Maybe GPURenderBundleEncoderDescriptor
noGPURenderBundleEncoderDescriptor = Nothing
{-# INLINE noGPURenderBundleEncoderDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderBundleEncoderDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPURenderCommandsMixin" (webgpu).
newtype GPURenderCommandsMixin = GPURenderCommandsMixin { unGPURenderCommandsMixin :: JSVal }

instance Eq GPURenderCommandsMixin where
  (GPURenderCommandsMixin a) == (GPURenderCommandsMixin b) = js_eq a b

instance PToJSVal GPURenderCommandsMixin where
  pToJSVal = unGPURenderCommandsMixin
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderCommandsMixin where
  pFromJSVal = GPURenderCommandsMixin
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderCommandsMixin where
  toJSVal = return . unGPURenderCommandsMixin
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderCommandsMixin where
  fromJSVal = return . fmap GPURenderCommandsMixin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderCommandsMixin
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPURenderCommandsMixin o
toGPURenderCommandsMixin :: IsGPURenderCommandsMixin o => o -> GPURenderCommandsMixin
toGPURenderCommandsMixin = GPURenderCommandsMixin . coerce

instance IsGPURenderCommandsMixin GPURenderCommandsMixin

instance IsGObject GPURenderCommandsMixin where
  typeGType _ = gTypeGPURenderCommandsMixin
  {-# INLINE typeGType #-}

noGPURenderCommandsMixin :: Maybe GPURenderCommandsMixin
noGPURenderCommandsMixin = Nothing
{-# INLINE noGPURenderCommandsMixin #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderCommandsMixin :: GType

-- | Dictionary GPURenderPassColorAttachment (webgpu)
newtype GPURenderPassColorAttachment = GPURenderPassColorAttachment { unGPURenderPassColorAttachment :: JSVal }

instance Eq GPURenderPassColorAttachment where
  (GPURenderPassColorAttachment a) == (GPURenderPassColorAttachment b) = js_eq a b

instance PToJSVal GPURenderPassColorAttachment where
  pToJSVal = unGPURenderPassColorAttachment
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPassColorAttachment where
  pFromJSVal = GPURenderPassColorAttachment
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPassColorAttachment where
  toJSVal = return . unGPURenderPassColorAttachment
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPassColorAttachment where
  fromJSVal = return . fmap GPURenderPassColorAttachment . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPassColorAttachment
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPURenderPassColorAttachment where
  typeGType _ = gTypeGPURenderPassColorAttachment
  {-# INLINE typeGType #-}

noGPURenderPassColorAttachment :: Maybe GPURenderPassColorAttachment
noGPURenderPassColorAttachment = Nothing
{-# INLINE noGPURenderPassColorAttachment #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderPassColorAttachment :: GType

-- | Dictionary GPURenderPassDepthStencilAttachment (webgpu)
newtype GPURenderPassDepthStencilAttachment = GPURenderPassDepthStencilAttachment { unGPURenderPassDepthStencilAttachment :: JSVal }

instance Eq GPURenderPassDepthStencilAttachment where
  (GPURenderPassDepthStencilAttachment a) == (GPURenderPassDepthStencilAttachment b) = js_eq a b

instance PToJSVal GPURenderPassDepthStencilAttachment where
  pToJSVal = unGPURenderPassDepthStencilAttachment
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPassDepthStencilAttachment where
  pFromJSVal = GPURenderPassDepthStencilAttachment
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPassDepthStencilAttachment where
  toJSVal = return . unGPURenderPassDepthStencilAttachment
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPassDepthStencilAttachment where
  fromJSVal = return . fmap GPURenderPassDepthStencilAttachment . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPassDepthStencilAttachment
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPURenderPassDepthStencilAttachment where
  typeGType _ = gTypeGPURenderPassDepthStencilAttachment
  {-# INLINE typeGType #-}

noGPURenderPassDepthStencilAttachment :: Maybe GPURenderPassDepthStencilAttachment
noGPURenderPassDepthStencilAttachment = Nothing
{-# INLINE noGPURenderPassDepthStencilAttachment #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderPassDepthStencilAttachment :: GType

-- | Dictionary GPURenderPassDescriptor (webgpu)
newtype GPURenderPassDescriptor = GPURenderPassDescriptor { unGPURenderPassDescriptor :: JSVal }

instance Eq GPURenderPassDescriptor where
  (GPURenderPassDescriptor a) == (GPURenderPassDescriptor b) = js_eq a b

instance PToJSVal GPURenderPassDescriptor where
  pToJSVal = unGPURenderPassDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPassDescriptor where
  pFromJSVal = GPURenderPassDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPassDescriptor where
  toJSVal = return . unGPURenderPassDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPassDescriptor where
  fromJSVal = return . fmap GPURenderPassDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPassDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPURenderPassDescriptor

instance IsGObject GPURenderPassDescriptor where
  typeGType _ = gTypeGPURenderPassDescriptor
  {-# INLINE typeGType #-}

noGPURenderPassDescriptor :: Maybe GPURenderPassDescriptor
noGPURenderPassDescriptor = Nothing
{-# INLINE noGPURenderPassDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderPassDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPURenderPassEncoder" (webgpu).
newtype GPURenderPassEncoder = GPURenderPassEncoder { unGPURenderPassEncoder :: JSVal }

instance Eq GPURenderPassEncoder where
  (GPURenderPassEncoder a) == (GPURenderPassEncoder b) = js_eq a b

instance PToJSVal GPURenderPassEncoder where
  pToJSVal = unGPURenderPassEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPassEncoder where
  pFromJSVal = GPURenderPassEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPassEncoder where
  toJSVal = return . unGPURenderPassEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPassEncoder where
  fromJSVal = return . fmap GPURenderPassEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPassEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUBindingCommandsMixin GPURenderPassEncoder
instance IsGPUDebugCommandsMixin GPURenderPassEncoder
instance IsGPUObjectBase GPURenderPassEncoder
instance IsGPURenderCommandsMixin GPURenderPassEncoder

instance IsGObject GPURenderPassEncoder where
  typeGType _ = gTypeGPURenderPassEncoder
  {-# INLINE typeGType #-}

noGPURenderPassEncoder :: Maybe GPURenderPassEncoder
noGPURenderPassEncoder = Nothing
{-# INLINE noGPURenderPassEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"GPURenderPassEncoder\"])" gTypeGPURenderPassEncoder :: GType

-- | Dictionary GPURenderPassLayout (webgpu)
newtype GPURenderPassLayout = GPURenderPassLayout { unGPURenderPassLayout :: JSVal }

instance Eq GPURenderPassLayout where
  (GPURenderPassLayout a) == (GPURenderPassLayout b) = js_eq a b

instance PToJSVal GPURenderPassLayout where
  pToJSVal = unGPURenderPassLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPassLayout where
  pFromJSVal = GPURenderPassLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPassLayout where
  toJSVal = return . unGPURenderPassLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPassLayout where
  fromJSVal = return . fmap GPURenderPassLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPassLayout
  {-# INLINE fromJSValUnchecked #-}

class (IsGPUObjectDescriptorBase o, IsGObject o) => IsGPURenderPassLayout o
toGPURenderPassLayout :: IsGPURenderPassLayout o => o -> GPURenderPassLayout
toGPURenderPassLayout = GPURenderPassLayout . coerce

instance IsGPURenderPassLayout GPURenderPassLayout
instance IsGPUObjectDescriptorBase GPURenderPassLayout

instance IsGObject GPURenderPassLayout where
  typeGType _ = gTypeGPURenderPassLayout
  {-# INLINE typeGType #-}

noGPURenderPassLayout :: Maybe GPURenderPassLayout
noGPURenderPassLayout = Nothing
{-# INLINE noGPURenderPassLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderPassLayout :: GType

-- | Dictionary GPURenderPassTimestampWrites (webgpu)
newtype GPURenderPassTimestampWrites = GPURenderPassTimestampWrites { unGPURenderPassTimestampWrites :: JSVal }

instance Eq GPURenderPassTimestampWrites where
  (GPURenderPassTimestampWrites a) == (GPURenderPassTimestampWrites b) = js_eq a b

instance PToJSVal GPURenderPassTimestampWrites where
  pToJSVal = unGPURenderPassTimestampWrites
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPassTimestampWrites where
  pFromJSVal = GPURenderPassTimestampWrites
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPassTimestampWrites where
  toJSVal = return . unGPURenderPassTimestampWrites
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPassTimestampWrites where
  fromJSVal = return . fmap GPURenderPassTimestampWrites . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPassTimestampWrites
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPURenderPassTimestampWrites where
  typeGType _ = gTypeGPURenderPassTimestampWrites
  {-# INLINE typeGType #-}

noGPURenderPassTimestampWrites :: Maybe GPURenderPassTimestampWrites
noGPURenderPassTimestampWrites = Nothing
{-# INLINE noGPURenderPassTimestampWrites #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderPassTimestampWrites :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPURenderPipeline" (webgpu).
newtype GPURenderPipeline = GPURenderPipeline { unGPURenderPipeline :: JSVal }

instance Eq GPURenderPipeline where
  (GPURenderPipeline a) == (GPURenderPipeline b) = js_eq a b

instance PToJSVal GPURenderPipeline where
  pToJSVal = unGPURenderPipeline
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPipeline where
  pFromJSVal = GPURenderPipeline
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPipeline where
  toJSVal = return . unGPURenderPipeline
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPipeline where
  fromJSVal = return . fmap GPURenderPipeline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPipeline
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPURenderPipeline
instance IsGPUPipelineBase GPURenderPipeline

instance IsGObject GPURenderPipeline where
  typeGType _ = gTypeGPURenderPipeline
  {-# INLINE typeGType #-}

noGPURenderPipeline :: Maybe GPURenderPipeline
noGPURenderPipeline = Nothing
{-# INLINE noGPURenderPipeline #-}

foreign import javascript unsafe "(() => globalThis[\"GPURenderPipeline\"])" gTypeGPURenderPipeline :: GType

-- | Dictionary GPURenderPipelineDescriptor (webgpu)
newtype GPURenderPipelineDescriptor = GPURenderPipelineDescriptor { unGPURenderPipelineDescriptor :: JSVal }

instance Eq GPURenderPipelineDescriptor where
  (GPURenderPipelineDescriptor a) == (GPURenderPipelineDescriptor b) = js_eq a b

instance PToJSVal GPURenderPipelineDescriptor where
  pToJSVal = unGPURenderPipelineDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURenderPipelineDescriptor where
  pFromJSVal = GPURenderPipelineDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURenderPipelineDescriptor where
  toJSVal = return . unGPURenderPipelineDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPURenderPipelineDescriptor where
  fromJSVal = return . fmap GPURenderPipelineDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURenderPipelineDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUPipelineDescriptorBase GPURenderPipelineDescriptor
instance IsGPUObjectDescriptorBase GPURenderPipelineDescriptor

instance IsGObject GPURenderPipelineDescriptor where
  typeGType _ = gTypeGPURenderPipelineDescriptor
  {-# INLINE typeGType #-}

noGPURenderPipelineDescriptor :: Maybe GPURenderPipelineDescriptor
noGPURenderPipelineDescriptor = Nothing
{-# INLINE noGPURenderPipelineDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURenderPipelineDescriptor :: GType

-- | Dictionary GPURequestAdapterOptions (webgpu)
newtype GPURequestAdapterOptions = GPURequestAdapterOptions { unGPURequestAdapterOptions :: JSVal }

instance Eq GPURequestAdapterOptions where
  (GPURequestAdapterOptions a) == (GPURequestAdapterOptions b) = js_eq a b

instance PToJSVal GPURequestAdapterOptions where
  pToJSVal = unGPURequestAdapterOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPURequestAdapterOptions where
  pFromJSVal = GPURequestAdapterOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPURequestAdapterOptions where
  toJSVal = return . unGPURequestAdapterOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GPURequestAdapterOptions where
  fromJSVal = return . fmap GPURequestAdapterOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPURequestAdapterOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPURequestAdapterOptions where
  typeGType _ = gTypeGPURequestAdapterOptions
  {-# INLINE typeGType #-}

noGPURequestAdapterOptions :: Maybe GPURequestAdapterOptions
noGPURequestAdapterOptions = Nothing
{-# INLINE noGPURequestAdapterOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPURequestAdapterOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUSampler" (webgpu).
newtype GPUSampler = GPUSampler { unGPUSampler :: JSVal }

instance Eq GPUSampler where
  (GPUSampler a) == (GPUSampler b) = js_eq a b

instance PToJSVal GPUSampler where
  pToJSVal = unGPUSampler
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUSampler where
  pFromJSVal = GPUSampler
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUSampler where
  toJSVal = return . unGPUSampler
  {-# INLINE toJSVal #-}

instance FromJSVal GPUSampler where
  fromJSVal = return . fmap GPUSampler . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUSampler
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUSampler

instance IsGObject GPUSampler where
  typeGType _ = gTypeGPUSampler
  {-# INLINE typeGType #-}

noGPUSampler :: Maybe GPUSampler
noGPUSampler = Nothing
{-# INLINE noGPUSampler #-}

foreign import javascript unsafe "(() => globalThis[\"GPUSampler\"])" gTypeGPUSampler :: GType

-- | Dictionary GPUSamplerBindingLayout (webgpu)
newtype GPUSamplerBindingLayout = GPUSamplerBindingLayout { unGPUSamplerBindingLayout :: JSVal }

instance Eq GPUSamplerBindingLayout where
  (GPUSamplerBindingLayout a) == (GPUSamplerBindingLayout b) = js_eq a b

instance PToJSVal GPUSamplerBindingLayout where
  pToJSVal = unGPUSamplerBindingLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUSamplerBindingLayout where
  pFromJSVal = GPUSamplerBindingLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUSamplerBindingLayout where
  toJSVal = return . unGPUSamplerBindingLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUSamplerBindingLayout where
  fromJSVal = return . fmap GPUSamplerBindingLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUSamplerBindingLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUSamplerBindingLayout where
  typeGType _ = gTypeGPUSamplerBindingLayout
  {-# INLINE typeGType #-}

noGPUSamplerBindingLayout :: Maybe GPUSamplerBindingLayout
noGPUSamplerBindingLayout = Nothing
{-# INLINE noGPUSamplerBindingLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUSamplerBindingLayout :: GType

-- | Dictionary GPUSamplerDescriptor (webgpu)
newtype GPUSamplerDescriptor = GPUSamplerDescriptor { unGPUSamplerDescriptor :: JSVal }

instance Eq GPUSamplerDescriptor where
  (GPUSamplerDescriptor a) == (GPUSamplerDescriptor b) = js_eq a b

instance PToJSVal GPUSamplerDescriptor where
  pToJSVal = unGPUSamplerDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUSamplerDescriptor where
  pFromJSVal = GPUSamplerDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUSamplerDescriptor where
  toJSVal = return . unGPUSamplerDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUSamplerDescriptor where
  fromJSVal = return . fmap GPUSamplerDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUSamplerDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUSamplerDescriptor

instance IsGObject GPUSamplerDescriptor where
  typeGType _ = gTypeGPUSamplerDescriptor
  {-# INLINE typeGType #-}

noGPUSamplerDescriptor :: Maybe GPUSamplerDescriptor
noGPUSamplerDescriptor = Nothing
{-# INLINE noGPUSamplerDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUSamplerDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUShaderModule" (webgpu).
newtype GPUShaderModule = GPUShaderModule { unGPUShaderModule :: JSVal }

instance Eq GPUShaderModule where
  (GPUShaderModule a) == (GPUShaderModule b) = js_eq a b

instance PToJSVal GPUShaderModule where
  pToJSVal = unGPUShaderModule
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUShaderModule where
  pFromJSVal = GPUShaderModule
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUShaderModule where
  toJSVal = return . unGPUShaderModule
  {-# INLINE toJSVal #-}

instance FromJSVal GPUShaderModule where
  fromJSVal = return . fmap GPUShaderModule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUShaderModule
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUShaderModule

instance IsGObject GPUShaderModule where
  typeGType _ = gTypeGPUShaderModule
  {-# INLINE typeGType #-}

noGPUShaderModule :: Maybe GPUShaderModule
noGPUShaderModule = Nothing
{-# INLINE noGPUShaderModule #-}

foreign import javascript unsafe "(() => globalThis[\"GPUShaderModule\"])" gTypeGPUShaderModule :: GType

-- | Dictionary GPUShaderModuleCompilationHint (webgpu)
newtype GPUShaderModuleCompilationHint = GPUShaderModuleCompilationHint { unGPUShaderModuleCompilationHint :: JSVal }

instance Eq GPUShaderModuleCompilationHint where
  (GPUShaderModuleCompilationHint a) == (GPUShaderModuleCompilationHint b) = js_eq a b

instance PToJSVal GPUShaderModuleCompilationHint where
  pToJSVal = unGPUShaderModuleCompilationHint
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUShaderModuleCompilationHint where
  pFromJSVal = GPUShaderModuleCompilationHint
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUShaderModuleCompilationHint where
  toJSVal = return . unGPUShaderModuleCompilationHint
  {-# INLINE toJSVal #-}

instance FromJSVal GPUShaderModuleCompilationHint where
  fromJSVal = return . fmap GPUShaderModuleCompilationHint . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUShaderModuleCompilationHint
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUShaderModuleCompilationHint where
  typeGType _ = gTypeGPUShaderModuleCompilationHint
  {-# INLINE typeGType #-}

noGPUShaderModuleCompilationHint :: Maybe GPUShaderModuleCompilationHint
noGPUShaderModuleCompilationHint = Nothing
{-# INLINE noGPUShaderModuleCompilationHint #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUShaderModuleCompilationHint :: GType

-- | Dictionary GPUShaderModuleDescriptor (webgpu)
newtype GPUShaderModuleDescriptor = GPUShaderModuleDescriptor { unGPUShaderModuleDescriptor :: JSVal }

instance Eq GPUShaderModuleDescriptor where
  (GPUShaderModuleDescriptor a) == (GPUShaderModuleDescriptor b) = js_eq a b

instance PToJSVal GPUShaderModuleDescriptor where
  pToJSVal = unGPUShaderModuleDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUShaderModuleDescriptor where
  pFromJSVal = GPUShaderModuleDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUShaderModuleDescriptor where
  toJSVal = return . unGPUShaderModuleDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUShaderModuleDescriptor where
  fromJSVal = return . fmap GPUShaderModuleDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUShaderModuleDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUShaderModuleDescriptor

instance IsGObject GPUShaderModuleDescriptor where
  typeGType _ = gTypeGPUShaderModuleDescriptor
  {-# INLINE typeGType #-}

noGPUShaderModuleDescriptor :: Maybe GPUShaderModuleDescriptor
noGPUShaderModuleDescriptor = Nothing
{-# INLINE noGPUShaderModuleDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUShaderModuleDescriptor :: GType

-- | Dictionary GPUStencilFaceState (webgpu)
newtype GPUStencilFaceState = GPUStencilFaceState { unGPUStencilFaceState :: JSVal }

instance Eq GPUStencilFaceState where
  (GPUStencilFaceState a) == (GPUStencilFaceState b) = js_eq a b

instance PToJSVal GPUStencilFaceState where
  pToJSVal = unGPUStencilFaceState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUStencilFaceState where
  pFromJSVal = GPUStencilFaceState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUStencilFaceState where
  toJSVal = return . unGPUStencilFaceState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUStencilFaceState where
  fromJSVal = return . fmap GPUStencilFaceState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUStencilFaceState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUStencilFaceState where
  typeGType _ = gTypeGPUStencilFaceState
  {-# INLINE typeGType #-}

noGPUStencilFaceState :: Maybe GPUStencilFaceState
noGPUStencilFaceState = Nothing
{-# INLINE noGPUStencilFaceState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUStencilFaceState :: GType

-- | Dictionary GPUStorageTextureBindingLayout (webgpu)
newtype GPUStorageTextureBindingLayout = GPUStorageTextureBindingLayout { unGPUStorageTextureBindingLayout :: JSVal }

instance Eq GPUStorageTextureBindingLayout where
  (GPUStorageTextureBindingLayout a) == (GPUStorageTextureBindingLayout b) = js_eq a b

instance PToJSVal GPUStorageTextureBindingLayout where
  pToJSVal = unGPUStorageTextureBindingLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUStorageTextureBindingLayout where
  pFromJSVal = GPUStorageTextureBindingLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUStorageTextureBindingLayout where
  toJSVal = return . unGPUStorageTextureBindingLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUStorageTextureBindingLayout where
  fromJSVal = return . fmap GPUStorageTextureBindingLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUStorageTextureBindingLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUStorageTextureBindingLayout where
  typeGType _ = gTypeGPUStorageTextureBindingLayout
  {-# INLINE typeGType #-}

noGPUStorageTextureBindingLayout :: Maybe GPUStorageTextureBindingLayout
noGPUStorageTextureBindingLayout = Nothing
{-# INLINE noGPUStorageTextureBindingLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUStorageTextureBindingLayout :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUSupportedFeatures" (webgpu).
newtype GPUSupportedFeatures = GPUSupportedFeatures { unGPUSupportedFeatures :: JSVal }

instance Eq GPUSupportedFeatures where
  (GPUSupportedFeatures a) == (GPUSupportedFeatures b) = js_eq a b

instance PToJSVal GPUSupportedFeatures where
  pToJSVal = unGPUSupportedFeatures
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUSupportedFeatures where
  pFromJSVal = GPUSupportedFeatures
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUSupportedFeatures where
  toJSVal = return . unGPUSupportedFeatures
  {-# INLINE toJSVal #-}

instance FromJSVal GPUSupportedFeatures where
  fromJSVal = return . fmap GPUSupportedFeatures . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUSupportedFeatures
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUSupportedFeatures where
  typeGType _ = gTypeGPUSupportedFeatures
  {-# INLINE typeGType #-}

noGPUSupportedFeatures :: Maybe GPUSupportedFeatures
noGPUSupportedFeatures = Nothing
{-# INLINE noGPUSupportedFeatures #-}

foreign import javascript unsafe "(() => globalThis[\"GPUSupportedFeatures\"])" gTypeGPUSupportedFeatures :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUSupportedLimits" (webgpu).
newtype GPUSupportedLimits = GPUSupportedLimits { unGPUSupportedLimits :: JSVal }

instance Eq GPUSupportedLimits where
  (GPUSupportedLimits a) == (GPUSupportedLimits b) = js_eq a b

instance PToJSVal GPUSupportedLimits where
  pToJSVal = unGPUSupportedLimits
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUSupportedLimits where
  pFromJSVal = GPUSupportedLimits
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUSupportedLimits where
  toJSVal = return . unGPUSupportedLimits
  {-# INLINE toJSVal #-}

instance FromJSVal GPUSupportedLimits where
  fromJSVal = return . fmap GPUSupportedLimits . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUSupportedLimits
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUSupportedLimits where
  typeGType _ = gTypeGPUSupportedLimits
  {-# INLINE typeGType #-}

noGPUSupportedLimits :: Maybe GPUSupportedLimits
noGPUSupportedLimits = Nothing
{-# INLINE noGPUSupportedLimits #-}

foreign import javascript unsafe "(() => globalThis[\"GPUSupportedLimits\"])" gTypeGPUSupportedLimits :: GType

-- | Dictionary GPUTexelCopyBufferInfo (webgpu)
newtype GPUTexelCopyBufferInfo = GPUTexelCopyBufferInfo { unGPUTexelCopyBufferInfo :: JSVal }

instance Eq GPUTexelCopyBufferInfo where
  (GPUTexelCopyBufferInfo a) == (GPUTexelCopyBufferInfo b) = js_eq a b

instance PToJSVal GPUTexelCopyBufferInfo where
  pToJSVal = unGPUTexelCopyBufferInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTexelCopyBufferInfo where
  pFromJSVal = GPUTexelCopyBufferInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTexelCopyBufferInfo where
  toJSVal = return . unGPUTexelCopyBufferInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTexelCopyBufferInfo where
  fromJSVal = return . fmap GPUTexelCopyBufferInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTexelCopyBufferInfo
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUTexelCopyBufferLayout GPUTexelCopyBufferInfo

instance IsGObject GPUTexelCopyBufferInfo where
  typeGType _ = gTypeGPUTexelCopyBufferInfo
  {-# INLINE typeGType #-}

noGPUTexelCopyBufferInfo :: Maybe GPUTexelCopyBufferInfo
noGPUTexelCopyBufferInfo = Nothing
{-# INLINE noGPUTexelCopyBufferInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUTexelCopyBufferInfo :: GType

-- | Dictionary GPUTexelCopyBufferLayout (webgpu)
newtype GPUTexelCopyBufferLayout = GPUTexelCopyBufferLayout { unGPUTexelCopyBufferLayout :: JSVal }

instance Eq GPUTexelCopyBufferLayout where
  (GPUTexelCopyBufferLayout a) == (GPUTexelCopyBufferLayout b) = js_eq a b

instance PToJSVal GPUTexelCopyBufferLayout where
  pToJSVal = unGPUTexelCopyBufferLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTexelCopyBufferLayout where
  pFromJSVal = GPUTexelCopyBufferLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTexelCopyBufferLayout where
  toJSVal = return . unGPUTexelCopyBufferLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTexelCopyBufferLayout where
  fromJSVal = return . fmap GPUTexelCopyBufferLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTexelCopyBufferLayout
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUTexelCopyBufferLayout o
toGPUTexelCopyBufferLayout :: IsGPUTexelCopyBufferLayout o => o -> GPUTexelCopyBufferLayout
toGPUTexelCopyBufferLayout = GPUTexelCopyBufferLayout . coerce

instance IsGPUTexelCopyBufferLayout GPUTexelCopyBufferLayout

instance IsGObject GPUTexelCopyBufferLayout where
  typeGType _ = gTypeGPUTexelCopyBufferLayout
  {-# INLINE typeGType #-}

noGPUTexelCopyBufferLayout :: Maybe GPUTexelCopyBufferLayout
noGPUTexelCopyBufferLayout = Nothing
{-# INLINE noGPUTexelCopyBufferLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUTexelCopyBufferLayout :: GType

-- | Dictionary GPUTexelCopyTextureInfo (webgpu)
newtype GPUTexelCopyTextureInfo = GPUTexelCopyTextureInfo { unGPUTexelCopyTextureInfo :: JSVal }

instance Eq GPUTexelCopyTextureInfo where
  (GPUTexelCopyTextureInfo a) == (GPUTexelCopyTextureInfo b) = js_eq a b

instance PToJSVal GPUTexelCopyTextureInfo where
  pToJSVal = unGPUTexelCopyTextureInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTexelCopyTextureInfo where
  pFromJSVal = GPUTexelCopyTextureInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTexelCopyTextureInfo where
  toJSVal = return . unGPUTexelCopyTextureInfo
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTexelCopyTextureInfo where
  fromJSVal = return . fmap GPUTexelCopyTextureInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTexelCopyTextureInfo
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGPUTexelCopyTextureInfo o
toGPUTexelCopyTextureInfo :: IsGPUTexelCopyTextureInfo o => o -> GPUTexelCopyTextureInfo
toGPUTexelCopyTextureInfo = GPUTexelCopyTextureInfo . coerce

instance IsGPUTexelCopyTextureInfo GPUTexelCopyTextureInfo

instance IsGObject GPUTexelCopyTextureInfo where
  typeGType _ = gTypeGPUTexelCopyTextureInfo
  {-# INLINE typeGType #-}

noGPUTexelCopyTextureInfo :: Maybe GPUTexelCopyTextureInfo
noGPUTexelCopyTextureInfo = Nothing
{-# INLINE noGPUTexelCopyTextureInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUTexelCopyTextureInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUTexture" (webgpu).
newtype GPUTexture = GPUTexture { unGPUTexture :: JSVal }

instance Eq GPUTexture where
  (GPUTexture a) == (GPUTexture b) = js_eq a b

instance PToJSVal GPUTexture where
  pToJSVal = unGPUTexture
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTexture where
  pFromJSVal = GPUTexture
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTexture where
  toJSVal = return . unGPUTexture
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTexture where
  fromJSVal = return . fmap GPUTexture . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTexture
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUTexture

instance IsGObject GPUTexture where
  typeGType _ = gTypeGPUTexture
  {-# INLINE typeGType #-}

noGPUTexture :: Maybe GPUTexture
noGPUTexture = Nothing
{-# INLINE noGPUTexture #-}

foreign import javascript unsafe "(() => globalThis[\"GPUTexture\"])" gTypeGPUTexture :: GType

-- | Dictionary GPUTextureBindingLayout (webgpu)
newtype GPUTextureBindingLayout = GPUTextureBindingLayout { unGPUTextureBindingLayout :: JSVal }

instance Eq GPUTextureBindingLayout where
  (GPUTextureBindingLayout a) == (GPUTextureBindingLayout b) = js_eq a b

instance PToJSVal GPUTextureBindingLayout where
  pToJSVal = unGPUTextureBindingLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTextureBindingLayout where
  pFromJSVal = GPUTextureBindingLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTextureBindingLayout where
  toJSVal = return . unGPUTextureBindingLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTextureBindingLayout where
  fromJSVal = return . fmap GPUTextureBindingLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTextureBindingLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUTextureBindingLayout where
  typeGType _ = gTypeGPUTextureBindingLayout
  {-# INLINE typeGType #-}

noGPUTextureBindingLayout :: Maybe GPUTextureBindingLayout
noGPUTextureBindingLayout = Nothing
{-# INLINE noGPUTextureBindingLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUTextureBindingLayout :: GType

-- | Dictionary GPUTextureDescriptor (webgpu)
newtype GPUTextureDescriptor = GPUTextureDescriptor { unGPUTextureDescriptor :: JSVal }

instance Eq GPUTextureDescriptor where
  (GPUTextureDescriptor a) == (GPUTextureDescriptor b) = js_eq a b

instance PToJSVal GPUTextureDescriptor where
  pToJSVal = unGPUTextureDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTextureDescriptor where
  pFromJSVal = GPUTextureDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTextureDescriptor where
  toJSVal = return . unGPUTextureDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTextureDescriptor where
  fromJSVal = return . fmap GPUTextureDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTextureDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUTextureDescriptor

instance IsGObject GPUTextureDescriptor where
  typeGType _ = gTypeGPUTextureDescriptor
  {-# INLINE typeGType #-}

noGPUTextureDescriptor :: Maybe GPUTextureDescriptor
noGPUTextureDescriptor = Nothing
{-# INLINE noGPUTextureDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUTextureDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUTextureView" (webgpu).
newtype GPUTextureView = GPUTextureView { unGPUTextureView :: JSVal }

instance Eq GPUTextureView where
  (GPUTextureView a) == (GPUTextureView b) = js_eq a b

instance PToJSVal GPUTextureView where
  pToJSVal = unGPUTextureView
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTextureView where
  pFromJSVal = GPUTextureView
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTextureView where
  toJSVal = return . unGPUTextureView
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTextureView where
  fromJSVal = return . fmap GPUTextureView . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTextureView
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectBase GPUTextureView

instance IsGObject GPUTextureView where
  typeGType _ = gTypeGPUTextureView
  {-# INLINE typeGType #-}

noGPUTextureView :: Maybe GPUTextureView
noGPUTextureView = Nothing
{-# INLINE noGPUTextureView #-}

foreign import javascript unsafe "(() => globalThis[\"GPUTextureView\"])" gTypeGPUTextureView :: GType

-- | Dictionary GPUTextureViewDescriptor (webgpu)
newtype GPUTextureViewDescriptor = GPUTextureViewDescriptor { unGPUTextureViewDescriptor :: JSVal }

instance Eq GPUTextureViewDescriptor where
  (GPUTextureViewDescriptor a) == (GPUTextureViewDescriptor b) = js_eq a b

instance PToJSVal GPUTextureViewDescriptor where
  pToJSVal = unGPUTextureViewDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUTextureViewDescriptor where
  pFromJSVal = GPUTextureViewDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUTextureViewDescriptor where
  toJSVal = return . unGPUTextureViewDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal GPUTextureViewDescriptor where
  fromJSVal = return . fmap GPUTextureViewDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUTextureViewDescriptor
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUObjectDescriptorBase GPUTextureViewDescriptor

instance IsGObject GPUTextureViewDescriptor where
  typeGType _ = gTypeGPUTextureViewDescriptor
  {-# INLINE typeGType #-}

noGPUTextureViewDescriptor :: Maybe GPUTextureViewDescriptor
noGPUTextureViewDescriptor = Nothing
{-# INLINE noGPUTextureViewDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUTextureViewDescriptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUUncapturedErrorEvent" (webgpu).
newtype GPUUncapturedErrorEvent = GPUUncapturedErrorEvent { unGPUUncapturedErrorEvent :: JSVal }

instance Eq GPUUncapturedErrorEvent where
  (GPUUncapturedErrorEvent a) == (GPUUncapturedErrorEvent b) = js_eq a b

instance PToJSVal GPUUncapturedErrorEvent where
  pToJSVal = unGPUUncapturedErrorEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUUncapturedErrorEvent where
  pFromJSVal = GPUUncapturedErrorEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUUncapturedErrorEvent where
  toJSVal = return . unGPUUncapturedErrorEvent
  {-# INLINE toJSVal #-}

instance FromJSVal GPUUncapturedErrorEvent where
  fromJSVal = return . fmap GPUUncapturedErrorEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUUncapturedErrorEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent GPUUncapturedErrorEvent

instance IsGObject GPUUncapturedErrorEvent where
  typeGType _ = gTypeGPUUncapturedErrorEvent
  {-# INLINE typeGType #-}

noGPUUncapturedErrorEvent :: Maybe GPUUncapturedErrorEvent
noGPUUncapturedErrorEvent = Nothing
{-# INLINE noGPUUncapturedErrorEvent #-}

foreign import javascript unsafe "(() => globalThis[\"GPUUncapturedErrorEvent\"])" gTypeGPUUncapturedErrorEvent :: GType

-- | Dictionary GPUUncapturedErrorEventInit (webgpu)
newtype GPUUncapturedErrorEventInit = GPUUncapturedErrorEventInit { unGPUUncapturedErrorEventInit :: JSVal }

instance Eq GPUUncapturedErrorEventInit where
  (GPUUncapturedErrorEventInit a) == (GPUUncapturedErrorEventInit b) = js_eq a b

instance PToJSVal GPUUncapturedErrorEventInit where
  pToJSVal = unGPUUncapturedErrorEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUUncapturedErrorEventInit where
  pFromJSVal = GPUUncapturedErrorEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUUncapturedErrorEventInit where
  toJSVal = return . unGPUUncapturedErrorEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal GPUUncapturedErrorEventInit where
  fromJSVal = return . fmap GPUUncapturedErrorEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUUncapturedErrorEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit GPUUncapturedErrorEventInit

instance IsGObject GPUUncapturedErrorEventInit where
  typeGType _ = gTypeGPUUncapturedErrorEventInit
  {-# INLINE typeGType #-}

noGPUUncapturedErrorEventInit :: Maybe GPUUncapturedErrorEventInit
noGPUUncapturedErrorEventInit = Nothing
{-# INLINE noGPUUncapturedErrorEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUUncapturedErrorEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.GPUValidationError" (webgpu).
newtype GPUValidationError = GPUValidationError { unGPUValidationError :: JSVal }

instance Eq GPUValidationError where
  (GPUValidationError a) == (GPUValidationError b) = js_eq a b

instance PToJSVal GPUValidationError where
  pToJSVal = unGPUValidationError
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUValidationError where
  pFromJSVal = GPUValidationError
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUValidationError where
  toJSVal = return . unGPUValidationError
  {-# INLINE toJSVal #-}

instance FromJSVal GPUValidationError where
  fromJSVal = return . fmap GPUValidationError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUValidationError
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUError GPUValidationError

instance IsGObject GPUValidationError where
  typeGType _ = gTypeGPUValidationError
  {-# INLINE typeGType #-}

noGPUValidationError :: Maybe GPUValidationError
noGPUValidationError = Nothing
{-# INLINE noGPUValidationError #-}

foreign import javascript unsafe "(() => globalThis[\"GPUValidationError\"])" gTypeGPUValidationError :: GType

-- | Dictionary GPUVertexAttribute (webgpu)
newtype GPUVertexAttribute = GPUVertexAttribute { unGPUVertexAttribute :: JSVal }

instance Eq GPUVertexAttribute where
  (GPUVertexAttribute a) == (GPUVertexAttribute b) = js_eq a b

instance PToJSVal GPUVertexAttribute where
  pToJSVal = unGPUVertexAttribute
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUVertexAttribute where
  pFromJSVal = GPUVertexAttribute
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUVertexAttribute where
  toJSVal = return . unGPUVertexAttribute
  {-# INLINE toJSVal #-}

instance FromJSVal GPUVertexAttribute where
  fromJSVal = return . fmap GPUVertexAttribute . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUVertexAttribute
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUVertexAttribute where
  typeGType _ = gTypeGPUVertexAttribute
  {-# INLINE typeGType #-}

noGPUVertexAttribute :: Maybe GPUVertexAttribute
noGPUVertexAttribute = Nothing
{-# INLINE noGPUVertexAttribute #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUVertexAttribute :: GType

-- | Dictionary GPUVertexBufferLayout (webgpu)
newtype GPUVertexBufferLayout = GPUVertexBufferLayout { unGPUVertexBufferLayout :: JSVal }

instance Eq GPUVertexBufferLayout where
  (GPUVertexBufferLayout a) == (GPUVertexBufferLayout b) = js_eq a b

instance PToJSVal GPUVertexBufferLayout where
  pToJSVal = unGPUVertexBufferLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUVertexBufferLayout where
  pFromJSVal = GPUVertexBufferLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUVertexBufferLayout where
  toJSVal = return . unGPUVertexBufferLayout
  {-# INLINE toJSVal #-}

instance FromJSVal GPUVertexBufferLayout where
  fromJSVal = return . fmap GPUVertexBufferLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUVertexBufferLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GPUVertexBufferLayout where
  typeGType _ = gTypeGPUVertexBufferLayout
  {-# INLINE typeGType #-}

noGPUVertexBufferLayout :: Maybe GPUVertexBufferLayout
noGPUVertexBufferLayout = Nothing
{-# INLINE noGPUVertexBufferLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUVertexBufferLayout :: GType

-- | Dictionary GPUVertexState (webgpu)
newtype GPUVertexState = GPUVertexState { unGPUVertexState :: JSVal }

instance Eq GPUVertexState where
  (GPUVertexState a) == (GPUVertexState b) = js_eq a b

instance PToJSVal GPUVertexState where
  pToJSVal = unGPUVertexState
  {-# INLINE pToJSVal #-}

instance PFromJSVal GPUVertexState where
  pFromJSVal = GPUVertexState
  {-# INLINE pFromJSVal #-}

instance ToJSVal GPUVertexState where
  toJSVal = return . unGPUVertexState
  {-# INLINE toJSVal #-}

instance FromJSVal GPUVertexState where
  fromJSVal = return . fmap GPUVertexState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GPUVertexState
  {-# INLINE fromJSValUnchecked #-}

instance IsGPUProgrammableStage GPUVertexState

instance IsGObject GPUVertexState where
  typeGType _ = gTypeGPUVertexState
  {-# INLINE typeGType #-}

noGPUVertexState :: Maybe GPUVertexState
noGPUVertexState = Nothing
{-# INLINE noGPUVertexState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGPUVertexState :: GType

-- | Functions for this interface are in "GHCJS.DOM.GainNode" (webaudio-1.1).
newtype GainNode = GainNode { unGainNode :: JSVal }

instance Eq GainNode where
  (GainNode a) == (GainNode b) = js_eq a b

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 = return . fmap GainNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GainNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode GainNode
instance IsEventTarget GainNode

instance IsGObject GainNode where
  typeGType _ = gTypeGainNode
  {-# INLINE typeGType #-}

noGainNode :: Maybe GainNode
noGainNode = Nothing
{-# INLINE noGainNode #-}

foreign import javascript unsafe "(() => globalThis[\"GainNode\"])" gTypeGainNode :: GType

-- | Dictionary GainOptions (webaudio-1.1)
newtype GainOptions = GainOptions { unGainOptions :: JSVal }

instance Eq GainOptions where
  (GainOptions a) == (GainOptions b) = js_eq a b

instance PToJSVal GainOptions where
  pToJSVal = unGainOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GainOptions where
  pFromJSVal = GainOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GainOptions where
  toJSVal = return . unGainOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GainOptions where
  fromJSVal = return . fmap GainOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GainOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions GainOptions

instance IsGObject GainOptions where
  typeGType _ = gTypeGainOptions
  {-# INLINE typeGType #-}

noGainOptions :: Maybe GainOptions
noGainOptions = Nothing
{-# INLINE noGainOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGainOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Gamepad" (gamepad).
newtype Gamepad = Gamepad { unGamepad :: JSVal }

instance Eq Gamepad where
  (Gamepad a) == (Gamepad b) = js_eq a b

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 = return . fmap Gamepad . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Gamepad
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Gamepad where
  typeGType _ = gTypeGamepad
  {-# INLINE typeGType #-}

noGamepad :: Maybe Gamepad
noGamepad = Nothing
{-# INLINE noGamepad #-}

foreign import javascript unsafe "(() => globalThis[\"Gamepad\"])" gTypeGamepad :: GType

-- | Functions for this interface are in "GHCJS.DOM.GamepadButton" (gamepad).
newtype GamepadButton = GamepadButton { unGamepadButton :: JSVal }

instance Eq GamepadButton where
  (GamepadButton a) == (GamepadButton b) = js_eq a b

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 = return . fmap GamepadButton . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GamepadButton
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GamepadButton where
  typeGType _ = gTypeGamepadButton
  {-# INLINE typeGType #-}

noGamepadButton :: Maybe GamepadButton
noGamepadButton = Nothing
{-# INLINE noGamepadButton #-}

foreign import javascript unsafe "(() => globalThis[\"GamepadButton\"])" gTypeGamepadButton :: GType

-- | Dictionary GamepadEffectParameters (gamepad)
newtype GamepadEffectParameters = GamepadEffectParameters { unGamepadEffectParameters :: JSVal }

instance Eq GamepadEffectParameters where
  (GamepadEffectParameters a) == (GamepadEffectParameters b) = js_eq a b

instance PToJSVal GamepadEffectParameters where
  pToJSVal = unGamepadEffectParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal GamepadEffectParameters where
  pFromJSVal = GamepadEffectParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal GamepadEffectParameters where
  toJSVal = return . unGamepadEffectParameters
  {-# INLINE toJSVal #-}

instance FromJSVal GamepadEffectParameters where
  fromJSVal = return . fmap GamepadEffectParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GamepadEffectParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GamepadEffectParameters where
  typeGType _ = gTypeGamepadEffectParameters
  {-# INLINE typeGType #-}

noGamepadEffectParameters :: Maybe GamepadEffectParameters
noGamepadEffectParameters = Nothing
{-# INLINE noGamepadEffectParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGamepadEffectParameters :: GType

-- | Functions for this interface are in "GHCJS.DOM.GamepadEvent" (gamepad).
newtype GamepadEvent = GamepadEvent { unGamepadEvent :: JSVal }

instance Eq GamepadEvent where
  (GamepadEvent a) == (GamepadEvent b) = js_eq a b

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 = return . fmap GamepadEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GamepadEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent GamepadEvent

instance IsGObject GamepadEvent where
  typeGType _ = gTypeGamepadEvent
  {-# INLINE typeGType #-}

noGamepadEvent :: Maybe GamepadEvent
noGamepadEvent = Nothing
{-# INLINE noGamepadEvent #-}

foreign import javascript unsafe "(() => globalThis[\"GamepadEvent\"])" gTypeGamepadEvent :: GType

-- | Dictionary GamepadEventInit (gamepad)
newtype GamepadEventInit = GamepadEventInit { unGamepadEventInit :: JSVal }

instance Eq GamepadEventInit where
  (GamepadEventInit a) == (GamepadEventInit b) = js_eq a b

instance PToJSVal GamepadEventInit where
  pToJSVal = unGamepadEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal GamepadEventInit where
  pFromJSVal = GamepadEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal GamepadEventInit where
  toJSVal = return . unGamepadEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal GamepadEventInit where
  fromJSVal = return . fmap GamepadEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GamepadEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit GamepadEventInit

instance IsGObject GamepadEventInit where
  typeGType _ = gTypeGamepadEventInit
  {-# INLINE typeGType #-}

noGamepadEventInit :: Maybe GamepadEventInit
noGamepadEventInit = Nothing
{-# INLINE noGamepadEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGamepadEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.GamepadHapticActuator" (gamepad).
newtype GamepadHapticActuator = GamepadHapticActuator { unGamepadHapticActuator :: JSVal }

instance Eq GamepadHapticActuator where
  (GamepadHapticActuator a) == (GamepadHapticActuator b) = js_eq a b

instance PToJSVal GamepadHapticActuator where
  pToJSVal = unGamepadHapticActuator
  {-# INLINE pToJSVal #-}

instance PFromJSVal GamepadHapticActuator where
  pFromJSVal = GamepadHapticActuator
  {-# INLINE pFromJSVal #-}

instance ToJSVal GamepadHapticActuator where
  toJSVal = return . unGamepadHapticActuator
  {-# INLINE toJSVal #-}

instance FromJSVal GamepadHapticActuator where
  fromJSVal = return . fmap GamepadHapticActuator . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GamepadHapticActuator
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GamepadHapticActuator where
  typeGType _ = gTypeGamepadHapticActuator
  {-# INLINE typeGType #-}

noGamepadHapticActuator :: Maybe GamepadHapticActuator
noGamepadHapticActuator = Nothing
{-# INLINE noGamepadHapticActuator #-}

foreign import javascript unsafe "(() => globalThis[\"GamepadHapticActuator\"])" gTypeGamepadHapticActuator :: GType

-- | Functions for this interface are in "GHCJS.DOM.GenericTransformStream" (streams).
newtype GenericTransformStream = GenericTransformStream { unGenericTransformStream :: JSVal }

instance Eq GenericTransformStream where
  (GenericTransformStream a) == (GenericTransformStream b) = js_eq a b

instance PToJSVal GenericTransformStream where
  pToJSVal = unGenericTransformStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal GenericTransformStream where
  pFromJSVal = GenericTransformStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal GenericTransformStream where
  toJSVal = return . unGenericTransformStream
  {-# INLINE toJSVal #-}

instance FromJSVal GenericTransformStream where
  fromJSVal = return . fmap GenericTransformStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GenericTransformStream
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGenericTransformStream o
toGenericTransformStream :: IsGenericTransformStream o => o -> GenericTransformStream
toGenericTransformStream = GenericTransformStream . coerce

instance IsGenericTransformStream GenericTransformStream

instance IsGObject GenericTransformStream where
  typeGType _ = gTypeGenericTransformStream
  {-# INLINE typeGType #-}

noGenericTransformStream :: Maybe GenericTransformStream
noGenericTransformStream = Nothing
{-# INLINE noGenericTransformStream #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGenericTransformStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.Geolocation" (geolocation).
newtype Geolocation = Geolocation { unGeolocation :: JSVal }

instance Eq Geolocation where
  (Geolocation a) == (Geolocation b) = js_eq a b

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 = return . fmap Geolocation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Geolocation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Geolocation where
  typeGType _ = gTypeGeolocation
  {-# INLINE typeGType #-}

noGeolocation :: Maybe Geolocation
noGeolocation = Nothing
{-# INLINE noGeolocation #-}

foreign import javascript unsafe "(() => globalThis[\"Geolocation\"])" gTypeGeolocation :: GType

-- | Functions for this interface are in "GHCJS.DOM.GeolocationCoordinates" (geolocation).
newtype GeolocationCoordinates = GeolocationCoordinates { unGeolocationCoordinates :: JSVal }

instance Eq GeolocationCoordinates where
  (GeolocationCoordinates a) == (GeolocationCoordinates b) = js_eq a b

instance PToJSVal GeolocationCoordinates where
  pToJSVal = unGeolocationCoordinates
  {-# INLINE pToJSVal #-}

instance PFromJSVal GeolocationCoordinates where
  pFromJSVal = GeolocationCoordinates
  {-# INLINE pFromJSVal #-}

instance ToJSVal GeolocationCoordinates where
  toJSVal = return . unGeolocationCoordinates
  {-# INLINE toJSVal #-}

instance FromJSVal GeolocationCoordinates where
  fromJSVal = return . fmap GeolocationCoordinates . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GeolocationCoordinates
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GeolocationCoordinates where
  typeGType _ = gTypeGeolocationCoordinates
  {-# INLINE typeGType #-}

noGeolocationCoordinates :: Maybe GeolocationCoordinates
noGeolocationCoordinates = Nothing
{-# INLINE noGeolocationCoordinates #-}

foreign import javascript unsafe "(() => globalThis[\"GeolocationCoordinates\"])" gTypeGeolocationCoordinates :: GType

-- | Functions for this interface are in "GHCJS.DOM.GeolocationPosition" (geolocation).
newtype GeolocationPosition = GeolocationPosition { unGeolocationPosition :: JSVal }

instance Eq GeolocationPosition where
  (GeolocationPosition a) == (GeolocationPosition b) = js_eq a b

instance PToJSVal GeolocationPosition where
  pToJSVal = unGeolocationPosition
  {-# INLINE pToJSVal #-}

instance PFromJSVal GeolocationPosition where
  pFromJSVal = GeolocationPosition
  {-# INLINE pFromJSVal #-}

instance ToJSVal GeolocationPosition where
  toJSVal = return . unGeolocationPosition
  {-# INLINE toJSVal #-}

instance FromJSVal GeolocationPosition where
  fromJSVal = return . fmap GeolocationPosition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GeolocationPosition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GeolocationPosition where
  typeGType _ = gTypeGeolocationPosition
  {-# INLINE typeGType #-}

noGeolocationPosition :: Maybe GeolocationPosition
noGeolocationPosition = Nothing
{-# INLINE noGeolocationPosition #-}

foreign import javascript unsafe "(() => globalThis[\"GeolocationPosition\"])" gTypeGeolocationPosition :: GType

-- | Functions for this interface are in "GHCJS.DOM.GeolocationPositionError" (geolocation).
newtype GeolocationPositionError = GeolocationPositionError { unGeolocationPositionError :: JSVal }

instance Eq GeolocationPositionError where
  (GeolocationPositionError a) == (GeolocationPositionError b) = js_eq a b

instance PToJSVal GeolocationPositionError where
  pToJSVal = unGeolocationPositionError
  {-# INLINE pToJSVal #-}

instance PFromJSVal GeolocationPositionError where
  pFromJSVal = GeolocationPositionError
  {-# INLINE pFromJSVal #-}

instance ToJSVal GeolocationPositionError where
  toJSVal = return . unGeolocationPositionError
  {-# INLINE toJSVal #-}

instance FromJSVal GeolocationPositionError where
  fromJSVal = return . fmap GeolocationPositionError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GeolocationPositionError
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GeolocationPositionError where
  typeGType _ = gTypeGeolocationPositionError
  {-# INLINE typeGType #-}

noGeolocationPositionError :: Maybe GeolocationPositionError
noGeolocationPositionError = Nothing
{-# INLINE noGeolocationPositionError #-}

foreign import javascript unsafe "(() => globalThis[\"GeolocationPositionError\"])" gTypeGeolocationPositionError :: GType

-- | Dictionary GetAnimationsOptions (web-animations-1)
newtype GetAnimationsOptions = GetAnimationsOptions { unGetAnimationsOptions :: JSVal }

instance Eq GetAnimationsOptions where
  (GetAnimationsOptions a) == (GetAnimationsOptions b) = js_eq a b

instance PToJSVal GetAnimationsOptions where
  pToJSVal = unGetAnimationsOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GetAnimationsOptions where
  pFromJSVal = GetAnimationsOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GetAnimationsOptions where
  toJSVal = return . unGetAnimationsOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GetAnimationsOptions where
  fromJSVal = return . fmap GetAnimationsOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GetAnimationsOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GetAnimationsOptions where
  typeGType _ = gTypeGetAnimationsOptions
  {-# INLINE typeGType #-}

noGetAnimationsOptions :: Maybe GetAnimationsOptions
noGetAnimationsOptions = Nothing
{-# INLINE noGetAnimationsOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGetAnimationsOptions :: GType

-- | Dictionary GetComposedRangesOptions (selection-api)
newtype GetComposedRangesOptions = GetComposedRangesOptions { unGetComposedRangesOptions :: JSVal }

instance Eq GetComposedRangesOptions where
  (GetComposedRangesOptions a) == (GetComposedRangesOptions b) = js_eq a b

instance PToJSVal GetComposedRangesOptions where
  pToJSVal = unGetComposedRangesOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GetComposedRangesOptions where
  pFromJSVal = GetComposedRangesOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GetComposedRangesOptions where
  toJSVal = return . unGetComposedRangesOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GetComposedRangesOptions where
  fromJSVal = return . fmap GetComposedRangesOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GetComposedRangesOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GetComposedRangesOptions where
  typeGType _ = gTypeGetComposedRangesOptions
  {-# INLINE typeGType #-}

noGetComposedRangesOptions :: Maybe GetComposedRangesOptions
noGetComposedRangesOptions = Nothing
{-# INLINE noGetComposedRangesOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGetComposedRangesOptions :: GType

-- | Dictionary GetHTMLOptions (html)
newtype GetHTMLOptions = GetHTMLOptions { unGetHTMLOptions :: JSVal }

instance Eq GetHTMLOptions where
  (GetHTMLOptions a) == (GetHTMLOptions b) = js_eq a b

instance PToJSVal GetHTMLOptions where
  pToJSVal = unGetHTMLOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GetHTMLOptions where
  pFromJSVal = GetHTMLOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GetHTMLOptions where
  toJSVal = return . unGetHTMLOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GetHTMLOptions where
  fromJSVal = return . fmap GetHTMLOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GetHTMLOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GetHTMLOptions where
  typeGType _ = gTypeGetHTMLOptions
  {-# INLINE typeGType #-}

noGetHTMLOptions :: Maybe GetHTMLOptions
noGetHTMLOptions = Nothing
{-# INLINE noGetHTMLOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGetHTMLOptions :: GType

-- | Dictionary GetNotificationOptions (notifications)
newtype GetNotificationOptions = GetNotificationOptions { unGetNotificationOptions :: JSVal }

instance Eq GetNotificationOptions where
  (GetNotificationOptions a) == (GetNotificationOptions b) = js_eq a b

instance PToJSVal GetNotificationOptions where
  pToJSVal = unGetNotificationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GetNotificationOptions where
  pFromJSVal = GetNotificationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GetNotificationOptions where
  toJSVal = return . unGetNotificationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GetNotificationOptions where
  fromJSVal = return . fmap GetNotificationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GetNotificationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GetNotificationOptions where
  typeGType _ = gTypeGetNotificationOptions
  {-# INLINE typeGType #-}

noGetNotificationOptions :: Maybe GetNotificationOptions
noGetNotificationOptions = Nothing
{-# INLINE noGetNotificationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGetNotificationOptions :: GType

-- | Dictionary GetRootNodeOptions (dom)
newtype GetRootNodeOptions = GetRootNodeOptions { unGetRootNodeOptions :: JSVal }

instance Eq GetRootNodeOptions where
  (GetRootNodeOptions a) == (GetRootNodeOptions b) = js_eq a b

instance PToJSVal GetRootNodeOptions where
  pToJSVal = unGetRootNodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal GetRootNodeOptions where
  pFromJSVal = GetRootNodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal GetRootNodeOptions where
  toJSVal = return . unGetRootNodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal GetRootNodeOptions where
  fromJSVal = return . fmap GetRootNodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GetRootNodeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject GetRootNodeOptions where
  typeGType _ = gTypeGetRootNodeOptions
  {-# INLINE typeGType #-}

noGetRootNodeOptions :: Maybe GetRootNodeOptions
noGetRootNodeOptions = Nothing
{-# INLINE noGetRootNodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGetRootNodeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.GlobalEventHandlers" (html).
newtype GlobalEventHandlers = GlobalEventHandlers { unGlobalEventHandlers :: JSVal }

instance Eq GlobalEventHandlers where
  (GlobalEventHandlers a) == (GlobalEventHandlers b) = js_eq a b

instance PToJSVal GlobalEventHandlers where
  pToJSVal = unGlobalEventHandlers
  {-# INLINE pToJSVal #-}

instance PFromJSVal GlobalEventHandlers where
  pFromJSVal = GlobalEventHandlers
  {-# INLINE pFromJSVal #-}

instance ToJSVal GlobalEventHandlers where
  toJSVal = return . unGlobalEventHandlers
  {-# INLINE toJSVal #-}

instance FromJSVal GlobalEventHandlers where
  fromJSVal = return . fmap GlobalEventHandlers . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . GlobalEventHandlers
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsGlobalEventHandlers o
toGlobalEventHandlers :: IsGlobalEventHandlers o => o -> GlobalEventHandlers
toGlobalEventHandlers = GlobalEventHandlers . coerce

instance IsGlobalEventHandlers GlobalEventHandlers

instance IsGObject GlobalEventHandlers where
  typeGType _ = gTypeGlobalEventHandlers
  {-# INLINE typeGType #-}

noGlobalEventHandlers :: Maybe GlobalEventHandlers
noGlobalEventHandlers = Nothing
{-# INLINE noGlobalEventHandlers #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeGlobalEventHandlers :: GType

-- | Dictionary HMACGetSecretInput (fido-client-to-authenticator-protocol-v2.3)
newtype HMACGetSecretInput = HMACGetSecretInput { unHMACGetSecretInput :: JSVal }

instance Eq HMACGetSecretInput where
  (HMACGetSecretInput a) == (HMACGetSecretInput b) = js_eq a b

instance PToJSVal HMACGetSecretInput where
  pToJSVal = unHMACGetSecretInput
  {-# INLINE pToJSVal #-}

instance PFromJSVal HMACGetSecretInput where
  pFromJSVal = HMACGetSecretInput
  {-# INLINE pFromJSVal #-}

instance ToJSVal HMACGetSecretInput where
  toJSVal = return . unHMACGetSecretInput
  {-# INLINE toJSVal #-}

instance FromJSVal HMACGetSecretInput where
  fromJSVal = return . fmap HMACGetSecretInput . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HMACGetSecretInput
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HMACGetSecretInput where
  typeGType _ = gTypeHMACGetSecretInput
  {-# INLINE typeGType #-}

noHMACGetSecretInput :: Maybe HMACGetSecretInput
noHMACGetSecretInput = Nothing
{-# INLINE noHMACGetSecretInput #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHMACGetSecretInput :: GType

-- | Dictionary HMACGetSecretOutput (fido-client-to-authenticator-protocol-v2.3)
newtype HMACGetSecretOutput = HMACGetSecretOutput { unHMACGetSecretOutput :: JSVal }

instance Eq HMACGetSecretOutput where
  (HMACGetSecretOutput a) == (HMACGetSecretOutput b) = js_eq a b

instance PToJSVal HMACGetSecretOutput where
  pToJSVal = unHMACGetSecretOutput
  {-# INLINE pToJSVal #-}

instance PFromJSVal HMACGetSecretOutput where
  pFromJSVal = HMACGetSecretOutput
  {-# INLINE pFromJSVal #-}

instance ToJSVal HMACGetSecretOutput where
  toJSVal = return . unHMACGetSecretOutput
  {-# INLINE toJSVal #-}

instance FromJSVal HMACGetSecretOutput where
  fromJSVal = return . fmap HMACGetSecretOutput . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HMACGetSecretOutput
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HMACGetSecretOutput where
  typeGType _ = gTypeHMACGetSecretOutput
  {-# INLINE typeGType #-}

noHMACGetSecretOutput :: Maybe HMACGetSecretOutput
noHMACGetSecretOutput = Nothing
{-# INLINE noHMACGetSecretOutput #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHMACGetSecretOutput :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLAllCollection" (html).
newtype HTMLAllCollection = HTMLAllCollection { unHTMLAllCollection :: JSVal }

instance Eq HTMLAllCollection where
  (HTMLAllCollection a) == (HTMLAllCollection b) = js_eq a b

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 = return . fmap HTMLAllCollection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLAllCollection
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HTMLAllCollection where
  typeGType _ = gTypeHTMLAllCollection
  {-# INLINE typeGType #-}

noHTMLAllCollection :: Maybe HTMLAllCollection
noHTMLAllCollection = Nothing
{-# INLINE noHTMLAllCollection #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLAllCollection\"])" gTypeHTMLAllCollection :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLAnchorElement" (html).
newtype HTMLAnchorElement = HTMLAnchorElement { unHTMLAnchorElement :: JSVal }

instance Eq HTMLAnchorElement where
  (HTMLAnchorElement a) == (HTMLAnchorElement b) = js_eq a b

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 = return . fmap HTMLAnchorElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLAnchorElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLHyperlinkElementUtils HTMLAnchorElement
instance IsHyperlinkElementUtils HTMLAnchorElement
instance IsHTMLElement HTMLAnchorElement
instance IsElementCSSInlineStyle HTMLAnchorElement
instance IsElementContentEditable HTMLAnchorElement
instance IsGlobalEventHandlers HTMLAnchorElement
instance IsHTMLOrSVGOrMathMLElement HTMLAnchorElement
instance IsElement HTMLAnchorElement
instance IsARIAMixin HTMLAnchorElement
instance IsARIANotifyMixin HTMLAnchorElement
instance IsAnimatable HTMLAnchorElement
instance IsChildNode HTMLAnchorElement
instance IsNonDocumentTypeChildNode HTMLAnchorElement
instance IsParentNode HTMLAnchorElement
instance IsSlottable HTMLAnchorElement
instance IsNode HTMLAnchorElement
instance IsEventTarget HTMLAnchorElement

instance IsGObject HTMLAnchorElement where
  typeGType _ = gTypeHTMLAnchorElement
  {-# INLINE typeGType #-}

noHTMLAnchorElement :: Maybe HTMLAnchorElement
noHTMLAnchorElement = Nothing
{-# INLINE noHTMLAnchorElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLAnchorElement\"])" gTypeHTMLAnchorElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLAreaElement" (html).
newtype HTMLAreaElement = HTMLAreaElement { unHTMLAreaElement :: JSVal }

instance Eq HTMLAreaElement where
  (HTMLAreaElement a) == (HTMLAreaElement b) = js_eq a b

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 = return . fmap HTMLAreaElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLAreaElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLHyperlinkElementUtils HTMLAreaElement
instance IsHyperlinkElementUtils HTMLAreaElement
instance IsHTMLElement HTMLAreaElement
instance IsElementCSSInlineStyle HTMLAreaElement
instance IsElementContentEditable HTMLAreaElement
instance IsGlobalEventHandlers HTMLAreaElement
instance IsHTMLOrSVGOrMathMLElement HTMLAreaElement
instance IsElement HTMLAreaElement
instance IsARIAMixin HTMLAreaElement
instance IsARIANotifyMixin HTMLAreaElement
instance IsAnimatable HTMLAreaElement
instance IsChildNode HTMLAreaElement
instance IsNonDocumentTypeChildNode HTMLAreaElement
instance IsParentNode HTMLAreaElement
instance IsSlottable HTMLAreaElement
instance IsNode HTMLAreaElement
instance IsEventTarget HTMLAreaElement

instance IsGObject HTMLAreaElement where
  typeGType _ = gTypeHTMLAreaElement
  {-# INLINE typeGType #-}

noHTMLAreaElement :: Maybe HTMLAreaElement
noHTMLAreaElement = Nothing
{-# INLINE noHTMLAreaElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLAreaElement\"])" gTypeHTMLAreaElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLAudioElement" (html).
newtype HTMLAudioElement = HTMLAudioElement { unHTMLAudioElement :: JSVal }

instance Eq HTMLAudioElement where
  (HTMLAudioElement a) == (HTMLAudioElement b) = js_eq a b

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 = return . fmap HTMLAudioElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLAudioElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLMediaElement HTMLAudioElement
instance IsHTMLElement HTMLAudioElement
instance IsElementCSSInlineStyle HTMLAudioElement
instance IsElementContentEditable HTMLAudioElement
instance IsGlobalEventHandlers HTMLAudioElement
instance IsHTMLOrSVGOrMathMLElement HTMLAudioElement
instance IsElement HTMLAudioElement
instance IsARIAMixin HTMLAudioElement
instance IsARIANotifyMixin HTMLAudioElement
instance IsAnimatable HTMLAudioElement
instance IsChildNode HTMLAudioElement
instance IsNonDocumentTypeChildNode HTMLAudioElement
instance IsParentNode HTMLAudioElement
instance IsSlottable HTMLAudioElement
instance IsNode HTMLAudioElement
instance IsEventTarget HTMLAudioElement

instance IsGObject HTMLAudioElement where
  typeGType _ = gTypeHTMLAudioElement
  {-# INLINE typeGType #-}

noHTMLAudioElement :: Maybe HTMLAudioElement
noHTMLAudioElement = Nothing
{-# INLINE noHTMLAudioElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLAudioElement\"])" gTypeHTMLAudioElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLBRElement" (html).
newtype HTMLBRElement = HTMLBRElement { unHTMLBRElement :: JSVal }

instance Eq HTMLBRElement where
  (HTMLBRElement a) == (HTMLBRElement b) = js_eq a b

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 = return . fmap HTMLBRElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLBRElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLBRElement
instance IsElementCSSInlineStyle HTMLBRElement
instance IsElementContentEditable HTMLBRElement
instance IsGlobalEventHandlers HTMLBRElement
instance IsHTMLOrSVGOrMathMLElement HTMLBRElement
instance IsElement HTMLBRElement
instance IsARIAMixin HTMLBRElement
instance IsARIANotifyMixin HTMLBRElement
instance IsAnimatable HTMLBRElement
instance IsChildNode HTMLBRElement
instance IsNonDocumentTypeChildNode HTMLBRElement
instance IsParentNode HTMLBRElement
instance IsSlottable HTMLBRElement
instance IsNode HTMLBRElement
instance IsEventTarget HTMLBRElement

instance IsGObject HTMLBRElement where
  typeGType _ = gTypeHTMLBRElement
  {-# INLINE typeGType #-}

noHTMLBRElement :: Maybe HTMLBRElement
noHTMLBRElement = Nothing
{-# INLINE noHTMLBRElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLBRElement\"])" gTypeHTMLBRElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLBaseElement" (html).
newtype HTMLBaseElement = HTMLBaseElement { unHTMLBaseElement :: JSVal }

instance Eq HTMLBaseElement where
  (HTMLBaseElement a) == (HTMLBaseElement b) = js_eq a b

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 = return . fmap HTMLBaseElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLBaseElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLBaseElement
instance IsElementCSSInlineStyle HTMLBaseElement
instance IsElementContentEditable HTMLBaseElement
instance IsGlobalEventHandlers HTMLBaseElement
instance IsHTMLOrSVGOrMathMLElement HTMLBaseElement
instance IsElement HTMLBaseElement
instance IsARIAMixin HTMLBaseElement
instance IsARIANotifyMixin HTMLBaseElement
instance IsAnimatable HTMLBaseElement
instance IsChildNode HTMLBaseElement
instance IsNonDocumentTypeChildNode HTMLBaseElement
instance IsParentNode HTMLBaseElement
instance IsSlottable HTMLBaseElement
instance IsNode HTMLBaseElement
instance IsEventTarget HTMLBaseElement

instance IsGObject HTMLBaseElement where
  typeGType _ = gTypeHTMLBaseElement
  {-# INLINE typeGType #-}

noHTMLBaseElement :: Maybe HTMLBaseElement
noHTMLBaseElement = Nothing
{-# INLINE noHTMLBaseElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLBaseElement\"])" gTypeHTMLBaseElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLBodyElement" (html).
newtype HTMLBodyElement = HTMLBodyElement { unHTMLBodyElement :: JSVal }

instance Eq HTMLBodyElement where
  (HTMLBodyElement a) == (HTMLBodyElement b) = js_eq a b

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 = return . fmap HTMLBodyElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLBodyElement
  {-# INLINE fromJSValUnchecked #-}

instance IsWindowEventHandlers HTMLBodyElement
instance IsHTMLElement HTMLBodyElement
instance IsElementCSSInlineStyle HTMLBodyElement
instance IsElementContentEditable HTMLBodyElement
instance IsGlobalEventHandlers HTMLBodyElement
instance IsHTMLOrSVGOrMathMLElement HTMLBodyElement
instance IsElement HTMLBodyElement
instance IsARIAMixin HTMLBodyElement
instance IsARIANotifyMixin HTMLBodyElement
instance IsAnimatable HTMLBodyElement
instance IsChildNode HTMLBodyElement
instance IsNonDocumentTypeChildNode HTMLBodyElement
instance IsParentNode HTMLBodyElement
instance IsSlottable HTMLBodyElement
instance IsNode HTMLBodyElement
instance IsEventTarget HTMLBodyElement

instance IsGObject HTMLBodyElement where
  typeGType _ = gTypeHTMLBodyElement
  {-# INLINE typeGType #-}

noHTMLBodyElement :: Maybe HTMLBodyElement
noHTMLBodyElement = Nothing
{-# INLINE noHTMLBodyElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLBodyElement\"])" gTypeHTMLBodyElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLButtonElement" (html).
newtype HTMLButtonElement = HTMLButtonElement { unHTMLButtonElement :: JSVal }

instance Eq HTMLButtonElement where
  (HTMLButtonElement a) == (HTMLButtonElement b) = js_eq a b

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 = return . fmap HTMLButtonElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLButtonElement
  {-# INLINE fromJSValUnchecked #-}

instance IsPopoverTargetAttributes HTMLButtonElement
instance IsHTMLElement HTMLButtonElement
instance IsElementCSSInlineStyle HTMLButtonElement
instance IsElementContentEditable HTMLButtonElement
instance IsGlobalEventHandlers HTMLButtonElement
instance IsHTMLOrSVGOrMathMLElement HTMLButtonElement
instance IsElement HTMLButtonElement
instance IsARIAMixin HTMLButtonElement
instance IsARIANotifyMixin HTMLButtonElement
instance IsAnimatable HTMLButtonElement
instance IsChildNode HTMLButtonElement
instance IsNonDocumentTypeChildNode HTMLButtonElement
instance IsParentNode HTMLButtonElement
instance IsSlottable HTMLButtonElement
instance IsNode HTMLButtonElement
instance IsEventTarget HTMLButtonElement

instance IsGObject HTMLButtonElement where
  typeGType _ = gTypeHTMLButtonElement
  {-# INLINE typeGType #-}

noHTMLButtonElement :: Maybe HTMLButtonElement
noHTMLButtonElement = Nothing
{-# INLINE noHTMLButtonElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLButtonElement\"])" gTypeHTMLButtonElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLCanvasElement" (html).
newtype HTMLCanvasElement = HTMLCanvasElement { unHTMLCanvasElement :: JSVal }

instance Eq HTMLCanvasElement where
  (HTMLCanvasElement a) == (HTMLCanvasElement b) = js_eq a b

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 = return . fmap HTMLCanvasElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLCanvasElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLCanvasElement
instance IsElementCSSInlineStyle HTMLCanvasElement
instance IsElementContentEditable HTMLCanvasElement
instance IsGlobalEventHandlers HTMLCanvasElement
instance IsHTMLOrSVGOrMathMLElement HTMLCanvasElement
instance IsElement HTMLCanvasElement
instance IsARIAMixin HTMLCanvasElement
instance IsARIANotifyMixin HTMLCanvasElement
instance IsAnimatable HTMLCanvasElement
instance IsChildNode HTMLCanvasElement
instance IsNonDocumentTypeChildNode HTMLCanvasElement
instance IsParentNode HTMLCanvasElement
instance IsSlottable HTMLCanvasElement
instance IsNode HTMLCanvasElement
instance IsEventTarget HTMLCanvasElement

instance IsGObject HTMLCanvasElement where
  typeGType _ = gTypeHTMLCanvasElement
  {-# INLINE typeGType #-}

noHTMLCanvasElement :: Maybe HTMLCanvasElement
noHTMLCanvasElement = Nothing
{-# INLINE noHTMLCanvasElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLCanvasElement\"])" gTypeHTMLCanvasElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLCollection" (dom).
newtype HTMLCollection = HTMLCollection { unHTMLCollection :: JSVal }

instance Eq HTMLCollection where
  (HTMLCollection a) == (HTMLCollection b) = js_eq a b

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 = return . fmap HTMLCollection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLCollection
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsHTMLCollection o
toHTMLCollection :: IsHTMLCollection o => o -> HTMLCollection
toHTMLCollection = HTMLCollection . coerce

instance IsHTMLCollection HTMLCollection

instance IsGObject HTMLCollection where
  typeGType _ = gTypeHTMLCollection
  {-# INLINE typeGType #-}

noHTMLCollection :: Maybe HTMLCollection
noHTMLCollection = Nothing
{-# INLINE noHTMLCollection #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLCollection\"])" gTypeHTMLCollection :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDListElement" (html).
newtype HTMLDListElement = HTMLDListElement { unHTMLDListElement :: JSVal }

instance Eq HTMLDListElement where
  (HTMLDListElement a) == (HTMLDListElement b) = js_eq a b

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 = return . fmap HTMLDListElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDListElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDListElement
instance IsElementCSSInlineStyle HTMLDListElement
instance IsElementContentEditable HTMLDListElement
instance IsGlobalEventHandlers HTMLDListElement
instance IsHTMLOrSVGOrMathMLElement HTMLDListElement
instance IsElement HTMLDListElement
instance IsARIAMixin HTMLDListElement
instance IsARIANotifyMixin HTMLDListElement
instance IsAnimatable HTMLDListElement
instance IsChildNode HTMLDListElement
instance IsNonDocumentTypeChildNode HTMLDListElement
instance IsParentNode HTMLDListElement
instance IsSlottable HTMLDListElement
instance IsNode HTMLDListElement
instance IsEventTarget HTMLDListElement

instance IsGObject HTMLDListElement where
  typeGType _ = gTypeHTMLDListElement
  {-# INLINE typeGType #-}

noHTMLDListElement :: Maybe HTMLDListElement
noHTMLDListElement = Nothing
{-# INLINE noHTMLDListElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDListElement\"])" gTypeHTMLDListElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDataElement" (html).
newtype HTMLDataElement = HTMLDataElement { unHTMLDataElement :: JSVal }

instance Eq HTMLDataElement where
  (HTMLDataElement a) == (HTMLDataElement b) = js_eq a b

instance PToJSVal HTMLDataElement where
  pToJSVal = unHTMLDataElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLDataElement where
  pFromJSVal = HTMLDataElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLDataElement where
  toJSVal = return . unHTMLDataElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLDataElement where
  fromJSVal = return . fmap HTMLDataElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDataElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDataElement
instance IsElementCSSInlineStyle HTMLDataElement
instance IsElementContentEditable HTMLDataElement
instance IsGlobalEventHandlers HTMLDataElement
instance IsHTMLOrSVGOrMathMLElement HTMLDataElement
instance IsElement HTMLDataElement
instance IsARIAMixin HTMLDataElement
instance IsARIANotifyMixin HTMLDataElement
instance IsAnimatable HTMLDataElement
instance IsChildNode HTMLDataElement
instance IsNonDocumentTypeChildNode HTMLDataElement
instance IsParentNode HTMLDataElement
instance IsSlottable HTMLDataElement
instance IsNode HTMLDataElement
instance IsEventTarget HTMLDataElement

instance IsGObject HTMLDataElement where
  typeGType _ = gTypeHTMLDataElement
  {-# INLINE typeGType #-}

noHTMLDataElement :: Maybe HTMLDataElement
noHTMLDataElement = Nothing
{-# INLINE noHTMLDataElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDataElement\"])" gTypeHTMLDataElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDataListElement" (html).
newtype HTMLDataListElement = HTMLDataListElement { unHTMLDataListElement :: JSVal }

instance Eq HTMLDataListElement where
  (HTMLDataListElement a) == (HTMLDataListElement b) = js_eq a b

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 = return . fmap HTMLDataListElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDataListElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDataListElement
instance IsElementCSSInlineStyle HTMLDataListElement
instance IsElementContentEditable HTMLDataListElement
instance IsGlobalEventHandlers HTMLDataListElement
instance IsHTMLOrSVGOrMathMLElement HTMLDataListElement
instance IsElement HTMLDataListElement
instance IsARIAMixin HTMLDataListElement
instance IsARIANotifyMixin HTMLDataListElement
instance IsAnimatable HTMLDataListElement
instance IsChildNode HTMLDataListElement
instance IsNonDocumentTypeChildNode HTMLDataListElement
instance IsParentNode HTMLDataListElement
instance IsSlottable HTMLDataListElement
instance IsNode HTMLDataListElement
instance IsEventTarget HTMLDataListElement

instance IsGObject HTMLDataListElement where
  typeGType _ = gTypeHTMLDataListElement
  {-# INLINE typeGType #-}

noHTMLDataListElement :: Maybe HTMLDataListElement
noHTMLDataListElement = Nothing
{-# INLINE noHTMLDataListElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDataListElement\"])" gTypeHTMLDataListElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDetailsElement" (html).
newtype HTMLDetailsElement = HTMLDetailsElement { unHTMLDetailsElement :: JSVal }

instance Eq HTMLDetailsElement where
  (HTMLDetailsElement a) == (HTMLDetailsElement b) = js_eq a b

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 = return . fmap HTMLDetailsElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDetailsElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDetailsElement
instance IsElementCSSInlineStyle HTMLDetailsElement
instance IsElementContentEditable HTMLDetailsElement
instance IsGlobalEventHandlers HTMLDetailsElement
instance IsHTMLOrSVGOrMathMLElement HTMLDetailsElement
instance IsElement HTMLDetailsElement
instance IsARIAMixin HTMLDetailsElement
instance IsARIANotifyMixin HTMLDetailsElement
instance IsAnimatable HTMLDetailsElement
instance IsChildNode HTMLDetailsElement
instance IsNonDocumentTypeChildNode HTMLDetailsElement
instance IsParentNode HTMLDetailsElement
instance IsSlottable HTMLDetailsElement
instance IsNode HTMLDetailsElement
instance IsEventTarget HTMLDetailsElement

instance IsGObject HTMLDetailsElement where
  typeGType _ = gTypeHTMLDetailsElement
  {-# INLINE typeGType #-}

noHTMLDetailsElement :: Maybe HTMLDetailsElement
noHTMLDetailsElement = Nothing
{-# INLINE noHTMLDetailsElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDetailsElement\"])" gTypeHTMLDetailsElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDialogElement" (html).
newtype HTMLDialogElement = HTMLDialogElement { unHTMLDialogElement :: JSVal }

instance Eq HTMLDialogElement where
  (HTMLDialogElement a) == (HTMLDialogElement b) = js_eq a b

instance PToJSVal HTMLDialogElement where
  pToJSVal = unHTMLDialogElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLDialogElement where
  pFromJSVal = HTMLDialogElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLDialogElement where
  toJSVal = return . unHTMLDialogElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLDialogElement where
  fromJSVal = return . fmap HTMLDialogElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDialogElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDialogElement
instance IsElementCSSInlineStyle HTMLDialogElement
instance IsElementContentEditable HTMLDialogElement
instance IsGlobalEventHandlers HTMLDialogElement
instance IsHTMLOrSVGOrMathMLElement HTMLDialogElement
instance IsElement HTMLDialogElement
instance IsARIAMixin HTMLDialogElement
instance IsARIANotifyMixin HTMLDialogElement
instance IsAnimatable HTMLDialogElement
instance IsChildNode HTMLDialogElement
instance IsNonDocumentTypeChildNode HTMLDialogElement
instance IsParentNode HTMLDialogElement
instance IsSlottable HTMLDialogElement
instance IsNode HTMLDialogElement
instance IsEventTarget HTMLDialogElement

instance IsGObject HTMLDialogElement where
  typeGType _ = gTypeHTMLDialogElement
  {-# INLINE typeGType #-}

noHTMLDialogElement :: Maybe HTMLDialogElement
noHTMLDialogElement = Nothing
{-# INLINE noHTMLDialogElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDialogElement\"])" gTypeHTMLDialogElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDirectoryElement" (html).
newtype HTMLDirectoryElement = HTMLDirectoryElement { unHTMLDirectoryElement :: JSVal }

instance Eq HTMLDirectoryElement where
  (HTMLDirectoryElement a) == (HTMLDirectoryElement b) = js_eq a b

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 = return . fmap HTMLDirectoryElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDirectoryElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDirectoryElement
instance IsElementCSSInlineStyle HTMLDirectoryElement
instance IsElementContentEditable HTMLDirectoryElement
instance IsGlobalEventHandlers HTMLDirectoryElement
instance IsHTMLOrSVGOrMathMLElement HTMLDirectoryElement
instance IsElement HTMLDirectoryElement
instance IsARIAMixin HTMLDirectoryElement
instance IsARIANotifyMixin HTMLDirectoryElement
instance IsAnimatable HTMLDirectoryElement
instance IsChildNode HTMLDirectoryElement
instance IsNonDocumentTypeChildNode HTMLDirectoryElement
instance IsParentNode HTMLDirectoryElement
instance IsSlottable HTMLDirectoryElement
instance IsNode HTMLDirectoryElement
instance IsEventTarget HTMLDirectoryElement

instance IsGObject HTMLDirectoryElement where
  typeGType _ = gTypeHTMLDirectoryElement
  {-# INLINE typeGType #-}

noHTMLDirectoryElement :: Maybe HTMLDirectoryElement
noHTMLDirectoryElement = Nothing
{-# INLINE noHTMLDirectoryElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDirectoryElement\"])" gTypeHTMLDirectoryElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLDivElement" (html).
newtype HTMLDivElement = HTMLDivElement { unHTMLDivElement :: JSVal }

instance Eq HTMLDivElement where
  (HTMLDivElement a) == (HTMLDivElement b) = js_eq a b

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 = return . fmap HTMLDivElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLDivElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLDivElement
instance IsElementCSSInlineStyle HTMLDivElement
instance IsElementContentEditable HTMLDivElement
instance IsGlobalEventHandlers HTMLDivElement
instance IsHTMLOrSVGOrMathMLElement HTMLDivElement
instance IsElement HTMLDivElement
instance IsARIAMixin HTMLDivElement
instance IsARIANotifyMixin HTMLDivElement
instance IsAnimatable HTMLDivElement
instance IsChildNode HTMLDivElement
instance IsNonDocumentTypeChildNode HTMLDivElement
instance IsParentNode HTMLDivElement
instance IsSlottable HTMLDivElement
instance IsNode HTMLDivElement
instance IsEventTarget HTMLDivElement

instance IsGObject HTMLDivElement where
  typeGType _ = gTypeHTMLDivElement
  {-# INLINE typeGType #-}

noHTMLDivElement :: Maybe HTMLDivElement
noHTMLDivElement = Nothing
{-# INLINE noHTMLDivElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLDivElement\"])" gTypeHTMLDivElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLElement" (html).
newtype HTMLElement = HTMLElement { unHTMLElement :: JSVal }

instance Eq HTMLElement where
  (HTMLElement a) == (HTMLElement b) = js_eq a b

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 = return . fmap HTMLElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLElement
  {-# INLINE fromJSValUnchecked #-}

class (IsElement o, IsElementCSSInlineStyle o, IsElementContentEditable o, IsGlobalEventHandlers o, IsHTMLOrSVGOrMathMLElement o, IsGObject o) => IsHTMLElement o
toHTMLElement :: IsHTMLElement o => o -> HTMLElement
toHTMLElement = HTMLElement . coerce

instance IsHTMLElement HTMLElement
instance IsElementCSSInlineStyle HTMLElement
instance IsElementContentEditable HTMLElement
instance IsGlobalEventHandlers HTMLElement
instance IsHTMLOrSVGOrMathMLElement HTMLElement
instance IsElement HTMLElement
instance IsARIAMixin HTMLElement
instance IsARIANotifyMixin HTMLElement
instance IsAnimatable HTMLElement
instance IsChildNode HTMLElement
instance IsNonDocumentTypeChildNode HTMLElement
instance IsParentNode HTMLElement
instance IsSlottable HTMLElement
instance IsNode HTMLElement
instance IsEventTarget HTMLElement

instance IsGObject HTMLElement where
  typeGType _ = gTypeHTMLElement
  {-# INLINE typeGType #-}

noHTMLElement :: Maybe HTMLElement
noHTMLElement = Nothing
{-# INLINE noHTMLElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLElement\"])" gTypeHTMLElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLEmbedElement" (html).
newtype HTMLEmbedElement = HTMLEmbedElement { unHTMLEmbedElement :: JSVal }

instance Eq HTMLEmbedElement where
  (HTMLEmbedElement a) == (HTMLEmbedElement b) = js_eq a b

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 = return . fmap HTMLEmbedElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLEmbedElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLEmbedElement
instance IsElementCSSInlineStyle HTMLEmbedElement
instance IsElementContentEditable HTMLEmbedElement
instance IsGlobalEventHandlers HTMLEmbedElement
instance IsHTMLOrSVGOrMathMLElement HTMLEmbedElement
instance IsElement HTMLEmbedElement
instance IsARIAMixin HTMLEmbedElement
instance IsARIANotifyMixin HTMLEmbedElement
instance IsAnimatable HTMLEmbedElement
instance IsChildNode HTMLEmbedElement
instance IsNonDocumentTypeChildNode HTMLEmbedElement
instance IsParentNode HTMLEmbedElement
instance IsSlottable HTMLEmbedElement
instance IsNode HTMLEmbedElement
instance IsEventTarget HTMLEmbedElement

instance IsGObject HTMLEmbedElement where
  typeGType _ = gTypeHTMLEmbedElement
  {-# INLINE typeGType #-}

noHTMLEmbedElement :: Maybe HTMLEmbedElement
noHTMLEmbedElement = Nothing
{-# INLINE noHTMLEmbedElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLEmbedElement\"])" gTypeHTMLEmbedElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLFieldSetElement" (html).
newtype HTMLFieldSetElement = HTMLFieldSetElement { unHTMLFieldSetElement :: JSVal }

instance Eq HTMLFieldSetElement where
  (HTMLFieldSetElement a) == (HTMLFieldSetElement b) = js_eq a b

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 = return . fmap HTMLFieldSetElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLFieldSetElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLFieldSetElement
instance IsElementCSSInlineStyle HTMLFieldSetElement
instance IsElementContentEditable HTMLFieldSetElement
instance IsGlobalEventHandlers HTMLFieldSetElement
instance IsHTMLOrSVGOrMathMLElement HTMLFieldSetElement
instance IsElement HTMLFieldSetElement
instance IsARIAMixin HTMLFieldSetElement
instance IsARIANotifyMixin HTMLFieldSetElement
instance IsAnimatable HTMLFieldSetElement
instance IsChildNode HTMLFieldSetElement
instance IsNonDocumentTypeChildNode HTMLFieldSetElement
instance IsParentNode HTMLFieldSetElement
instance IsSlottable HTMLFieldSetElement
instance IsNode HTMLFieldSetElement
instance IsEventTarget HTMLFieldSetElement

instance IsGObject HTMLFieldSetElement where
  typeGType _ = gTypeHTMLFieldSetElement
  {-# INLINE typeGType #-}

noHTMLFieldSetElement :: Maybe HTMLFieldSetElement
noHTMLFieldSetElement = Nothing
{-# INLINE noHTMLFieldSetElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLFieldSetElement\"])" gTypeHTMLFieldSetElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLFontElement" (html).
newtype HTMLFontElement = HTMLFontElement { unHTMLFontElement :: JSVal }

instance Eq HTMLFontElement where
  (HTMLFontElement a) == (HTMLFontElement b) = js_eq a b

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 = return . fmap HTMLFontElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLFontElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLFontElement
instance IsElementCSSInlineStyle HTMLFontElement
instance IsElementContentEditable HTMLFontElement
instance IsGlobalEventHandlers HTMLFontElement
instance IsHTMLOrSVGOrMathMLElement HTMLFontElement
instance IsElement HTMLFontElement
instance IsARIAMixin HTMLFontElement
instance IsARIANotifyMixin HTMLFontElement
instance IsAnimatable HTMLFontElement
instance IsChildNode HTMLFontElement
instance IsNonDocumentTypeChildNode HTMLFontElement
instance IsParentNode HTMLFontElement
instance IsSlottable HTMLFontElement
instance IsNode HTMLFontElement
instance IsEventTarget HTMLFontElement

instance IsGObject HTMLFontElement where
  typeGType _ = gTypeHTMLFontElement
  {-# INLINE typeGType #-}

noHTMLFontElement :: Maybe HTMLFontElement
noHTMLFontElement = Nothing
{-# INLINE noHTMLFontElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLFontElement\"])" gTypeHTMLFontElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLFormControlsCollection" (html).
newtype HTMLFormControlsCollection = HTMLFormControlsCollection { unHTMLFormControlsCollection :: JSVal }

instance Eq HTMLFormControlsCollection where
  (HTMLFormControlsCollection a) == (HTMLFormControlsCollection b) = js_eq a b

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 = return . fmap HTMLFormControlsCollection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLFormControlsCollection
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLCollection HTMLFormControlsCollection

instance IsGObject HTMLFormControlsCollection where
  typeGType _ = gTypeHTMLFormControlsCollection
  {-# INLINE typeGType #-}

noHTMLFormControlsCollection :: Maybe HTMLFormControlsCollection
noHTMLFormControlsCollection = Nothing
{-# INLINE noHTMLFormControlsCollection #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLFormControlsCollection\"])" gTypeHTMLFormControlsCollection :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLFormElement" (html).
newtype HTMLFormElement = HTMLFormElement { unHTMLFormElement :: JSVal }

instance Eq HTMLFormElement where
  (HTMLFormElement a) == (HTMLFormElement b) = js_eq a b

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 = return . fmap HTMLFormElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLFormElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLFormElement
instance IsElementCSSInlineStyle HTMLFormElement
instance IsElementContentEditable HTMLFormElement
instance IsGlobalEventHandlers HTMLFormElement
instance IsHTMLOrSVGOrMathMLElement HTMLFormElement
instance IsElement HTMLFormElement
instance IsARIAMixin HTMLFormElement
instance IsARIANotifyMixin HTMLFormElement
instance IsAnimatable HTMLFormElement
instance IsChildNode HTMLFormElement
instance IsNonDocumentTypeChildNode HTMLFormElement
instance IsParentNode HTMLFormElement
instance IsSlottable HTMLFormElement
instance IsNode HTMLFormElement
instance IsEventTarget HTMLFormElement

instance IsGObject HTMLFormElement where
  typeGType _ = gTypeHTMLFormElement
  {-# INLINE typeGType #-}

noHTMLFormElement :: Maybe HTMLFormElement
noHTMLFormElement = Nothing
{-# INLINE noHTMLFormElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLFormElement\"])" gTypeHTMLFormElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLFrameElement" (html).
newtype HTMLFrameElement = HTMLFrameElement { unHTMLFrameElement :: JSVal }

instance Eq HTMLFrameElement where
  (HTMLFrameElement a) == (HTMLFrameElement b) = js_eq a b

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 = return . fmap HTMLFrameElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLFrameElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLFrameElement
instance IsElementCSSInlineStyle HTMLFrameElement
instance IsElementContentEditable HTMLFrameElement
instance IsGlobalEventHandlers HTMLFrameElement
instance IsHTMLOrSVGOrMathMLElement HTMLFrameElement
instance IsElement HTMLFrameElement
instance IsARIAMixin HTMLFrameElement
instance IsARIANotifyMixin HTMLFrameElement
instance IsAnimatable HTMLFrameElement
instance IsChildNode HTMLFrameElement
instance IsNonDocumentTypeChildNode HTMLFrameElement
instance IsParentNode HTMLFrameElement
instance IsSlottable HTMLFrameElement
instance IsNode HTMLFrameElement
instance IsEventTarget HTMLFrameElement

instance IsGObject HTMLFrameElement where
  typeGType _ = gTypeHTMLFrameElement
  {-# INLINE typeGType #-}

noHTMLFrameElement :: Maybe HTMLFrameElement
noHTMLFrameElement = Nothing
{-# INLINE noHTMLFrameElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLFrameElement\"])" gTypeHTMLFrameElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLFrameSetElement" (html).
newtype HTMLFrameSetElement = HTMLFrameSetElement { unHTMLFrameSetElement :: JSVal }

instance Eq HTMLFrameSetElement where
  (HTMLFrameSetElement a) == (HTMLFrameSetElement b) = js_eq a b

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 = return . fmap HTMLFrameSetElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLFrameSetElement
  {-# INLINE fromJSValUnchecked #-}

instance IsWindowEventHandlers HTMLFrameSetElement
instance IsHTMLElement HTMLFrameSetElement
instance IsElementCSSInlineStyle HTMLFrameSetElement
instance IsElementContentEditable HTMLFrameSetElement
instance IsGlobalEventHandlers HTMLFrameSetElement
instance IsHTMLOrSVGOrMathMLElement HTMLFrameSetElement
instance IsElement HTMLFrameSetElement
instance IsARIAMixin HTMLFrameSetElement
instance IsARIANotifyMixin HTMLFrameSetElement
instance IsAnimatable HTMLFrameSetElement
instance IsChildNode HTMLFrameSetElement
instance IsNonDocumentTypeChildNode HTMLFrameSetElement
instance IsParentNode HTMLFrameSetElement
instance IsSlottable HTMLFrameSetElement
instance IsNode HTMLFrameSetElement
instance IsEventTarget HTMLFrameSetElement

instance IsGObject HTMLFrameSetElement where
  typeGType _ = gTypeHTMLFrameSetElement
  {-# INLINE typeGType #-}

noHTMLFrameSetElement :: Maybe HTMLFrameSetElement
noHTMLFrameSetElement = Nothing
{-# INLINE noHTMLFrameSetElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLFrameSetElement\"])" gTypeHTMLFrameSetElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLHRElement" (html).
newtype HTMLHRElement = HTMLHRElement { unHTMLHRElement :: JSVal }

instance Eq HTMLHRElement where
  (HTMLHRElement a) == (HTMLHRElement b) = js_eq a b

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 = return . fmap HTMLHRElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLHRElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLHRElement
instance IsElementCSSInlineStyle HTMLHRElement
instance IsElementContentEditable HTMLHRElement
instance IsGlobalEventHandlers HTMLHRElement
instance IsHTMLOrSVGOrMathMLElement HTMLHRElement
instance IsElement HTMLHRElement
instance IsARIAMixin HTMLHRElement
instance IsARIANotifyMixin HTMLHRElement
instance IsAnimatable HTMLHRElement
instance IsChildNode HTMLHRElement
instance IsNonDocumentTypeChildNode HTMLHRElement
instance IsParentNode HTMLHRElement
instance IsSlottable HTMLHRElement
instance IsNode HTMLHRElement
instance IsEventTarget HTMLHRElement

instance IsGObject HTMLHRElement where
  typeGType _ = gTypeHTMLHRElement
  {-# INLINE typeGType #-}

noHTMLHRElement :: Maybe HTMLHRElement
noHTMLHRElement = Nothing
{-# INLINE noHTMLHRElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLHRElement\"])" gTypeHTMLHRElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLHeadElement" (html).
newtype HTMLHeadElement = HTMLHeadElement { unHTMLHeadElement :: JSVal }

instance Eq HTMLHeadElement where
  (HTMLHeadElement a) == (HTMLHeadElement b) = js_eq a b

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 = return . fmap HTMLHeadElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLHeadElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLHeadElement
instance IsElementCSSInlineStyle HTMLHeadElement
instance IsElementContentEditable HTMLHeadElement
instance IsGlobalEventHandlers HTMLHeadElement
instance IsHTMLOrSVGOrMathMLElement HTMLHeadElement
instance IsElement HTMLHeadElement
instance IsARIAMixin HTMLHeadElement
instance IsARIANotifyMixin HTMLHeadElement
instance IsAnimatable HTMLHeadElement
instance IsChildNode HTMLHeadElement
instance IsNonDocumentTypeChildNode HTMLHeadElement
instance IsParentNode HTMLHeadElement
instance IsSlottable HTMLHeadElement
instance IsNode HTMLHeadElement
instance IsEventTarget HTMLHeadElement

instance IsGObject HTMLHeadElement where
  typeGType _ = gTypeHTMLHeadElement
  {-# INLINE typeGType #-}

noHTMLHeadElement :: Maybe HTMLHeadElement
noHTMLHeadElement = Nothing
{-# INLINE noHTMLHeadElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLHeadElement\"])" gTypeHTMLHeadElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLHeadingElement" (html).
newtype HTMLHeadingElement = HTMLHeadingElement { unHTMLHeadingElement :: JSVal }

instance Eq HTMLHeadingElement where
  (HTMLHeadingElement a) == (HTMLHeadingElement b) = js_eq a b

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 = return . fmap HTMLHeadingElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLHeadingElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLHeadingElement
instance IsElementCSSInlineStyle HTMLHeadingElement
instance IsElementContentEditable HTMLHeadingElement
instance IsGlobalEventHandlers HTMLHeadingElement
instance IsHTMLOrSVGOrMathMLElement HTMLHeadingElement
instance IsElement HTMLHeadingElement
instance IsARIAMixin HTMLHeadingElement
instance IsARIANotifyMixin HTMLHeadingElement
instance IsAnimatable HTMLHeadingElement
instance IsChildNode HTMLHeadingElement
instance IsNonDocumentTypeChildNode HTMLHeadingElement
instance IsParentNode HTMLHeadingElement
instance IsSlottable HTMLHeadingElement
instance IsNode HTMLHeadingElement
instance IsEventTarget HTMLHeadingElement

instance IsGObject HTMLHeadingElement where
  typeGType _ = gTypeHTMLHeadingElement
  {-# INLINE typeGType #-}

noHTMLHeadingElement :: Maybe HTMLHeadingElement
noHTMLHeadingElement = Nothing
{-# INLINE noHTMLHeadingElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLHeadingElement\"])" gTypeHTMLHeadingElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLHtmlElement" (html).
newtype HTMLHtmlElement = HTMLHtmlElement { unHTMLHtmlElement :: JSVal }

instance Eq HTMLHtmlElement where
  (HTMLHtmlElement a) == (HTMLHtmlElement b) = js_eq a b

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 = return . fmap HTMLHtmlElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLHtmlElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLHtmlElement
instance IsElementCSSInlineStyle HTMLHtmlElement
instance IsElementContentEditable HTMLHtmlElement
instance IsGlobalEventHandlers HTMLHtmlElement
instance IsHTMLOrSVGOrMathMLElement HTMLHtmlElement
instance IsElement HTMLHtmlElement
instance IsARIAMixin HTMLHtmlElement
instance IsARIANotifyMixin HTMLHtmlElement
instance IsAnimatable HTMLHtmlElement
instance IsChildNode HTMLHtmlElement
instance IsNonDocumentTypeChildNode HTMLHtmlElement
instance IsParentNode HTMLHtmlElement
instance IsSlottable HTMLHtmlElement
instance IsNode HTMLHtmlElement
instance IsEventTarget HTMLHtmlElement

instance IsGObject HTMLHtmlElement where
  typeGType _ = gTypeHTMLHtmlElement
  {-# INLINE typeGType #-}

noHTMLHtmlElement :: Maybe HTMLHtmlElement
noHTMLHtmlElement = Nothing
{-# INLINE noHTMLHtmlElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLHtmlElement\"])" gTypeHTMLHtmlElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLHyperlinkElementUtils" (html).
newtype HTMLHyperlinkElementUtils = HTMLHyperlinkElementUtils { unHTMLHyperlinkElementUtils :: JSVal }

instance Eq HTMLHyperlinkElementUtils where
  (HTMLHyperlinkElementUtils a) == (HTMLHyperlinkElementUtils b) = js_eq a b

instance PToJSVal HTMLHyperlinkElementUtils where
  pToJSVal = unHTMLHyperlinkElementUtils
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLHyperlinkElementUtils where
  pFromJSVal = HTMLHyperlinkElementUtils
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLHyperlinkElementUtils where
  toJSVal = return . unHTMLHyperlinkElementUtils
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLHyperlinkElementUtils where
  fromJSVal = return . fmap HTMLHyperlinkElementUtils . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLHyperlinkElementUtils
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsHTMLHyperlinkElementUtils o
toHTMLHyperlinkElementUtils :: IsHTMLHyperlinkElementUtils o => o -> HTMLHyperlinkElementUtils
toHTMLHyperlinkElementUtils = HTMLHyperlinkElementUtils . coerce

instance IsHTMLHyperlinkElementUtils HTMLHyperlinkElementUtils

instance IsGObject HTMLHyperlinkElementUtils where
  typeGType _ = gTypeHTMLHyperlinkElementUtils
  {-# INLINE typeGType #-}

noHTMLHyperlinkElementUtils :: Maybe HTMLHyperlinkElementUtils
noHTMLHyperlinkElementUtils = Nothing
{-# INLINE noHTMLHyperlinkElementUtils #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHTMLHyperlinkElementUtils :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLIFrameElement" (html).
newtype HTMLIFrameElement = HTMLIFrameElement { unHTMLIFrameElement :: JSVal }

instance Eq HTMLIFrameElement where
  (HTMLIFrameElement a) == (HTMLIFrameElement b) = js_eq a b

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 = return . fmap HTMLIFrameElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLIFrameElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLIFrameElement
instance IsElementCSSInlineStyle HTMLIFrameElement
instance IsElementContentEditable HTMLIFrameElement
instance IsGlobalEventHandlers HTMLIFrameElement
instance IsHTMLOrSVGOrMathMLElement HTMLIFrameElement
instance IsElement HTMLIFrameElement
instance IsARIAMixin HTMLIFrameElement
instance IsARIANotifyMixin HTMLIFrameElement
instance IsAnimatable HTMLIFrameElement
instance IsChildNode HTMLIFrameElement
instance IsNonDocumentTypeChildNode HTMLIFrameElement
instance IsParentNode HTMLIFrameElement
instance IsSlottable HTMLIFrameElement
instance IsNode HTMLIFrameElement
instance IsEventTarget HTMLIFrameElement

instance IsGObject HTMLIFrameElement where
  typeGType _ = gTypeHTMLIFrameElement
  {-# INLINE typeGType #-}

noHTMLIFrameElement :: Maybe HTMLIFrameElement
noHTMLIFrameElement = Nothing
{-# INLINE noHTMLIFrameElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLIFrameElement\"])" gTypeHTMLIFrameElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLImageElement" (html).
newtype HTMLImageElement = HTMLImageElement { unHTMLImageElement :: JSVal }

instance Eq HTMLImageElement where
  (HTMLImageElement a) == (HTMLImageElement b) = js_eq a b

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 = return . fmap HTMLImageElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLImageElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLImageElement
instance IsElementCSSInlineStyle HTMLImageElement
instance IsElementContentEditable HTMLImageElement
instance IsGlobalEventHandlers HTMLImageElement
instance IsHTMLOrSVGOrMathMLElement HTMLImageElement
instance IsElement HTMLImageElement
instance IsARIAMixin HTMLImageElement
instance IsARIANotifyMixin HTMLImageElement
instance IsAnimatable HTMLImageElement
instance IsChildNode HTMLImageElement
instance IsNonDocumentTypeChildNode HTMLImageElement
instance IsParentNode HTMLImageElement
instance IsSlottable HTMLImageElement
instance IsNode HTMLImageElement
instance IsEventTarget HTMLImageElement

instance IsGObject HTMLImageElement where
  typeGType _ = gTypeHTMLImageElement
  {-# INLINE typeGType #-}

noHTMLImageElement :: Maybe HTMLImageElement
noHTMLImageElement = Nothing
{-# INLINE noHTMLImageElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLImageElement\"])" gTypeHTMLImageElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLInputElement" (html).
newtype HTMLInputElement = HTMLInputElement { unHTMLInputElement :: JSVal }

instance Eq HTMLInputElement where
  (HTMLInputElement a) == (HTMLInputElement b) = js_eq a b

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 = return . fmap HTMLInputElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLInputElement
  {-# INLINE fromJSValUnchecked #-}

instance IsPopoverTargetAttributes HTMLInputElement
instance IsHTMLElement HTMLInputElement
instance IsElementCSSInlineStyle HTMLInputElement
instance IsElementContentEditable HTMLInputElement
instance IsGlobalEventHandlers HTMLInputElement
instance IsHTMLOrSVGOrMathMLElement HTMLInputElement
instance IsElement HTMLInputElement
instance IsARIAMixin HTMLInputElement
instance IsARIANotifyMixin HTMLInputElement
instance IsAnimatable HTMLInputElement
instance IsChildNode HTMLInputElement
instance IsNonDocumentTypeChildNode HTMLInputElement
instance IsParentNode HTMLInputElement
instance IsSlottable HTMLInputElement
instance IsNode HTMLInputElement
instance IsEventTarget HTMLInputElement

instance IsGObject HTMLInputElement where
  typeGType _ = gTypeHTMLInputElement
  {-# INLINE typeGType #-}

noHTMLInputElement :: Maybe HTMLInputElement
noHTMLInputElement = Nothing
{-# INLINE noHTMLInputElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLInputElement\"])" gTypeHTMLInputElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLLIElement" (html).
newtype HTMLLIElement = HTMLLIElement { unHTMLLIElement :: JSVal }

instance Eq HTMLLIElement where
  (HTMLLIElement a) == (HTMLLIElement b) = js_eq a b

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 = return . fmap HTMLLIElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLLIElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLLIElement
instance IsElementCSSInlineStyle HTMLLIElement
instance IsElementContentEditable HTMLLIElement
instance IsGlobalEventHandlers HTMLLIElement
instance IsHTMLOrSVGOrMathMLElement HTMLLIElement
instance IsElement HTMLLIElement
instance IsARIAMixin HTMLLIElement
instance IsARIANotifyMixin HTMLLIElement
instance IsAnimatable HTMLLIElement
instance IsChildNode HTMLLIElement
instance IsNonDocumentTypeChildNode HTMLLIElement
instance IsParentNode HTMLLIElement
instance IsSlottable HTMLLIElement
instance IsNode HTMLLIElement
instance IsEventTarget HTMLLIElement

instance IsGObject HTMLLIElement where
  typeGType _ = gTypeHTMLLIElement
  {-# INLINE typeGType #-}

noHTMLLIElement :: Maybe HTMLLIElement
noHTMLLIElement = Nothing
{-# INLINE noHTMLLIElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLLIElement\"])" gTypeHTMLLIElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLLabelElement" (html).
newtype HTMLLabelElement = HTMLLabelElement { unHTMLLabelElement :: JSVal }

instance Eq HTMLLabelElement where
  (HTMLLabelElement a) == (HTMLLabelElement b) = js_eq a b

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 = return . fmap HTMLLabelElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLLabelElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLLabelElement
instance IsElementCSSInlineStyle HTMLLabelElement
instance IsElementContentEditable HTMLLabelElement
instance IsGlobalEventHandlers HTMLLabelElement
instance IsHTMLOrSVGOrMathMLElement HTMLLabelElement
instance IsElement HTMLLabelElement
instance IsARIAMixin HTMLLabelElement
instance IsARIANotifyMixin HTMLLabelElement
instance IsAnimatable HTMLLabelElement
instance IsChildNode HTMLLabelElement
instance IsNonDocumentTypeChildNode HTMLLabelElement
instance IsParentNode HTMLLabelElement
instance IsSlottable HTMLLabelElement
instance IsNode HTMLLabelElement
instance IsEventTarget HTMLLabelElement

instance IsGObject HTMLLabelElement where
  typeGType _ = gTypeHTMLLabelElement
  {-# INLINE typeGType #-}

noHTMLLabelElement :: Maybe HTMLLabelElement
noHTMLLabelElement = Nothing
{-# INLINE noHTMLLabelElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLLabelElement\"])" gTypeHTMLLabelElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLLegendElement" (html).
newtype HTMLLegendElement = HTMLLegendElement { unHTMLLegendElement :: JSVal }

instance Eq HTMLLegendElement where
  (HTMLLegendElement a) == (HTMLLegendElement b) = js_eq a b

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 = return . fmap HTMLLegendElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLLegendElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLLegendElement
instance IsElementCSSInlineStyle HTMLLegendElement
instance IsElementContentEditable HTMLLegendElement
instance IsGlobalEventHandlers HTMLLegendElement
instance IsHTMLOrSVGOrMathMLElement HTMLLegendElement
instance IsElement HTMLLegendElement
instance IsARIAMixin HTMLLegendElement
instance IsARIANotifyMixin HTMLLegendElement
instance IsAnimatable HTMLLegendElement
instance IsChildNode HTMLLegendElement
instance IsNonDocumentTypeChildNode HTMLLegendElement
instance IsParentNode HTMLLegendElement
instance IsSlottable HTMLLegendElement
instance IsNode HTMLLegendElement
instance IsEventTarget HTMLLegendElement

instance IsGObject HTMLLegendElement where
  typeGType _ = gTypeHTMLLegendElement
  {-# INLINE typeGType #-}

noHTMLLegendElement :: Maybe HTMLLegendElement
noHTMLLegendElement = Nothing
{-# INLINE noHTMLLegendElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLLegendElement\"])" gTypeHTMLLegendElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLLinkElement" (html).
newtype HTMLLinkElement = HTMLLinkElement { unHTMLLinkElement :: JSVal }

instance Eq HTMLLinkElement where
  (HTMLLinkElement a) == (HTMLLinkElement b) = js_eq a b

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 = return . fmap HTMLLinkElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLLinkElement
  {-# INLINE fromJSValUnchecked #-}

instance IsLinkStyle HTMLLinkElement
instance IsHTMLElement HTMLLinkElement
instance IsElementCSSInlineStyle HTMLLinkElement
instance IsElementContentEditable HTMLLinkElement
instance IsGlobalEventHandlers HTMLLinkElement
instance IsHTMLOrSVGOrMathMLElement HTMLLinkElement
instance IsElement HTMLLinkElement
instance IsARIAMixin HTMLLinkElement
instance IsARIANotifyMixin HTMLLinkElement
instance IsAnimatable HTMLLinkElement
instance IsChildNode HTMLLinkElement
instance IsNonDocumentTypeChildNode HTMLLinkElement
instance IsParentNode HTMLLinkElement
instance IsSlottable HTMLLinkElement
instance IsNode HTMLLinkElement
instance IsEventTarget HTMLLinkElement

instance IsGObject HTMLLinkElement where
  typeGType _ = gTypeHTMLLinkElement
  {-# INLINE typeGType #-}

noHTMLLinkElement :: Maybe HTMLLinkElement
noHTMLLinkElement = Nothing
{-# INLINE noHTMLLinkElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLLinkElement\"])" gTypeHTMLLinkElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLMapElement" (html).
newtype HTMLMapElement = HTMLMapElement { unHTMLMapElement :: JSVal }

instance Eq HTMLMapElement where
  (HTMLMapElement a) == (HTMLMapElement b) = js_eq a b

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 = return . fmap HTMLMapElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLMapElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLMapElement
instance IsElementCSSInlineStyle HTMLMapElement
instance IsElementContentEditable HTMLMapElement
instance IsGlobalEventHandlers HTMLMapElement
instance IsHTMLOrSVGOrMathMLElement HTMLMapElement
instance IsElement HTMLMapElement
instance IsARIAMixin HTMLMapElement
instance IsARIANotifyMixin HTMLMapElement
instance IsAnimatable HTMLMapElement
instance IsChildNode HTMLMapElement
instance IsNonDocumentTypeChildNode HTMLMapElement
instance IsParentNode HTMLMapElement
instance IsSlottable HTMLMapElement
instance IsNode HTMLMapElement
instance IsEventTarget HTMLMapElement

instance IsGObject HTMLMapElement where
  typeGType _ = gTypeHTMLMapElement
  {-# INLINE typeGType #-}

noHTMLMapElement :: Maybe HTMLMapElement
noHTMLMapElement = Nothing
{-# INLINE noHTMLMapElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLMapElement\"])" gTypeHTMLMapElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLMarqueeElement" (html).
newtype HTMLMarqueeElement = HTMLMarqueeElement { unHTMLMarqueeElement :: JSVal }

instance Eq HTMLMarqueeElement where
  (HTMLMarqueeElement a) == (HTMLMarqueeElement b) = js_eq a b

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 = return . fmap HTMLMarqueeElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLMarqueeElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLMarqueeElement
instance IsElementCSSInlineStyle HTMLMarqueeElement
instance IsElementContentEditable HTMLMarqueeElement
instance IsGlobalEventHandlers HTMLMarqueeElement
instance IsHTMLOrSVGOrMathMLElement HTMLMarqueeElement
instance IsElement HTMLMarqueeElement
instance IsARIAMixin HTMLMarqueeElement
instance IsARIANotifyMixin HTMLMarqueeElement
instance IsAnimatable HTMLMarqueeElement
instance IsChildNode HTMLMarqueeElement
instance IsNonDocumentTypeChildNode HTMLMarqueeElement
instance IsParentNode HTMLMarqueeElement
instance IsSlottable HTMLMarqueeElement
instance IsNode HTMLMarqueeElement
instance IsEventTarget HTMLMarqueeElement

instance IsGObject HTMLMarqueeElement where
  typeGType _ = gTypeHTMLMarqueeElement
  {-# INLINE typeGType #-}

noHTMLMarqueeElement :: Maybe HTMLMarqueeElement
noHTMLMarqueeElement = Nothing
{-# INLINE noHTMLMarqueeElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLMarqueeElement\"])" gTypeHTMLMarqueeElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLMediaElement" (html).
newtype HTMLMediaElement = HTMLMediaElement { unHTMLMediaElement :: JSVal }

instance Eq HTMLMediaElement where
  (HTMLMediaElement a) == (HTMLMediaElement b) = js_eq a b

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 = return . fmap HTMLMediaElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLMediaElement
  {-# INLINE fromJSValUnchecked #-}

class (IsHTMLElement o, IsGObject o) => IsHTMLMediaElement o
toHTMLMediaElement :: IsHTMLMediaElement o => o -> HTMLMediaElement
toHTMLMediaElement = HTMLMediaElement . coerce

instance IsHTMLMediaElement HTMLMediaElement
instance IsHTMLElement HTMLMediaElement
instance IsElementCSSInlineStyle HTMLMediaElement
instance IsElementContentEditable HTMLMediaElement
instance IsGlobalEventHandlers HTMLMediaElement
instance IsHTMLOrSVGOrMathMLElement HTMLMediaElement
instance IsElement HTMLMediaElement
instance IsARIAMixin HTMLMediaElement
instance IsARIANotifyMixin HTMLMediaElement
instance IsAnimatable HTMLMediaElement
instance IsChildNode HTMLMediaElement
instance IsNonDocumentTypeChildNode HTMLMediaElement
instance IsParentNode HTMLMediaElement
instance IsSlottable HTMLMediaElement
instance IsNode HTMLMediaElement
instance IsEventTarget HTMLMediaElement

instance IsGObject HTMLMediaElement where
  typeGType _ = gTypeHTMLMediaElement
  {-# INLINE typeGType #-}

noHTMLMediaElement :: Maybe HTMLMediaElement
noHTMLMediaElement = Nothing
{-# INLINE noHTMLMediaElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLMediaElement\"])" gTypeHTMLMediaElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLMenuElement" (html).
newtype HTMLMenuElement = HTMLMenuElement { unHTMLMenuElement :: JSVal }

instance Eq HTMLMenuElement where
  (HTMLMenuElement a) == (HTMLMenuElement b) = js_eq a b

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 = return . fmap HTMLMenuElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLMenuElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLMenuElement
instance IsElementCSSInlineStyle HTMLMenuElement
instance IsElementContentEditable HTMLMenuElement
instance IsGlobalEventHandlers HTMLMenuElement
instance IsHTMLOrSVGOrMathMLElement HTMLMenuElement
instance IsElement HTMLMenuElement
instance IsARIAMixin HTMLMenuElement
instance IsARIANotifyMixin HTMLMenuElement
instance IsAnimatable HTMLMenuElement
instance IsChildNode HTMLMenuElement
instance IsNonDocumentTypeChildNode HTMLMenuElement
instance IsParentNode HTMLMenuElement
instance IsSlottable HTMLMenuElement
instance IsNode HTMLMenuElement
instance IsEventTarget HTMLMenuElement

instance IsGObject HTMLMenuElement where
  typeGType _ = gTypeHTMLMenuElement
  {-# INLINE typeGType #-}

noHTMLMenuElement :: Maybe HTMLMenuElement
noHTMLMenuElement = Nothing
{-# INLINE noHTMLMenuElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLMenuElement\"])" gTypeHTMLMenuElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLMetaElement" (html).
newtype HTMLMetaElement = HTMLMetaElement { unHTMLMetaElement :: JSVal }

instance Eq HTMLMetaElement where
  (HTMLMetaElement a) == (HTMLMetaElement b) = js_eq a b

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 = return . fmap HTMLMetaElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLMetaElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLMetaElement
instance IsElementCSSInlineStyle HTMLMetaElement
instance IsElementContentEditable HTMLMetaElement
instance IsGlobalEventHandlers HTMLMetaElement
instance IsHTMLOrSVGOrMathMLElement HTMLMetaElement
instance IsElement HTMLMetaElement
instance IsARIAMixin HTMLMetaElement
instance IsARIANotifyMixin HTMLMetaElement
instance IsAnimatable HTMLMetaElement
instance IsChildNode HTMLMetaElement
instance IsNonDocumentTypeChildNode HTMLMetaElement
instance IsParentNode HTMLMetaElement
instance IsSlottable HTMLMetaElement
instance IsNode HTMLMetaElement
instance IsEventTarget HTMLMetaElement

instance IsGObject HTMLMetaElement where
  typeGType _ = gTypeHTMLMetaElement
  {-# INLINE typeGType #-}

noHTMLMetaElement :: Maybe HTMLMetaElement
noHTMLMetaElement = Nothing
{-# INLINE noHTMLMetaElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLMetaElement\"])" gTypeHTMLMetaElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLMeterElement" (html).
newtype HTMLMeterElement = HTMLMeterElement { unHTMLMeterElement :: JSVal }

instance Eq HTMLMeterElement where
  (HTMLMeterElement a) == (HTMLMeterElement b) = js_eq a b

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 = return . fmap HTMLMeterElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLMeterElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLMeterElement
instance IsElementCSSInlineStyle HTMLMeterElement
instance IsElementContentEditable HTMLMeterElement
instance IsGlobalEventHandlers HTMLMeterElement
instance IsHTMLOrSVGOrMathMLElement HTMLMeterElement
instance IsElement HTMLMeterElement
instance IsARIAMixin HTMLMeterElement
instance IsARIANotifyMixin HTMLMeterElement
instance IsAnimatable HTMLMeterElement
instance IsChildNode HTMLMeterElement
instance IsNonDocumentTypeChildNode HTMLMeterElement
instance IsParentNode HTMLMeterElement
instance IsSlottable HTMLMeterElement
instance IsNode HTMLMeterElement
instance IsEventTarget HTMLMeterElement

instance IsGObject HTMLMeterElement where
  typeGType _ = gTypeHTMLMeterElement
  {-# INLINE typeGType #-}

noHTMLMeterElement :: Maybe HTMLMeterElement
noHTMLMeterElement = Nothing
{-# INLINE noHTMLMeterElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLMeterElement\"])" gTypeHTMLMeterElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLModElement" (html).
newtype HTMLModElement = HTMLModElement { unHTMLModElement :: JSVal }

instance Eq HTMLModElement where
  (HTMLModElement a) == (HTMLModElement b) = js_eq a b

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 = return . fmap HTMLModElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLModElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLModElement
instance IsElementCSSInlineStyle HTMLModElement
instance IsElementContentEditable HTMLModElement
instance IsGlobalEventHandlers HTMLModElement
instance IsHTMLOrSVGOrMathMLElement HTMLModElement
instance IsElement HTMLModElement
instance IsARIAMixin HTMLModElement
instance IsARIANotifyMixin HTMLModElement
instance IsAnimatable HTMLModElement
instance IsChildNode HTMLModElement
instance IsNonDocumentTypeChildNode HTMLModElement
instance IsParentNode HTMLModElement
instance IsSlottable HTMLModElement
instance IsNode HTMLModElement
instance IsEventTarget HTMLModElement

instance IsGObject HTMLModElement where
  typeGType _ = gTypeHTMLModElement
  {-# INLINE typeGType #-}

noHTMLModElement :: Maybe HTMLModElement
noHTMLModElement = Nothing
{-# INLINE noHTMLModElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLModElement\"])" gTypeHTMLModElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLOListElement" (html).
newtype HTMLOListElement = HTMLOListElement { unHTMLOListElement :: JSVal }

instance Eq HTMLOListElement where
  (HTMLOListElement a) == (HTMLOListElement b) = js_eq a b

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 = return . fmap HTMLOListElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOListElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLOListElement
instance IsElementCSSInlineStyle HTMLOListElement
instance IsElementContentEditable HTMLOListElement
instance IsGlobalEventHandlers HTMLOListElement
instance IsHTMLOrSVGOrMathMLElement HTMLOListElement
instance IsElement HTMLOListElement
instance IsARIAMixin HTMLOListElement
instance IsARIANotifyMixin HTMLOListElement
instance IsAnimatable HTMLOListElement
instance IsChildNode HTMLOListElement
instance IsNonDocumentTypeChildNode HTMLOListElement
instance IsParentNode HTMLOListElement
instance IsSlottable HTMLOListElement
instance IsNode HTMLOListElement
instance IsEventTarget HTMLOListElement

instance IsGObject HTMLOListElement where
  typeGType _ = gTypeHTMLOListElement
  {-# INLINE typeGType #-}

noHTMLOListElement :: Maybe HTMLOListElement
noHTMLOListElement = Nothing
{-# INLINE noHTMLOListElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLOListElement\"])" gTypeHTMLOListElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLObjectElement" (html).
newtype HTMLObjectElement = HTMLObjectElement { unHTMLObjectElement :: JSVal }

instance Eq HTMLObjectElement where
  (HTMLObjectElement a) == (HTMLObjectElement b) = js_eq a b

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 = return . fmap HTMLObjectElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLObjectElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLObjectElement
instance IsElementCSSInlineStyle HTMLObjectElement
instance IsElementContentEditable HTMLObjectElement
instance IsGlobalEventHandlers HTMLObjectElement
instance IsHTMLOrSVGOrMathMLElement HTMLObjectElement
instance IsElement HTMLObjectElement
instance IsARIAMixin HTMLObjectElement
instance IsARIANotifyMixin HTMLObjectElement
instance IsAnimatable HTMLObjectElement
instance IsChildNode HTMLObjectElement
instance IsNonDocumentTypeChildNode HTMLObjectElement
instance IsParentNode HTMLObjectElement
instance IsSlottable HTMLObjectElement
instance IsNode HTMLObjectElement
instance IsEventTarget HTMLObjectElement

instance IsGObject HTMLObjectElement where
  typeGType _ = gTypeHTMLObjectElement
  {-# INLINE typeGType #-}

noHTMLObjectElement :: Maybe HTMLObjectElement
noHTMLObjectElement = Nothing
{-# INLINE noHTMLObjectElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLObjectElement\"])" gTypeHTMLObjectElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLOptGroupElement" (html).
newtype HTMLOptGroupElement = HTMLOptGroupElement { unHTMLOptGroupElement :: JSVal }

instance Eq HTMLOptGroupElement where
  (HTMLOptGroupElement a) == (HTMLOptGroupElement b) = js_eq a b

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 = return . fmap HTMLOptGroupElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOptGroupElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLOptGroupElement
instance IsElementCSSInlineStyle HTMLOptGroupElement
instance IsElementContentEditable HTMLOptGroupElement
instance IsGlobalEventHandlers HTMLOptGroupElement
instance IsHTMLOrSVGOrMathMLElement HTMLOptGroupElement
instance IsElement HTMLOptGroupElement
instance IsARIAMixin HTMLOptGroupElement
instance IsARIANotifyMixin HTMLOptGroupElement
instance IsAnimatable HTMLOptGroupElement
instance IsChildNode HTMLOptGroupElement
instance IsNonDocumentTypeChildNode HTMLOptGroupElement
instance IsParentNode HTMLOptGroupElement
instance IsSlottable HTMLOptGroupElement
instance IsNode HTMLOptGroupElement
instance IsEventTarget HTMLOptGroupElement

instance IsGObject HTMLOptGroupElement where
  typeGType _ = gTypeHTMLOptGroupElement
  {-# INLINE typeGType #-}

noHTMLOptGroupElement :: Maybe HTMLOptGroupElement
noHTMLOptGroupElement = Nothing
{-# INLINE noHTMLOptGroupElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLOptGroupElement\"])" gTypeHTMLOptGroupElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLOptionElement" (html).
newtype HTMLOptionElement = HTMLOptionElement { unHTMLOptionElement :: JSVal }

instance Eq HTMLOptionElement where
  (HTMLOptionElement a) == (HTMLOptionElement b) = js_eq a b

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 = return . fmap HTMLOptionElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOptionElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLOptionElement
instance IsElementCSSInlineStyle HTMLOptionElement
instance IsElementContentEditable HTMLOptionElement
instance IsGlobalEventHandlers HTMLOptionElement
instance IsHTMLOrSVGOrMathMLElement HTMLOptionElement
instance IsElement HTMLOptionElement
instance IsARIAMixin HTMLOptionElement
instance IsARIANotifyMixin HTMLOptionElement
instance IsAnimatable HTMLOptionElement
instance IsChildNode HTMLOptionElement
instance IsNonDocumentTypeChildNode HTMLOptionElement
instance IsParentNode HTMLOptionElement
instance IsSlottable HTMLOptionElement
instance IsNode HTMLOptionElement
instance IsEventTarget HTMLOptionElement

instance IsGObject HTMLOptionElement where
  typeGType _ = gTypeHTMLOptionElement
  {-# INLINE typeGType #-}

noHTMLOptionElement :: Maybe HTMLOptionElement
noHTMLOptionElement = Nothing
{-# INLINE noHTMLOptionElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLOptionElement\"])" gTypeHTMLOptionElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLOptionsCollection" (html).
newtype HTMLOptionsCollection = HTMLOptionsCollection { unHTMLOptionsCollection :: JSVal }

instance Eq HTMLOptionsCollection where
  (HTMLOptionsCollection a) == (HTMLOptionsCollection b) = js_eq a b

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 = return . fmap HTMLOptionsCollection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOptionsCollection
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLCollection HTMLOptionsCollection

instance IsGObject HTMLOptionsCollection where
  typeGType _ = gTypeHTMLOptionsCollection
  {-# INLINE typeGType #-}

noHTMLOptionsCollection :: Maybe HTMLOptionsCollection
noHTMLOptionsCollection = Nothing
{-# INLINE noHTMLOptionsCollection #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLOptionsCollection\"])" gTypeHTMLOptionsCollection :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLOrSVGOrMathMLElement" (html).
newtype HTMLOrSVGOrMathMLElement = HTMLOrSVGOrMathMLElement { unHTMLOrSVGOrMathMLElement :: JSVal }

instance Eq HTMLOrSVGOrMathMLElement where
  (HTMLOrSVGOrMathMLElement a) == (HTMLOrSVGOrMathMLElement b) = js_eq a b

instance PToJSVal HTMLOrSVGOrMathMLElement where
  pToJSVal = unHTMLOrSVGOrMathMLElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLOrSVGOrMathMLElement where
  pFromJSVal = HTMLOrSVGOrMathMLElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLOrSVGOrMathMLElement where
  toJSVal = return . unHTMLOrSVGOrMathMLElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLOrSVGOrMathMLElement where
  fromJSVal = return . fmap HTMLOrSVGOrMathMLElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOrSVGOrMathMLElement
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsHTMLOrSVGOrMathMLElement o
toHTMLOrSVGOrMathMLElement :: IsHTMLOrSVGOrMathMLElement o => o -> HTMLOrSVGOrMathMLElement
toHTMLOrSVGOrMathMLElement = HTMLOrSVGOrMathMLElement . coerce

instance IsHTMLOrSVGOrMathMLElement HTMLOrSVGOrMathMLElement

instance IsGObject HTMLOrSVGOrMathMLElement where
  typeGType _ = gTypeHTMLOrSVGOrMathMLElement
  {-# INLINE typeGType #-}

noHTMLOrSVGOrMathMLElement :: Maybe HTMLOrSVGOrMathMLElement
noHTMLOrSVGOrMathMLElement = Nothing
{-# INLINE noHTMLOrSVGOrMathMLElement #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHTMLOrSVGOrMathMLElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLOutputElement" (html).
newtype HTMLOutputElement = HTMLOutputElement { unHTMLOutputElement :: JSVal }

instance Eq HTMLOutputElement where
  (HTMLOutputElement a) == (HTMLOutputElement b) = js_eq a b

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 = return . fmap HTMLOutputElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLOutputElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLOutputElement
instance IsElementCSSInlineStyle HTMLOutputElement
instance IsElementContentEditable HTMLOutputElement
instance IsGlobalEventHandlers HTMLOutputElement
instance IsHTMLOrSVGOrMathMLElement HTMLOutputElement
instance IsElement HTMLOutputElement
instance IsARIAMixin HTMLOutputElement
instance IsARIANotifyMixin HTMLOutputElement
instance IsAnimatable HTMLOutputElement
instance IsChildNode HTMLOutputElement
instance IsNonDocumentTypeChildNode HTMLOutputElement
instance IsParentNode HTMLOutputElement
instance IsSlottable HTMLOutputElement
instance IsNode HTMLOutputElement
instance IsEventTarget HTMLOutputElement

instance IsGObject HTMLOutputElement where
  typeGType _ = gTypeHTMLOutputElement
  {-# INLINE typeGType #-}

noHTMLOutputElement :: Maybe HTMLOutputElement
noHTMLOutputElement = Nothing
{-# INLINE noHTMLOutputElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLOutputElement\"])" gTypeHTMLOutputElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLParagraphElement" (html).
newtype HTMLParagraphElement = HTMLParagraphElement { unHTMLParagraphElement :: JSVal }

instance Eq HTMLParagraphElement where
  (HTMLParagraphElement a) == (HTMLParagraphElement b) = js_eq a b

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 = return . fmap HTMLParagraphElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLParagraphElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLParagraphElement
instance IsElementCSSInlineStyle HTMLParagraphElement
instance IsElementContentEditable HTMLParagraphElement
instance IsGlobalEventHandlers HTMLParagraphElement
instance IsHTMLOrSVGOrMathMLElement HTMLParagraphElement
instance IsElement HTMLParagraphElement
instance IsARIAMixin HTMLParagraphElement
instance IsARIANotifyMixin HTMLParagraphElement
instance IsAnimatable HTMLParagraphElement
instance IsChildNode HTMLParagraphElement
instance IsNonDocumentTypeChildNode HTMLParagraphElement
instance IsParentNode HTMLParagraphElement
instance IsSlottable HTMLParagraphElement
instance IsNode HTMLParagraphElement
instance IsEventTarget HTMLParagraphElement

instance IsGObject HTMLParagraphElement where
  typeGType _ = gTypeHTMLParagraphElement
  {-# INLINE typeGType #-}

noHTMLParagraphElement :: Maybe HTMLParagraphElement
noHTMLParagraphElement = Nothing
{-# INLINE noHTMLParagraphElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLParagraphElement\"])" gTypeHTMLParagraphElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLParamElement" (html).
newtype HTMLParamElement = HTMLParamElement { unHTMLParamElement :: JSVal }

instance Eq HTMLParamElement where
  (HTMLParamElement a) == (HTMLParamElement b) = js_eq a b

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 = return . fmap HTMLParamElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLParamElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLParamElement
instance IsElementCSSInlineStyle HTMLParamElement
instance IsElementContentEditable HTMLParamElement
instance IsGlobalEventHandlers HTMLParamElement
instance IsHTMLOrSVGOrMathMLElement HTMLParamElement
instance IsElement HTMLParamElement
instance IsARIAMixin HTMLParamElement
instance IsARIANotifyMixin HTMLParamElement
instance IsAnimatable HTMLParamElement
instance IsChildNode HTMLParamElement
instance IsNonDocumentTypeChildNode HTMLParamElement
instance IsParentNode HTMLParamElement
instance IsSlottable HTMLParamElement
instance IsNode HTMLParamElement
instance IsEventTarget HTMLParamElement

instance IsGObject HTMLParamElement where
  typeGType _ = gTypeHTMLParamElement
  {-# INLINE typeGType #-}

noHTMLParamElement :: Maybe HTMLParamElement
noHTMLParamElement = Nothing
{-# INLINE noHTMLParamElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLParamElement\"])" gTypeHTMLParamElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLPictureElement" (html).
newtype HTMLPictureElement = HTMLPictureElement { unHTMLPictureElement :: JSVal }

instance Eq HTMLPictureElement where
  (HTMLPictureElement a) == (HTMLPictureElement b) = js_eq a b

instance PToJSVal HTMLPictureElement where
  pToJSVal = unHTMLPictureElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLPictureElement where
  pFromJSVal = HTMLPictureElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLPictureElement where
  toJSVal = return . unHTMLPictureElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLPictureElement where
  fromJSVal = return . fmap HTMLPictureElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLPictureElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLPictureElement
instance IsElementCSSInlineStyle HTMLPictureElement
instance IsElementContentEditable HTMLPictureElement
instance IsGlobalEventHandlers HTMLPictureElement
instance IsHTMLOrSVGOrMathMLElement HTMLPictureElement
instance IsElement HTMLPictureElement
instance IsARIAMixin HTMLPictureElement
instance IsARIANotifyMixin HTMLPictureElement
instance IsAnimatable HTMLPictureElement
instance IsChildNode HTMLPictureElement
instance IsNonDocumentTypeChildNode HTMLPictureElement
instance IsParentNode HTMLPictureElement
instance IsSlottable HTMLPictureElement
instance IsNode HTMLPictureElement
instance IsEventTarget HTMLPictureElement

instance IsGObject HTMLPictureElement where
  typeGType _ = gTypeHTMLPictureElement
  {-# INLINE typeGType #-}

noHTMLPictureElement :: Maybe HTMLPictureElement
noHTMLPictureElement = Nothing
{-# INLINE noHTMLPictureElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLPictureElement\"])" gTypeHTMLPictureElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLPreElement" (html).
newtype HTMLPreElement = HTMLPreElement { unHTMLPreElement :: JSVal }

instance Eq HTMLPreElement where
  (HTMLPreElement a) == (HTMLPreElement b) = js_eq a b

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 = return . fmap HTMLPreElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLPreElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLPreElement
instance IsElementCSSInlineStyle HTMLPreElement
instance IsElementContentEditable HTMLPreElement
instance IsGlobalEventHandlers HTMLPreElement
instance IsHTMLOrSVGOrMathMLElement HTMLPreElement
instance IsElement HTMLPreElement
instance IsARIAMixin HTMLPreElement
instance IsARIANotifyMixin HTMLPreElement
instance IsAnimatable HTMLPreElement
instance IsChildNode HTMLPreElement
instance IsNonDocumentTypeChildNode HTMLPreElement
instance IsParentNode HTMLPreElement
instance IsSlottable HTMLPreElement
instance IsNode HTMLPreElement
instance IsEventTarget HTMLPreElement

instance IsGObject HTMLPreElement where
  typeGType _ = gTypeHTMLPreElement
  {-# INLINE typeGType #-}

noHTMLPreElement :: Maybe HTMLPreElement
noHTMLPreElement = Nothing
{-# INLINE noHTMLPreElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLPreElement\"])" gTypeHTMLPreElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLProgressElement" (html).
newtype HTMLProgressElement = HTMLProgressElement { unHTMLProgressElement :: JSVal }

instance Eq HTMLProgressElement where
  (HTMLProgressElement a) == (HTMLProgressElement b) = js_eq a b

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 = return . fmap HTMLProgressElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLProgressElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLProgressElement
instance IsElementCSSInlineStyle HTMLProgressElement
instance IsElementContentEditable HTMLProgressElement
instance IsGlobalEventHandlers HTMLProgressElement
instance IsHTMLOrSVGOrMathMLElement HTMLProgressElement
instance IsElement HTMLProgressElement
instance IsARIAMixin HTMLProgressElement
instance IsARIANotifyMixin HTMLProgressElement
instance IsAnimatable HTMLProgressElement
instance IsChildNode HTMLProgressElement
instance IsNonDocumentTypeChildNode HTMLProgressElement
instance IsParentNode HTMLProgressElement
instance IsSlottable HTMLProgressElement
instance IsNode HTMLProgressElement
instance IsEventTarget HTMLProgressElement

instance IsGObject HTMLProgressElement where
  typeGType _ = gTypeHTMLProgressElement
  {-# INLINE typeGType #-}

noHTMLProgressElement :: Maybe HTMLProgressElement
noHTMLProgressElement = Nothing
{-# INLINE noHTMLProgressElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLProgressElement\"])" gTypeHTMLProgressElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLQuoteElement" (html).
newtype HTMLQuoteElement = HTMLQuoteElement { unHTMLQuoteElement :: JSVal }

instance Eq HTMLQuoteElement where
  (HTMLQuoteElement a) == (HTMLQuoteElement b) = js_eq a b

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 = return . fmap HTMLQuoteElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLQuoteElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLQuoteElement
instance IsElementCSSInlineStyle HTMLQuoteElement
instance IsElementContentEditable HTMLQuoteElement
instance IsGlobalEventHandlers HTMLQuoteElement
instance IsHTMLOrSVGOrMathMLElement HTMLQuoteElement
instance IsElement HTMLQuoteElement
instance IsARIAMixin HTMLQuoteElement
instance IsARIANotifyMixin HTMLQuoteElement
instance IsAnimatable HTMLQuoteElement
instance IsChildNode HTMLQuoteElement
instance IsNonDocumentTypeChildNode HTMLQuoteElement
instance IsParentNode HTMLQuoteElement
instance IsSlottable HTMLQuoteElement
instance IsNode HTMLQuoteElement
instance IsEventTarget HTMLQuoteElement

instance IsGObject HTMLQuoteElement where
  typeGType _ = gTypeHTMLQuoteElement
  {-# INLINE typeGType #-}

noHTMLQuoteElement :: Maybe HTMLQuoteElement
noHTMLQuoteElement = Nothing
{-# INLINE noHTMLQuoteElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLQuoteElement\"])" gTypeHTMLQuoteElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLScriptElement" (html).
newtype HTMLScriptElement = HTMLScriptElement { unHTMLScriptElement :: JSVal }

instance Eq HTMLScriptElement where
  (HTMLScriptElement a) == (HTMLScriptElement b) = js_eq a b

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 = return . fmap HTMLScriptElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLScriptElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLScriptElement
instance IsElementCSSInlineStyle HTMLScriptElement
instance IsElementContentEditable HTMLScriptElement
instance IsGlobalEventHandlers HTMLScriptElement
instance IsHTMLOrSVGOrMathMLElement HTMLScriptElement
instance IsElement HTMLScriptElement
instance IsARIAMixin HTMLScriptElement
instance IsARIANotifyMixin HTMLScriptElement
instance IsAnimatable HTMLScriptElement
instance IsChildNode HTMLScriptElement
instance IsNonDocumentTypeChildNode HTMLScriptElement
instance IsParentNode HTMLScriptElement
instance IsSlottable HTMLScriptElement
instance IsNode HTMLScriptElement
instance IsEventTarget HTMLScriptElement

instance IsGObject HTMLScriptElement where
  typeGType _ = gTypeHTMLScriptElement
  {-# INLINE typeGType #-}

noHTMLScriptElement :: Maybe HTMLScriptElement
noHTMLScriptElement = Nothing
{-# INLINE noHTMLScriptElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLScriptElement\"])" gTypeHTMLScriptElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLSelectElement" (html).
newtype HTMLSelectElement = HTMLSelectElement { unHTMLSelectElement :: JSVal }

instance Eq HTMLSelectElement where
  (HTMLSelectElement a) == (HTMLSelectElement b) = js_eq a b

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 = return . fmap HTMLSelectElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLSelectElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLSelectElement
instance IsElementCSSInlineStyle HTMLSelectElement
instance IsElementContentEditable HTMLSelectElement
instance IsGlobalEventHandlers HTMLSelectElement
instance IsHTMLOrSVGOrMathMLElement HTMLSelectElement
instance IsElement HTMLSelectElement
instance IsARIAMixin HTMLSelectElement
instance IsARIANotifyMixin HTMLSelectElement
instance IsAnimatable HTMLSelectElement
instance IsChildNode HTMLSelectElement
instance IsNonDocumentTypeChildNode HTMLSelectElement
instance IsParentNode HTMLSelectElement
instance IsSlottable HTMLSelectElement
instance IsNode HTMLSelectElement
instance IsEventTarget HTMLSelectElement

instance IsGObject HTMLSelectElement where
  typeGType _ = gTypeHTMLSelectElement
  {-# INLINE typeGType #-}

noHTMLSelectElement :: Maybe HTMLSelectElement
noHTMLSelectElement = Nothing
{-# INLINE noHTMLSelectElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLSelectElement\"])" gTypeHTMLSelectElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLSelectedContentElement" (html).
newtype HTMLSelectedContentElement = HTMLSelectedContentElement { unHTMLSelectedContentElement :: JSVal }

instance Eq HTMLSelectedContentElement where
  (HTMLSelectedContentElement a) == (HTMLSelectedContentElement b) = js_eq a b

instance PToJSVal HTMLSelectedContentElement where
  pToJSVal = unHTMLSelectedContentElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLSelectedContentElement where
  pFromJSVal = HTMLSelectedContentElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLSelectedContentElement where
  toJSVal = return . unHTMLSelectedContentElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLSelectedContentElement where
  fromJSVal = return . fmap HTMLSelectedContentElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLSelectedContentElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLSelectedContentElement
instance IsElementCSSInlineStyle HTMLSelectedContentElement
instance IsElementContentEditable HTMLSelectedContentElement
instance IsGlobalEventHandlers HTMLSelectedContentElement
instance IsHTMLOrSVGOrMathMLElement HTMLSelectedContentElement
instance IsElement HTMLSelectedContentElement
instance IsARIAMixin HTMLSelectedContentElement
instance IsARIANotifyMixin HTMLSelectedContentElement
instance IsAnimatable HTMLSelectedContentElement
instance IsChildNode HTMLSelectedContentElement
instance IsNonDocumentTypeChildNode HTMLSelectedContentElement
instance IsParentNode HTMLSelectedContentElement
instance IsSlottable HTMLSelectedContentElement
instance IsNode HTMLSelectedContentElement
instance IsEventTarget HTMLSelectedContentElement

instance IsGObject HTMLSelectedContentElement where
  typeGType _ = gTypeHTMLSelectedContentElement
  {-# INLINE typeGType #-}

noHTMLSelectedContentElement :: Maybe HTMLSelectedContentElement
noHTMLSelectedContentElement = Nothing
{-# INLINE noHTMLSelectedContentElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLSelectedContentElement\"])" gTypeHTMLSelectedContentElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLSlotElement" (html).
newtype HTMLSlotElement = HTMLSlotElement { unHTMLSlotElement :: JSVal }

instance Eq HTMLSlotElement where
  (HTMLSlotElement a) == (HTMLSlotElement b) = js_eq a b

instance PToJSVal HTMLSlotElement where
  pToJSVal = unHTMLSlotElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLSlotElement where
  pFromJSVal = HTMLSlotElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLSlotElement where
  toJSVal = return . unHTMLSlotElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLSlotElement where
  fromJSVal = return . fmap HTMLSlotElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLSlotElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLSlotElement
instance IsElementCSSInlineStyle HTMLSlotElement
instance IsElementContentEditable HTMLSlotElement
instance IsGlobalEventHandlers HTMLSlotElement
instance IsHTMLOrSVGOrMathMLElement HTMLSlotElement
instance IsElement HTMLSlotElement
instance IsARIAMixin HTMLSlotElement
instance IsARIANotifyMixin HTMLSlotElement
instance IsAnimatable HTMLSlotElement
instance IsChildNode HTMLSlotElement
instance IsNonDocumentTypeChildNode HTMLSlotElement
instance IsParentNode HTMLSlotElement
instance IsSlottable HTMLSlotElement
instance IsNode HTMLSlotElement
instance IsEventTarget HTMLSlotElement

instance IsGObject HTMLSlotElement where
  typeGType _ = gTypeHTMLSlotElement
  {-# INLINE typeGType #-}

noHTMLSlotElement :: Maybe HTMLSlotElement
noHTMLSlotElement = Nothing
{-# INLINE noHTMLSlotElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLSlotElement\"])" gTypeHTMLSlotElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLSourceElement" (html).
newtype HTMLSourceElement = HTMLSourceElement { unHTMLSourceElement :: JSVal }

instance Eq HTMLSourceElement where
  (HTMLSourceElement a) == (HTMLSourceElement b) = js_eq a b

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 = return . fmap HTMLSourceElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLSourceElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLSourceElement
instance IsElementCSSInlineStyle HTMLSourceElement
instance IsElementContentEditable HTMLSourceElement
instance IsGlobalEventHandlers HTMLSourceElement
instance IsHTMLOrSVGOrMathMLElement HTMLSourceElement
instance IsElement HTMLSourceElement
instance IsARIAMixin HTMLSourceElement
instance IsARIANotifyMixin HTMLSourceElement
instance IsAnimatable HTMLSourceElement
instance IsChildNode HTMLSourceElement
instance IsNonDocumentTypeChildNode HTMLSourceElement
instance IsParentNode HTMLSourceElement
instance IsSlottable HTMLSourceElement
instance IsNode HTMLSourceElement
instance IsEventTarget HTMLSourceElement

instance IsGObject HTMLSourceElement where
  typeGType _ = gTypeHTMLSourceElement
  {-# INLINE typeGType #-}

noHTMLSourceElement :: Maybe HTMLSourceElement
noHTMLSourceElement = Nothing
{-# INLINE noHTMLSourceElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLSourceElement\"])" gTypeHTMLSourceElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLSpanElement" (html).
newtype HTMLSpanElement = HTMLSpanElement { unHTMLSpanElement :: JSVal }

instance Eq HTMLSpanElement where
  (HTMLSpanElement a) == (HTMLSpanElement b) = js_eq a b

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 = return . fmap HTMLSpanElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLSpanElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLSpanElement
instance IsElementCSSInlineStyle HTMLSpanElement
instance IsElementContentEditable HTMLSpanElement
instance IsGlobalEventHandlers HTMLSpanElement
instance IsHTMLOrSVGOrMathMLElement HTMLSpanElement
instance IsElement HTMLSpanElement
instance IsARIAMixin HTMLSpanElement
instance IsARIANotifyMixin HTMLSpanElement
instance IsAnimatable HTMLSpanElement
instance IsChildNode HTMLSpanElement
instance IsNonDocumentTypeChildNode HTMLSpanElement
instance IsParentNode HTMLSpanElement
instance IsSlottable HTMLSpanElement
instance IsNode HTMLSpanElement
instance IsEventTarget HTMLSpanElement

instance IsGObject HTMLSpanElement where
  typeGType _ = gTypeHTMLSpanElement
  {-# INLINE typeGType #-}

noHTMLSpanElement :: Maybe HTMLSpanElement
noHTMLSpanElement = Nothing
{-# INLINE noHTMLSpanElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLSpanElement\"])" gTypeHTMLSpanElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLStyleElement" (html).
newtype HTMLStyleElement = HTMLStyleElement { unHTMLStyleElement :: JSVal }

instance Eq HTMLStyleElement where
  (HTMLStyleElement a) == (HTMLStyleElement b) = js_eq a b

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 = return . fmap HTMLStyleElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLStyleElement
  {-# INLINE fromJSValUnchecked #-}

instance IsLinkStyle HTMLStyleElement
instance IsHTMLElement HTMLStyleElement
instance IsElementCSSInlineStyle HTMLStyleElement
instance IsElementContentEditable HTMLStyleElement
instance IsGlobalEventHandlers HTMLStyleElement
instance IsHTMLOrSVGOrMathMLElement HTMLStyleElement
instance IsElement HTMLStyleElement
instance IsARIAMixin HTMLStyleElement
instance IsARIANotifyMixin HTMLStyleElement
instance IsAnimatable HTMLStyleElement
instance IsChildNode HTMLStyleElement
instance IsNonDocumentTypeChildNode HTMLStyleElement
instance IsParentNode HTMLStyleElement
instance IsSlottable HTMLStyleElement
instance IsNode HTMLStyleElement
instance IsEventTarget HTMLStyleElement

instance IsGObject HTMLStyleElement where
  typeGType _ = gTypeHTMLStyleElement
  {-# INLINE typeGType #-}

noHTMLStyleElement :: Maybe HTMLStyleElement
noHTMLStyleElement = Nothing
{-# INLINE noHTMLStyleElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLStyleElement\"])" gTypeHTMLStyleElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTableCaptionElement" (html).
newtype HTMLTableCaptionElement = HTMLTableCaptionElement { unHTMLTableCaptionElement :: JSVal }

instance Eq HTMLTableCaptionElement where
  (HTMLTableCaptionElement a) == (HTMLTableCaptionElement b) = js_eq a b

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 = return . fmap HTMLTableCaptionElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTableCaptionElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTableCaptionElement
instance IsElementCSSInlineStyle HTMLTableCaptionElement
instance IsElementContentEditable HTMLTableCaptionElement
instance IsGlobalEventHandlers HTMLTableCaptionElement
instance IsHTMLOrSVGOrMathMLElement HTMLTableCaptionElement
instance IsElement HTMLTableCaptionElement
instance IsARIAMixin HTMLTableCaptionElement
instance IsARIANotifyMixin HTMLTableCaptionElement
instance IsAnimatable HTMLTableCaptionElement
instance IsChildNode HTMLTableCaptionElement
instance IsNonDocumentTypeChildNode HTMLTableCaptionElement
instance IsParentNode HTMLTableCaptionElement
instance IsSlottable HTMLTableCaptionElement
instance IsNode HTMLTableCaptionElement
instance IsEventTarget HTMLTableCaptionElement

instance IsGObject HTMLTableCaptionElement where
  typeGType _ = gTypeHTMLTableCaptionElement
  {-# INLINE typeGType #-}

noHTMLTableCaptionElement :: Maybe HTMLTableCaptionElement
noHTMLTableCaptionElement = Nothing
{-# INLINE noHTMLTableCaptionElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTableCaptionElement\"])" gTypeHTMLTableCaptionElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTableCellElement" (html).
newtype HTMLTableCellElement = HTMLTableCellElement { unHTMLTableCellElement :: JSVal }

instance Eq HTMLTableCellElement where
  (HTMLTableCellElement a) == (HTMLTableCellElement b) = js_eq a b

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 = return . fmap HTMLTableCellElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTableCellElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTableCellElement
instance IsElementCSSInlineStyle HTMLTableCellElement
instance IsElementContentEditable HTMLTableCellElement
instance IsGlobalEventHandlers HTMLTableCellElement
instance IsHTMLOrSVGOrMathMLElement HTMLTableCellElement
instance IsElement HTMLTableCellElement
instance IsARIAMixin HTMLTableCellElement
instance IsARIANotifyMixin HTMLTableCellElement
instance IsAnimatable HTMLTableCellElement
instance IsChildNode HTMLTableCellElement
instance IsNonDocumentTypeChildNode HTMLTableCellElement
instance IsParentNode HTMLTableCellElement
instance IsSlottable HTMLTableCellElement
instance IsNode HTMLTableCellElement
instance IsEventTarget HTMLTableCellElement

instance IsGObject HTMLTableCellElement where
  typeGType _ = gTypeHTMLTableCellElement
  {-# INLINE typeGType #-}

noHTMLTableCellElement :: Maybe HTMLTableCellElement
noHTMLTableCellElement = Nothing
{-# INLINE noHTMLTableCellElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTableCellElement\"])" gTypeHTMLTableCellElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTableColElement" (html).
newtype HTMLTableColElement = HTMLTableColElement { unHTMLTableColElement :: JSVal }

instance Eq HTMLTableColElement where
  (HTMLTableColElement a) == (HTMLTableColElement b) = js_eq a b

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 = return . fmap HTMLTableColElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTableColElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTableColElement
instance IsElementCSSInlineStyle HTMLTableColElement
instance IsElementContentEditable HTMLTableColElement
instance IsGlobalEventHandlers HTMLTableColElement
instance IsHTMLOrSVGOrMathMLElement HTMLTableColElement
instance IsElement HTMLTableColElement
instance IsARIAMixin HTMLTableColElement
instance IsARIANotifyMixin HTMLTableColElement
instance IsAnimatable HTMLTableColElement
instance IsChildNode HTMLTableColElement
instance IsNonDocumentTypeChildNode HTMLTableColElement
instance IsParentNode HTMLTableColElement
instance IsSlottable HTMLTableColElement
instance IsNode HTMLTableColElement
instance IsEventTarget HTMLTableColElement

instance IsGObject HTMLTableColElement where
  typeGType _ = gTypeHTMLTableColElement
  {-# INLINE typeGType #-}

noHTMLTableColElement :: Maybe HTMLTableColElement
noHTMLTableColElement = Nothing
{-# INLINE noHTMLTableColElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTableColElement\"])" gTypeHTMLTableColElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTableElement" (html).
newtype HTMLTableElement = HTMLTableElement { unHTMLTableElement :: JSVal }

instance Eq HTMLTableElement where
  (HTMLTableElement a) == (HTMLTableElement b) = js_eq a b

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 = return . fmap HTMLTableElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTableElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTableElement
instance IsElementCSSInlineStyle HTMLTableElement
instance IsElementContentEditable HTMLTableElement
instance IsGlobalEventHandlers HTMLTableElement
instance IsHTMLOrSVGOrMathMLElement HTMLTableElement
instance IsElement HTMLTableElement
instance IsARIAMixin HTMLTableElement
instance IsARIANotifyMixin HTMLTableElement
instance IsAnimatable HTMLTableElement
instance IsChildNode HTMLTableElement
instance IsNonDocumentTypeChildNode HTMLTableElement
instance IsParentNode HTMLTableElement
instance IsSlottable HTMLTableElement
instance IsNode HTMLTableElement
instance IsEventTarget HTMLTableElement

instance IsGObject HTMLTableElement where
  typeGType _ = gTypeHTMLTableElement
  {-# INLINE typeGType #-}

noHTMLTableElement :: Maybe HTMLTableElement
noHTMLTableElement = Nothing
{-# INLINE noHTMLTableElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTableElement\"])" gTypeHTMLTableElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTableRowElement" (html).
newtype HTMLTableRowElement = HTMLTableRowElement { unHTMLTableRowElement :: JSVal }

instance Eq HTMLTableRowElement where
  (HTMLTableRowElement a) == (HTMLTableRowElement b) = js_eq a b

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 = return . fmap HTMLTableRowElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTableRowElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTableRowElement
instance IsElementCSSInlineStyle HTMLTableRowElement
instance IsElementContentEditable HTMLTableRowElement
instance IsGlobalEventHandlers HTMLTableRowElement
instance IsHTMLOrSVGOrMathMLElement HTMLTableRowElement
instance IsElement HTMLTableRowElement
instance IsARIAMixin HTMLTableRowElement
instance IsARIANotifyMixin HTMLTableRowElement
instance IsAnimatable HTMLTableRowElement
instance IsChildNode HTMLTableRowElement
instance IsNonDocumentTypeChildNode HTMLTableRowElement
instance IsParentNode HTMLTableRowElement
instance IsSlottable HTMLTableRowElement
instance IsNode HTMLTableRowElement
instance IsEventTarget HTMLTableRowElement

instance IsGObject HTMLTableRowElement where
  typeGType _ = gTypeHTMLTableRowElement
  {-# INLINE typeGType #-}

noHTMLTableRowElement :: Maybe HTMLTableRowElement
noHTMLTableRowElement = Nothing
{-# INLINE noHTMLTableRowElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTableRowElement\"])" gTypeHTMLTableRowElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTableSectionElement" (html).
newtype HTMLTableSectionElement = HTMLTableSectionElement { unHTMLTableSectionElement :: JSVal }

instance Eq HTMLTableSectionElement where
  (HTMLTableSectionElement a) == (HTMLTableSectionElement b) = js_eq a b

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 = return . fmap HTMLTableSectionElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTableSectionElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTableSectionElement
instance IsElementCSSInlineStyle HTMLTableSectionElement
instance IsElementContentEditable HTMLTableSectionElement
instance IsGlobalEventHandlers HTMLTableSectionElement
instance IsHTMLOrSVGOrMathMLElement HTMLTableSectionElement
instance IsElement HTMLTableSectionElement
instance IsARIAMixin HTMLTableSectionElement
instance IsARIANotifyMixin HTMLTableSectionElement
instance IsAnimatable HTMLTableSectionElement
instance IsChildNode HTMLTableSectionElement
instance IsNonDocumentTypeChildNode HTMLTableSectionElement
instance IsParentNode HTMLTableSectionElement
instance IsSlottable HTMLTableSectionElement
instance IsNode HTMLTableSectionElement
instance IsEventTarget HTMLTableSectionElement

instance IsGObject HTMLTableSectionElement where
  typeGType _ = gTypeHTMLTableSectionElement
  {-# INLINE typeGType #-}

noHTMLTableSectionElement :: Maybe HTMLTableSectionElement
noHTMLTableSectionElement = Nothing
{-# INLINE noHTMLTableSectionElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTableSectionElement\"])" gTypeHTMLTableSectionElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTemplateElement" (html).
newtype HTMLTemplateElement = HTMLTemplateElement { unHTMLTemplateElement :: JSVal }

instance Eq HTMLTemplateElement where
  (HTMLTemplateElement a) == (HTMLTemplateElement b) = js_eq a b

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 = return . fmap HTMLTemplateElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTemplateElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTemplateElement
instance IsElementCSSInlineStyle HTMLTemplateElement
instance IsElementContentEditable HTMLTemplateElement
instance IsGlobalEventHandlers HTMLTemplateElement
instance IsHTMLOrSVGOrMathMLElement HTMLTemplateElement
instance IsElement HTMLTemplateElement
instance IsARIAMixin HTMLTemplateElement
instance IsARIANotifyMixin HTMLTemplateElement
instance IsAnimatable HTMLTemplateElement
instance IsChildNode HTMLTemplateElement
instance IsNonDocumentTypeChildNode HTMLTemplateElement
instance IsParentNode HTMLTemplateElement
instance IsSlottable HTMLTemplateElement
instance IsNode HTMLTemplateElement
instance IsEventTarget HTMLTemplateElement

instance IsGObject HTMLTemplateElement where
  typeGType _ = gTypeHTMLTemplateElement
  {-# INLINE typeGType #-}

noHTMLTemplateElement :: Maybe HTMLTemplateElement
noHTMLTemplateElement = Nothing
{-# INLINE noHTMLTemplateElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTemplateElement\"])" gTypeHTMLTemplateElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTextAreaElement" (html).
newtype HTMLTextAreaElement = HTMLTextAreaElement { unHTMLTextAreaElement :: JSVal }

instance Eq HTMLTextAreaElement where
  (HTMLTextAreaElement a) == (HTMLTextAreaElement b) = js_eq a b

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 = return . fmap HTMLTextAreaElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTextAreaElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTextAreaElement
instance IsElementCSSInlineStyle HTMLTextAreaElement
instance IsElementContentEditable HTMLTextAreaElement
instance IsGlobalEventHandlers HTMLTextAreaElement
instance IsHTMLOrSVGOrMathMLElement HTMLTextAreaElement
instance IsElement HTMLTextAreaElement
instance IsARIAMixin HTMLTextAreaElement
instance IsARIANotifyMixin HTMLTextAreaElement
instance IsAnimatable HTMLTextAreaElement
instance IsChildNode HTMLTextAreaElement
instance IsNonDocumentTypeChildNode HTMLTextAreaElement
instance IsParentNode HTMLTextAreaElement
instance IsSlottable HTMLTextAreaElement
instance IsNode HTMLTextAreaElement
instance IsEventTarget HTMLTextAreaElement

instance IsGObject HTMLTextAreaElement where
  typeGType _ = gTypeHTMLTextAreaElement
  {-# INLINE typeGType #-}

noHTMLTextAreaElement :: Maybe HTMLTextAreaElement
noHTMLTextAreaElement = Nothing
{-# INLINE noHTMLTextAreaElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTextAreaElement\"])" gTypeHTMLTextAreaElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTimeElement" (html).
newtype HTMLTimeElement = HTMLTimeElement { unHTMLTimeElement :: JSVal }

instance Eq HTMLTimeElement where
  (HTMLTimeElement a) == (HTMLTimeElement b) = js_eq a b

instance PToJSVal HTMLTimeElement where
  pToJSVal = unHTMLTimeElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal HTMLTimeElement where
  pFromJSVal = HTMLTimeElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal HTMLTimeElement where
  toJSVal = return . unHTMLTimeElement
  {-# INLINE toJSVal #-}

instance FromJSVal HTMLTimeElement where
  fromJSVal = return . fmap HTMLTimeElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTimeElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTimeElement
instance IsElementCSSInlineStyle HTMLTimeElement
instance IsElementContentEditable HTMLTimeElement
instance IsGlobalEventHandlers HTMLTimeElement
instance IsHTMLOrSVGOrMathMLElement HTMLTimeElement
instance IsElement HTMLTimeElement
instance IsARIAMixin HTMLTimeElement
instance IsARIANotifyMixin HTMLTimeElement
instance IsAnimatable HTMLTimeElement
instance IsChildNode HTMLTimeElement
instance IsNonDocumentTypeChildNode HTMLTimeElement
instance IsParentNode HTMLTimeElement
instance IsSlottable HTMLTimeElement
instance IsNode HTMLTimeElement
instance IsEventTarget HTMLTimeElement

instance IsGObject HTMLTimeElement where
  typeGType _ = gTypeHTMLTimeElement
  {-# INLINE typeGType #-}

noHTMLTimeElement :: Maybe HTMLTimeElement
noHTMLTimeElement = Nothing
{-# INLINE noHTMLTimeElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTimeElement\"])" gTypeHTMLTimeElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTitleElement" (html).
newtype HTMLTitleElement = HTMLTitleElement { unHTMLTitleElement :: JSVal }

instance Eq HTMLTitleElement where
  (HTMLTitleElement a) == (HTMLTitleElement b) = js_eq a b

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 = return . fmap HTMLTitleElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTitleElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTitleElement
instance IsElementCSSInlineStyle HTMLTitleElement
instance IsElementContentEditable HTMLTitleElement
instance IsGlobalEventHandlers HTMLTitleElement
instance IsHTMLOrSVGOrMathMLElement HTMLTitleElement
instance IsElement HTMLTitleElement
instance IsARIAMixin HTMLTitleElement
instance IsARIANotifyMixin HTMLTitleElement
instance IsAnimatable HTMLTitleElement
instance IsChildNode HTMLTitleElement
instance IsNonDocumentTypeChildNode HTMLTitleElement
instance IsParentNode HTMLTitleElement
instance IsSlottable HTMLTitleElement
instance IsNode HTMLTitleElement
instance IsEventTarget HTMLTitleElement

instance IsGObject HTMLTitleElement where
  typeGType _ = gTypeHTMLTitleElement
  {-# INLINE typeGType #-}

noHTMLTitleElement :: Maybe HTMLTitleElement
noHTMLTitleElement = Nothing
{-# INLINE noHTMLTitleElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTitleElement\"])" gTypeHTMLTitleElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLTrackElement" (html).
newtype HTMLTrackElement = HTMLTrackElement { unHTMLTrackElement :: JSVal }

instance Eq HTMLTrackElement where
  (HTMLTrackElement a) == (HTMLTrackElement b) = js_eq a b

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 = return . fmap HTMLTrackElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLTrackElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLTrackElement
instance IsElementCSSInlineStyle HTMLTrackElement
instance IsElementContentEditable HTMLTrackElement
instance IsGlobalEventHandlers HTMLTrackElement
instance IsHTMLOrSVGOrMathMLElement HTMLTrackElement
instance IsElement HTMLTrackElement
instance IsARIAMixin HTMLTrackElement
instance IsARIANotifyMixin HTMLTrackElement
instance IsAnimatable HTMLTrackElement
instance IsChildNode HTMLTrackElement
instance IsNonDocumentTypeChildNode HTMLTrackElement
instance IsParentNode HTMLTrackElement
instance IsSlottable HTMLTrackElement
instance IsNode HTMLTrackElement
instance IsEventTarget HTMLTrackElement

instance IsGObject HTMLTrackElement where
  typeGType _ = gTypeHTMLTrackElement
  {-# INLINE typeGType #-}

noHTMLTrackElement :: Maybe HTMLTrackElement
noHTMLTrackElement = Nothing
{-# INLINE noHTMLTrackElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLTrackElement\"])" gTypeHTMLTrackElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLUListElement" (html).
newtype HTMLUListElement = HTMLUListElement { unHTMLUListElement :: JSVal }

instance Eq HTMLUListElement where
  (HTMLUListElement a) == (HTMLUListElement b) = js_eq a b

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 = return . fmap HTMLUListElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLUListElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLUListElement
instance IsElementCSSInlineStyle HTMLUListElement
instance IsElementContentEditable HTMLUListElement
instance IsGlobalEventHandlers HTMLUListElement
instance IsHTMLOrSVGOrMathMLElement HTMLUListElement
instance IsElement HTMLUListElement
instance IsARIAMixin HTMLUListElement
instance IsARIANotifyMixin HTMLUListElement
instance IsAnimatable HTMLUListElement
instance IsChildNode HTMLUListElement
instance IsNonDocumentTypeChildNode HTMLUListElement
instance IsParentNode HTMLUListElement
instance IsSlottable HTMLUListElement
instance IsNode HTMLUListElement
instance IsEventTarget HTMLUListElement

instance IsGObject HTMLUListElement where
  typeGType _ = gTypeHTMLUListElement
  {-# INLINE typeGType #-}

noHTMLUListElement :: Maybe HTMLUListElement
noHTMLUListElement = Nothing
{-# INLINE noHTMLUListElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLUListElement\"])" gTypeHTMLUListElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLUnknownElement" (html).
newtype HTMLUnknownElement = HTMLUnknownElement { unHTMLUnknownElement :: JSVal }

instance Eq HTMLUnknownElement where
  (HTMLUnknownElement a) == (HTMLUnknownElement b) = js_eq a b

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 = return . fmap HTMLUnknownElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLUnknownElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLElement HTMLUnknownElement
instance IsElementCSSInlineStyle HTMLUnknownElement
instance IsElementContentEditable HTMLUnknownElement
instance IsGlobalEventHandlers HTMLUnknownElement
instance IsHTMLOrSVGOrMathMLElement HTMLUnknownElement
instance IsElement HTMLUnknownElement
instance IsARIAMixin HTMLUnknownElement
instance IsARIANotifyMixin HTMLUnknownElement
instance IsAnimatable HTMLUnknownElement
instance IsChildNode HTMLUnknownElement
instance IsNonDocumentTypeChildNode HTMLUnknownElement
instance IsParentNode HTMLUnknownElement
instance IsSlottable HTMLUnknownElement
instance IsNode HTMLUnknownElement
instance IsEventTarget HTMLUnknownElement

instance IsGObject HTMLUnknownElement where
  typeGType _ = gTypeHTMLUnknownElement
  {-# INLINE typeGType #-}

noHTMLUnknownElement :: Maybe HTMLUnknownElement
noHTMLUnknownElement = Nothing
{-# INLINE noHTMLUnknownElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLUnknownElement\"])" gTypeHTMLUnknownElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HTMLVideoElement" (html).
newtype HTMLVideoElement = HTMLVideoElement { unHTMLVideoElement :: JSVal }

instance Eq HTMLVideoElement where
  (HTMLVideoElement a) == (HTMLVideoElement b) = js_eq a b

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 = return . fmap HTMLVideoElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HTMLVideoElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHTMLMediaElement HTMLVideoElement
instance IsHTMLElement HTMLVideoElement
instance IsElementCSSInlineStyle HTMLVideoElement
instance IsElementContentEditable HTMLVideoElement
instance IsGlobalEventHandlers HTMLVideoElement
instance IsHTMLOrSVGOrMathMLElement HTMLVideoElement
instance IsElement HTMLVideoElement
instance IsARIAMixin HTMLVideoElement
instance IsARIANotifyMixin HTMLVideoElement
instance IsAnimatable HTMLVideoElement
instance IsChildNode HTMLVideoElement
instance IsNonDocumentTypeChildNode HTMLVideoElement
instance IsParentNode HTMLVideoElement
instance IsSlottable HTMLVideoElement
instance IsNode HTMLVideoElement
instance IsEventTarget HTMLVideoElement

instance IsGObject HTMLVideoElement where
  typeGType _ = gTypeHTMLVideoElement
  {-# INLINE typeGType #-}

noHTMLVideoElement :: Maybe HTMLVideoElement
noHTMLVideoElement = Nothing
{-# INLINE noHTMLVideoElement #-}

foreign import javascript unsafe "(() => globalThis[\"HTMLVideoElement\"])" gTypeHTMLVideoElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.HashChangeEvent" (html).
newtype HashChangeEvent = HashChangeEvent { unHashChangeEvent :: JSVal }

instance Eq HashChangeEvent where
  (HashChangeEvent a) == (HashChangeEvent b) = js_eq a b

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 = return . fmap HashChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HashChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent HashChangeEvent

instance IsGObject HashChangeEvent where
  typeGType _ = gTypeHashChangeEvent
  {-# INLINE typeGType #-}

noHashChangeEvent :: Maybe HashChangeEvent
noHashChangeEvent = Nothing
{-# INLINE noHashChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"HashChangeEvent\"])" gTypeHashChangeEvent :: GType

-- | Dictionary HashChangeEventInit (html)
newtype HashChangeEventInit = HashChangeEventInit { unHashChangeEventInit :: JSVal }

instance Eq HashChangeEventInit where
  (HashChangeEventInit a) == (HashChangeEventInit b) = js_eq a b

instance PToJSVal HashChangeEventInit where
  pToJSVal = unHashChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal HashChangeEventInit where
  pFromJSVal = HashChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal HashChangeEventInit where
  toJSVal = return . unHashChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal HashChangeEventInit where
  fromJSVal = return . fmap HashChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HashChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit HashChangeEventInit

instance IsGObject HashChangeEventInit where
  typeGType _ = gTypeHashChangeEventInit
  {-# INLINE typeGType #-}

noHashChangeEventInit :: Maybe HashChangeEventInit
noHashChangeEventInit = Nothing
{-# INLINE noHashChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHashChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.Headers" (fetch).
newtype Headers = Headers { unHeaders :: JSVal }

instance Eq Headers where
  (Headers a) == (Headers b) = js_eq a b

instance PToJSVal Headers where
  pToJSVal = unHeaders
  {-# INLINE pToJSVal #-}

instance PFromJSVal Headers where
  pFromJSVal = Headers
  {-# INLINE pFromJSVal #-}

instance ToJSVal Headers where
  toJSVal = return . unHeaders
  {-# INLINE toJSVal #-}

instance FromJSVal Headers where
  fromJSVal = return . fmap Headers . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Headers
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Headers where
  typeGType _ = gTypeHeaders
  {-# INLINE typeGType #-}

noHeaders :: Maybe Headers
noHeaders = Nothing
{-# INLINE noHeaders #-}

foreign import javascript unsafe "(() => globalThis[\"Headers\"])" gTypeHeaders :: GType

-- | Dictionary HevcEncoderConfig (webcodecs-hevc-codec-registration)
newtype HevcEncoderConfig = HevcEncoderConfig { unHevcEncoderConfig :: JSVal }

instance Eq HevcEncoderConfig where
  (HevcEncoderConfig a) == (HevcEncoderConfig b) = js_eq a b

instance PToJSVal HevcEncoderConfig where
  pToJSVal = unHevcEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal HevcEncoderConfig where
  pFromJSVal = HevcEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal HevcEncoderConfig where
  toJSVal = return . unHevcEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal HevcEncoderConfig where
  fromJSVal = return . fmap HevcEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HevcEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HevcEncoderConfig where
  typeGType _ = gTypeHevcEncoderConfig
  {-# INLINE typeGType #-}

noHevcEncoderConfig :: Maybe HevcEncoderConfig
noHevcEncoderConfig = Nothing
{-# INLINE noHevcEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHevcEncoderConfig :: GType

-- | Functions for this interface are in "GHCJS.DOM.Highlight" (css-highlight-api-1).
newtype Highlight = Highlight { unHighlight :: JSVal }

instance Eq Highlight where
  (Highlight a) == (Highlight b) = js_eq a b

instance PToJSVal Highlight where
  pToJSVal = unHighlight
  {-# INLINE pToJSVal #-}

instance PFromJSVal Highlight where
  pFromJSVal = Highlight
  {-# INLINE pFromJSVal #-}

instance ToJSVal Highlight where
  toJSVal = return . unHighlight
  {-# INLINE toJSVal #-}

instance FromJSVal Highlight where
  fromJSVal = return . fmap Highlight . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Highlight
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Highlight where
  typeGType _ = gTypeHighlight
  {-# INLINE typeGType #-}

noHighlight :: Maybe Highlight
noHighlight = Nothing
{-# INLINE noHighlight #-}

foreign import javascript unsafe "(() => globalThis[\"Highlight\"])" gTypeHighlight :: GType

-- | Dictionary HighlightHitResult (css-highlight-api-1)
newtype HighlightHitResult = HighlightHitResult { unHighlightHitResult :: JSVal }

instance Eq HighlightHitResult where
  (HighlightHitResult a) == (HighlightHitResult b) = js_eq a b

instance PToJSVal HighlightHitResult where
  pToJSVal = unHighlightHitResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal HighlightHitResult where
  pFromJSVal = HighlightHitResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal HighlightHitResult where
  toJSVal = return . unHighlightHitResult
  {-# INLINE toJSVal #-}

instance FromJSVal HighlightHitResult where
  fromJSVal = return . fmap HighlightHitResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HighlightHitResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HighlightHitResult where
  typeGType _ = gTypeHighlightHitResult
  {-# INLINE typeGType #-}

noHighlightHitResult :: Maybe HighlightHitResult
noHighlightHitResult = Nothing
{-# INLINE noHighlightHitResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHighlightHitResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.HighlightRegistry" (css-highlight-api-1).
newtype HighlightRegistry = HighlightRegistry { unHighlightRegistry :: JSVal }

instance Eq HighlightRegistry where
  (HighlightRegistry a) == (HighlightRegistry b) = js_eq a b

instance PToJSVal HighlightRegistry where
  pToJSVal = unHighlightRegistry
  {-# INLINE pToJSVal #-}

instance PFromJSVal HighlightRegistry where
  pFromJSVal = HighlightRegistry
  {-# INLINE pFromJSVal #-}

instance ToJSVal HighlightRegistry where
  toJSVal = return . unHighlightRegistry
  {-# INLINE toJSVal #-}

instance FromJSVal HighlightRegistry where
  fromJSVal = return . fmap HighlightRegistry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HighlightRegistry
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HighlightRegistry where
  typeGType _ = gTypeHighlightRegistry
  {-# INLINE typeGType #-}

noHighlightRegistry :: Maybe HighlightRegistry
noHighlightRegistry = Nothing
{-# INLINE noHighlightRegistry #-}

foreign import javascript unsafe "(() => globalThis[\"HighlightRegistry\"])" gTypeHighlightRegistry :: GType

-- | Dictionary HighlightsFromPointOptions (css-highlight-api-1)
newtype HighlightsFromPointOptions = HighlightsFromPointOptions { unHighlightsFromPointOptions :: JSVal }

instance Eq HighlightsFromPointOptions where
  (HighlightsFromPointOptions a) == (HighlightsFromPointOptions b) = js_eq a b

instance PToJSVal HighlightsFromPointOptions where
  pToJSVal = unHighlightsFromPointOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal HighlightsFromPointOptions where
  pFromJSVal = HighlightsFromPointOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal HighlightsFromPointOptions where
  toJSVal = return . unHighlightsFromPointOptions
  {-# INLINE toJSVal #-}

instance FromJSVal HighlightsFromPointOptions where
  fromJSVal = return . fmap HighlightsFromPointOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HighlightsFromPointOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject HighlightsFromPointOptions where
  typeGType _ = gTypeHighlightsFromPointOptions
  {-# INLINE typeGType #-}

noHighlightsFromPointOptions :: Maybe HighlightsFromPointOptions
noHighlightsFromPointOptions = Nothing
{-# INLINE noHighlightsFromPointOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHighlightsFromPointOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.History" (html).
newtype History = History { unHistory :: JSVal }

instance Eq History where
  (History a) == (History b) = js_eq a b

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 = return . fmap History . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . History
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject History where
  typeGType _ = gTypeHistory
  {-# INLINE typeGType #-}

noHistory :: Maybe History
noHistory = Nothing
{-# INLINE noHistory #-}

foreign import javascript unsafe "(() => globalThis[\"History\"])" gTypeHistory :: GType

-- | Functions for this interface are in "GHCJS.DOM.HyperlinkElementUtils" (html).
newtype HyperlinkElementUtils = HyperlinkElementUtils { unHyperlinkElementUtils :: JSVal }

instance Eq HyperlinkElementUtils where
  (HyperlinkElementUtils a) == (HyperlinkElementUtils b) = js_eq a b

instance PToJSVal HyperlinkElementUtils where
  pToJSVal = unHyperlinkElementUtils
  {-# INLINE pToJSVal #-}

instance PFromJSVal HyperlinkElementUtils where
  pFromJSVal = HyperlinkElementUtils
  {-# INLINE pFromJSVal #-}

instance ToJSVal HyperlinkElementUtils where
  toJSVal = return . unHyperlinkElementUtils
  {-# INLINE toJSVal #-}

instance FromJSVal HyperlinkElementUtils where
  fromJSVal = return . fmap HyperlinkElementUtils . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . HyperlinkElementUtils
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsHyperlinkElementUtils o
toHyperlinkElementUtils :: IsHyperlinkElementUtils o => o -> HyperlinkElementUtils
toHyperlinkElementUtils = HyperlinkElementUtils . coerce

instance IsHyperlinkElementUtils HyperlinkElementUtils

instance IsGObject HyperlinkElementUtils where
  typeGType _ = gTypeHyperlinkElementUtils
  {-# INLINE typeGType #-}

noHyperlinkElementUtils :: Maybe HyperlinkElementUtils
noHyperlinkElementUtils = Nothing
{-# INLINE noHyperlinkElementUtils #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeHyperlinkElementUtils :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBCursor" (IndexedDB-3).
newtype IDBCursor = IDBCursor { unIDBCursor :: JSVal }

instance Eq IDBCursor where
  (IDBCursor a) == (IDBCursor b) = js_eq a b

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 = return . fmap IDBCursor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBCursor
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsIDBCursor o
toIDBCursor :: IsIDBCursor o => o -> IDBCursor
toIDBCursor = IDBCursor . coerce

instance IsIDBCursor IDBCursor

instance IsGObject IDBCursor where
  typeGType _ = gTypeIDBCursor
  {-# INLINE typeGType #-}

noIDBCursor :: Maybe IDBCursor
noIDBCursor = Nothing
{-# INLINE noIDBCursor #-}

foreign import javascript unsafe "(() => globalThis[\"IDBCursor\"])" gTypeIDBCursor :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBCursorWithValue" (IndexedDB-3).
newtype IDBCursorWithValue = IDBCursorWithValue { unIDBCursorWithValue :: JSVal }

instance Eq IDBCursorWithValue where
  (IDBCursorWithValue a) == (IDBCursorWithValue b) = js_eq a b

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 = return . fmap IDBCursorWithValue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBCursorWithValue
  {-# INLINE fromJSValUnchecked #-}

instance IsIDBCursor IDBCursorWithValue

instance IsGObject IDBCursorWithValue where
  typeGType _ = gTypeIDBCursorWithValue
  {-# INLINE typeGType #-}

noIDBCursorWithValue :: Maybe IDBCursorWithValue
noIDBCursorWithValue = Nothing
{-# INLINE noIDBCursorWithValue #-}

foreign import javascript unsafe "(() => globalThis[\"IDBCursorWithValue\"])" gTypeIDBCursorWithValue :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBDatabase" (IndexedDB-3).
newtype IDBDatabase = IDBDatabase { unIDBDatabase :: JSVal }

instance Eq IDBDatabase where
  (IDBDatabase a) == (IDBDatabase b) = js_eq a b

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 = return . fmap IDBDatabase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBDatabase
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget IDBDatabase

instance IsGObject IDBDatabase where
  typeGType _ = gTypeIDBDatabase
  {-# INLINE typeGType #-}

noIDBDatabase :: Maybe IDBDatabase
noIDBDatabase = Nothing
{-# INLINE noIDBDatabase #-}

foreign import javascript unsafe "(() => globalThis[\"IDBDatabase\"])" gTypeIDBDatabase :: GType

-- | Dictionary IDBDatabaseInfo (IndexedDB-3)
newtype IDBDatabaseInfo = IDBDatabaseInfo { unIDBDatabaseInfo :: JSVal }

instance Eq IDBDatabaseInfo where
  (IDBDatabaseInfo a) == (IDBDatabaseInfo b) = js_eq a b

instance PToJSVal IDBDatabaseInfo where
  pToJSVal = unIDBDatabaseInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBDatabaseInfo where
  pFromJSVal = IDBDatabaseInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBDatabaseInfo where
  toJSVal = return . unIDBDatabaseInfo
  {-# INLINE toJSVal #-}

instance FromJSVal IDBDatabaseInfo where
  fromJSVal = return . fmap IDBDatabaseInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBDatabaseInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBDatabaseInfo where
  typeGType _ = gTypeIDBDatabaseInfo
  {-# INLINE typeGType #-}

noIDBDatabaseInfo :: Maybe IDBDatabaseInfo
noIDBDatabaseInfo = Nothing
{-# INLINE noIDBDatabaseInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIDBDatabaseInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBFactory" (IndexedDB-3).
newtype IDBFactory = IDBFactory { unIDBFactory :: JSVal }

instance Eq IDBFactory where
  (IDBFactory a) == (IDBFactory b) = js_eq a b

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 = return . fmap IDBFactory . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBFactory
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBFactory where
  typeGType _ = gTypeIDBFactory
  {-# INLINE typeGType #-}

noIDBFactory :: Maybe IDBFactory
noIDBFactory = Nothing
{-# INLINE noIDBFactory #-}

foreign import javascript unsafe "(() => globalThis[\"IDBFactory\"])" gTypeIDBFactory :: GType

-- | Dictionary IDBGetAllOptions (IndexedDB-3)
newtype IDBGetAllOptions = IDBGetAllOptions { unIDBGetAllOptions :: JSVal }

instance Eq IDBGetAllOptions where
  (IDBGetAllOptions a) == (IDBGetAllOptions b) = js_eq a b

instance PToJSVal IDBGetAllOptions where
  pToJSVal = unIDBGetAllOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBGetAllOptions where
  pFromJSVal = IDBGetAllOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBGetAllOptions where
  toJSVal = return . unIDBGetAllOptions
  {-# INLINE toJSVal #-}

instance FromJSVal IDBGetAllOptions where
  fromJSVal = return . fmap IDBGetAllOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBGetAllOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBGetAllOptions where
  typeGType _ = gTypeIDBGetAllOptions
  {-# INLINE typeGType #-}

noIDBGetAllOptions :: Maybe IDBGetAllOptions
noIDBGetAllOptions = Nothing
{-# INLINE noIDBGetAllOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIDBGetAllOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBIndex" (IndexedDB-3).
newtype IDBIndex = IDBIndex { unIDBIndex :: JSVal }

instance Eq IDBIndex where
  (IDBIndex a) == (IDBIndex b) = js_eq a b

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 = return . fmap IDBIndex . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBIndex
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBIndex where
  typeGType _ = gTypeIDBIndex
  {-# INLINE typeGType #-}

noIDBIndex :: Maybe IDBIndex
noIDBIndex = Nothing
{-# INLINE noIDBIndex #-}

foreign import javascript unsafe "(() => globalThis[\"IDBIndex\"])" gTypeIDBIndex :: GType

-- | Dictionary IDBIndexParameters (IndexedDB-3)
newtype IDBIndexParameters = IDBIndexParameters { unIDBIndexParameters :: JSVal }

instance Eq IDBIndexParameters where
  (IDBIndexParameters a) == (IDBIndexParameters b) = js_eq a b

instance PToJSVal IDBIndexParameters where
  pToJSVal = unIDBIndexParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBIndexParameters where
  pFromJSVal = IDBIndexParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBIndexParameters where
  toJSVal = return . unIDBIndexParameters
  {-# INLINE toJSVal #-}

instance FromJSVal IDBIndexParameters where
  fromJSVal = return . fmap IDBIndexParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBIndexParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBIndexParameters where
  typeGType _ = gTypeIDBIndexParameters
  {-# INLINE typeGType #-}

noIDBIndexParameters :: Maybe IDBIndexParameters
noIDBIndexParameters = Nothing
{-# INLINE noIDBIndexParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIDBIndexParameters :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBKeyRange" (IndexedDB-3).
newtype IDBKeyRange = IDBKeyRange { unIDBKeyRange :: JSVal }

instance Eq IDBKeyRange where
  (IDBKeyRange a) == (IDBKeyRange b) = js_eq a b

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 = return . fmap IDBKeyRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBKeyRange
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBKeyRange where
  typeGType _ = gTypeIDBKeyRange
  {-# INLINE typeGType #-}

noIDBKeyRange :: Maybe IDBKeyRange
noIDBKeyRange = Nothing
{-# INLINE noIDBKeyRange #-}

foreign import javascript unsafe "(() => globalThis[\"IDBKeyRange\"])" gTypeIDBKeyRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBObjectStore" (IndexedDB-3).
newtype IDBObjectStore = IDBObjectStore { unIDBObjectStore :: JSVal }

instance Eq IDBObjectStore where
  (IDBObjectStore a) == (IDBObjectStore b) = js_eq a b

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 = return . fmap IDBObjectStore . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBObjectStore
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBObjectStore where
  typeGType _ = gTypeIDBObjectStore
  {-# INLINE typeGType #-}

noIDBObjectStore :: Maybe IDBObjectStore
noIDBObjectStore = Nothing
{-# INLINE noIDBObjectStore #-}

foreign import javascript unsafe "(() => globalThis[\"IDBObjectStore\"])" gTypeIDBObjectStore :: GType

-- | Dictionary IDBObjectStoreParameters (IndexedDB-3)
newtype IDBObjectStoreParameters = IDBObjectStoreParameters { unIDBObjectStoreParameters :: JSVal }

instance Eq IDBObjectStoreParameters where
  (IDBObjectStoreParameters a) == (IDBObjectStoreParameters b) = js_eq a b

instance PToJSVal IDBObjectStoreParameters where
  pToJSVal = unIDBObjectStoreParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBObjectStoreParameters where
  pFromJSVal = IDBObjectStoreParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBObjectStoreParameters where
  toJSVal = return . unIDBObjectStoreParameters
  {-# INLINE toJSVal #-}

instance FromJSVal IDBObjectStoreParameters where
  fromJSVal = return . fmap IDBObjectStoreParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBObjectStoreParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBObjectStoreParameters where
  typeGType _ = gTypeIDBObjectStoreParameters
  {-# INLINE typeGType #-}

noIDBObjectStoreParameters :: Maybe IDBObjectStoreParameters
noIDBObjectStoreParameters = Nothing
{-# INLINE noIDBObjectStoreParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIDBObjectStoreParameters :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBOpenDBRequest" (IndexedDB-3).
newtype IDBOpenDBRequest = IDBOpenDBRequest { unIDBOpenDBRequest :: JSVal }

instance Eq IDBOpenDBRequest where
  (IDBOpenDBRequest a) == (IDBOpenDBRequest b) = js_eq a b

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 = return . fmap IDBOpenDBRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBOpenDBRequest
  {-# INLINE fromJSValUnchecked #-}

instance IsIDBRequest IDBOpenDBRequest
instance IsEventTarget IDBOpenDBRequest

instance IsGObject IDBOpenDBRequest where
  typeGType _ = gTypeIDBOpenDBRequest
  {-# INLINE typeGType #-}

noIDBOpenDBRequest :: Maybe IDBOpenDBRequest
noIDBOpenDBRequest = Nothing
{-# INLINE noIDBOpenDBRequest #-}

foreign import javascript unsafe "(() => globalThis[\"IDBOpenDBRequest\"])" gTypeIDBOpenDBRequest :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBRecord" (IndexedDB-3).
newtype IDBRecord = IDBRecord { unIDBRecord :: JSVal }

instance Eq IDBRecord where
  (IDBRecord a) == (IDBRecord b) = js_eq a b

instance PToJSVal IDBRecord where
  pToJSVal = unIDBRecord
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBRecord where
  pFromJSVal = IDBRecord
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBRecord where
  toJSVal = return . unIDBRecord
  {-# INLINE toJSVal #-}

instance FromJSVal IDBRecord where
  fromJSVal = return . fmap IDBRecord . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBRecord
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBRecord where
  typeGType _ = gTypeIDBRecord
  {-# INLINE typeGType #-}

noIDBRecord :: Maybe IDBRecord
noIDBRecord = Nothing
{-# INLINE noIDBRecord #-}

foreign import javascript unsafe "(() => globalThis[\"IDBRecord\"])" gTypeIDBRecord :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBRequest" (IndexedDB-3).
newtype IDBRequest = IDBRequest { unIDBRequest :: JSVal }

instance Eq IDBRequest where
  (IDBRequest a) == (IDBRequest b) = js_eq a b

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 = return . fmap IDBRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBRequest
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject 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 #-}

noIDBRequest :: Maybe IDBRequest
noIDBRequest = Nothing
{-# INLINE noIDBRequest #-}

foreign import javascript unsafe "(() => globalThis[\"IDBRequest\"])" gTypeIDBRequest :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBTransaction" (IndexedDB-3).
newtype IDBTransaction = IDBTransaction { unIDBTransaction :: JSVal }

instance Eq IDBTransaction where
  (IDBTransaction a) == (IDBTransaction b) = js_eq a b

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 = return . fmap IDBTransaction . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBTransaction
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget IDBTransaction

instance IsGObject IDBTransaction where
  typeGType _ = gTypeIDBTransaction
  {-# INLINE typeGType #-}

noIDBTransaction :: Maybe IDBTransaction
noIDBTransaction = Nothing
{-# INLINE noIDBTransaction #-}

foreign import javascript unsafe "(() => globalThis[\"IDBTransaction\"])" gTypeIDBTransaction :: GType

-- | Dictionary IDBTransactionOptions (IndexedDB-3)
newtype IDBTransactionOptions = IDBTransactionOptions { unIDBTransactionOptions :: JSVal }

instance Eq IDBTransactionOptions where
  (IDBTransactionOptions a) == (IDBTransactionOptions b) = js_eq a b

instance PToJSVal IDBTransactionOptions where
  pToJSVal = unIDBTransactionOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBTransactionOptions where
  pFromJSVal = IDBTransactionOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBTransactionOptions where
  toJSVal = return . unIDBTransactionOptions
  {-# INLINE toJSVal #-}

instance FromJSVal IDBTransactionOptions where
  fromJSVal = return . fmap IDBTransactionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBTransactionOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IDBTransactionOptions where
  typeGType _ = gTypeIDBTransactionOptions
  {-# INLINE typeGType #-}

noIDBTransactionOptions :: Maybe IDBTransactionOptions
noIDBTransactionOptions = Nothing
{-# INLINE noIDBTransactionOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIDBTransactionOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.IDBVersionChangeEvent" (IndexedDB-3).
newtype IDBVersionChangeEvent = IDBVersionChangeEvent { unIDBVersionChangeEvent :: JSVal }

instance Eq IDBVersionChangeEvent where
  (IDBVersionChangeEvent a) == (IDBVersionChangeEvent b) = js_eq a b

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 = return . fmap IDBVersionChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBVersionChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent IDBVersionChangeEvent

instance IsGObject IDBVersionChangeEvent where
  typeGType _ = gTypeIDBVersionChangeEvent
  {-# INLINE typeGType #-}

noIDBVersionChangeEvent :: Maybe IDBVersionChangeEvent
noIDBVersionChangeEvent = Nothing
{-# INLINE noIDBVersionChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"IDBVersionChangeEvent\"])" gTypeIDBVersionChangeEvent :: GType

-- | Dictionary IDBVersionChangeEventInit (IndexedDB-3)
newtype IDBVersionChangeEventInit = IDBVersionChangeEventInit { unIDBVersionChangeEventInit :: JSVal }

instance Eq IDBVersionChangeEventInit where
  (IDBVersionChangeEventInit a) == (IDBVersionChangeEventInit b) = js_eq a b

instance PToJSVal IDBVersionChangeEventInit where
  pToJSVal = unIDBVersionChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal IDBVersionChangeEventInit where
  pFromJSVal = IDBVersionChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal IDBVersionChangeEventInit where
  toJSVal = return . unIDBVersionChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal IDBVersionChangeEventInit where
  fromJSVal = return . fmap IDBVersionChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IDBVersionChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit IDBVersionChangeEventInit

instance IsGObject IDBVersionChangeEventInit where
  typeGType _ = gTypeIDBVersionChangeEventInit
  {-# INLINE typeGType #-}

noIDBVersionChangeEventInit :: Maybe IDBVersionChangeEventInit
noIDBVersionChangeEventInit = Nothing
{-# INLINE noIDBVersionChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIDBVersionChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.IIRFilterNode" (webaudio-1.1).
newtype IIRFilterNode = IIRFilterNode { unIIRFilterNode :: JSVal }

instance Eq IIRFilterNode where
  (IIRFilterNode a) == (IIRFilterNode b) = js_eq a b

instance PToJSVal IIRFilterNode where
  pToJSVal = unIIRFilterNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal IIRFilterNode where
  pFromJSVal = IIRFilterNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal IIRFilterNode where
  toJSVal = return . unIIRFilterNode
  {-# INLINE toJSVal #-}

instance FromJSVal IIRFilterNode where
  fromJSVal = return . fmap IIRFilterNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IIRFilterNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode IIRFilterNode
instance IsEventTarget IIRFilterNode

instance IsGObject IIRFilterNode where
  typeGType _ = gTypeIIRFilterNode
  {-# INLINE typeGType #-}

noIIRFilterNode :: Maybe IIRFilterNode
noIIRFilterNode = Nothing
{-# INLINE noIIRFilterNode #-}

foreign import javascript unsafe "(() => globalThis[\"IIRFilterNode\"])" gTypeIIRFilterNode :: GType

-- | Dictionary IIRFilterOptions (webaudio-1.1)
newtype IIRFilterOptions = IIRFilterOptions { unIIRFilterOptions :: JSVal }

instance Eq IIRFilterOptions where
  (IIRFilterOptions a) == (IIRFilterOptions b) = js_eq a b

instance PToJSVal IIRFilterOptions where
  pToJSVal = unIIRFilterOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal IIRFilterOptions where
  pFromJSVal = IIRFilterOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal IIRFilterOptions where
  toJSVal = return . unIIRFilterOptions
  {-# INLINE toJSVal #-}

instance FromJSVal IIRFilterOptions where
  fromJSVal = return . fmap IIRFilterOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IIRFilterOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions IIRFilterOptions

instance IsGObject IIRFilterOptions where
  typeGType _ = gTypeIIRFilterOptions
  {-# INLINE typeGType #-}

noIIRFilterOptions :: Maybe IIRFilterOptions
noIIRFilterOptions = Nothing
{-# INLINE noIIRFilterOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIIRFilterOptions :: GType

-- | Dictionary IdentityCredentialRequestOptions (fedcm-1)
newtype IdentityCredentialRequestOptions = IdentityCredentialRequestOptions { unIdentityCredentialRequestOptions :: JSVal }

instance Eq IdentityCredentialRequestOptions where
  (IdentityCredentialRequestOptions a) == (IdentityCredentialRequestOptions b) = js_eq a b

instance PToJSVal IdentityCredentialRequestOptions where
  pToJSVal = unIdentityCredentialRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal IdentityCredentialRequestOptions where
  pFromJSVal = IdentityCredentialRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal IdentityCredentialRequestOptions where
  toJSVal = return . unIdentityCredentialRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal IdentityCredentialRequestOptions where
  fromJSVal = return . fmap IdentityCredentialRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IdentityCredentialRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IdentityCredentialRequestOptions where
  typeGType _ = gTypeIdentityCredentialRequestOptions
  {-# INLINE typeGType #-}

noIdentityCredentialRequestOptions :: Maybe IdentityCredentialRequestOptions
noIdentityCredentialRequestOptions = Nothing
{-# INLINE noIdentityCredentialRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIdentityCredentialRequestOptions :: GType

-- | Dictionary IdentityProviderConfig (fedcm-1)
newtype IdentityProviderConfig = IdentityProviderConfig { unIdentityProviderConfig :: JSVal }

instance Eq IdentityProviderConfig where
  (IdentityProviderConfig a) == (IdentityProviderConfig b) = js_eq a b

instance PToJSVal IdentityProviderConfig where
  pToJSVal = unIdentityProviderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal IdentityProviderConfig where
  pFromJSVal = IdentityProviderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal IdentityProviderConfig where
  toJSVal = return . unIdentityProviderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal IdentityProviderConfig where
  fromJSVal = return . fmap IdentityProviderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IdentityProviderConfig
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsIdentityProviderConfig o
toIdentityProviderConfig :: IsIdentityProviderConfig o => o -> IdentityProviderConfig
toIdentityProviderConfig = IdentityProviderConfig . coerce

instance IsIdentityProviderConfig IdentityProviderConfig

instance IsGObject IdentityProviderConfig where
  typeGType _ = gTypeIdentityProviderConfig
  {-# INLINE typeGType #-}

noIdentityProviderConfig :: Maybe IdentityProviderConfig
noIdentityProviderConfig = Nothing
{-# INLINE noIdentityProviderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIdentityProviderConfig :: GType

-- | Dictionary IdentityProviderRequestOptions (fedcm-1)
newtype IdentityProviderRequestOptions = IdentityProviderRequestOptions { unIdentityProviderRequestOptions :: JSVal }

instance Eq IdentityProviderRequestOptions where
  (IdentityProviderRequestOptions a) == (IdentityProviderRequestOptions b) = js_eq a b

instance PToJSVal IdentityProviderRequestOptions where
  pToJSVal = unIdentityProviderRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal IdentityProviderRequestOptions where
  pFromJSVal = IdentityProviderRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal IdentityProviderRequestOptions where
  toJSVal = return . unIdentityProviderRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal IdentityProviderRequestOptions where
  fromJSVal = return . fmap IdentityProviderRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IdentityProviderRequestOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsIdentityProviderConfig IdentityProviderRequestOptions

instance IsGObject IdentityProviderRequestOptions where
  typeGType _ = gTypeIdentityProviderRequestOptions
  {-# INLINE typeGType #-}

noIdentityProviderRequestOptions :: Maybe IdentityProviderRequestOptions
noIdentityProviderRequestOptions = Nothing
{-# INLINE noIdentityProviderRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIdentityProviderRequestOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.IdleDeadline" (requestidlecallback).
newtype IdleDeadline = IdleDeadline { unIdleDeadline :: JSVal }

instance Eq IdleDeadline where
  (IdleDeadline a) == (IdleDeadline b) = js_eq a b

instance PToJSVal IdleDeadline where
  pToJSVal = unIdleDeadline
  {-# INLINE pToJSVal #-}

instance PFromJSVal IdleDeadline where
  pFromJSVal = IdleDeadline
  {-# INLINE pFromJSVal #-}

instance ToJSVal IdleDeadline where
  toJSVal = return . unIdleDeadline
  {-# INLINE toJSVal #-}

instance FromJSVal IdleDeadline where
  fromJSVal = return . fmap IdleDeadline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IdleDeadline
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IdleDeadline where
  typeGType _ = gTypeIdleDeadline
  {-# INLINE typeGType #-}

noIdleDeadline :: Maybe IdleDeadline
noIdleDeadline = Nothing
{-# INLINE noIdleDeadline #-}

foreign import javascript unsafe "(() => globalThis[\"IdleDeadline\"])" gTypeIdleDeadline :: GType

-- | Dictionary IdleRequestOptions (requestidlecallback)
newtype IdleRequestOptions = IdleRequestOptions { unIdleRequestOptions :: JSVal }

instance Eq IdleRequestOptions where
  (IdleRequestOptions a) == (IdleRequestOptions b) = js_eq a b

instance PToJSVal IdleRequestOptions where
  pToJSVal = unIdleRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal IdleRequestOptions where
  pFromJSVal = IdleRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal IdleRequestOptions where
  toJSVal = return . unIdleRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal IdleRequestOptions where
  fromJSVal = return . fmap IdleRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IdleRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IdleRequestOptions where
  typeGType _ = gTypeIdleRequestOptions
  {-# INLINE typeGType #-}

noIdleRequestOptions :: Maybe IdleRequestOptions
noIdleRequestOptions = Nothing
{-# INLINE noIdleRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIdleRequestOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageBitmap" (html).
newtype ImageBitmap = ImageBitmap { unImageBitmap :: JSVal }

instance Eq ImageBitmap where
  (ImageBitmap a) == (ImageBitmap b) = js_eq a b

instance PToJSVal ImageBitmap where
  pToJSVal = unImageBitmap
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageBitmap where
  pFromJSVal = ImageBitmap
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageBitmap where
  toJSVal = return . unImageBitmap
  {-# INLINE toJSVal #-}

instance FromJSVal ImageBitmap where
  fromJSVal = return . fmap ImageBitmap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageBitmap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageBitmap where
  typeGType _ = gTypeImageBitmap
  {-# INLINE typeGType #-}

noImageBitmap :: Maybe ImageBitmap
noImageBitmap = Nothing
{-# INLINE noImageBitmap #-}

foreign import javascript unsafe "(() => globalThis[\"ImageBitmap\"])" gTypeImageBitmap :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageBitmapRenderingContext" (html).
newtype ImageBitmapRenderingContext = ImageBitmapRenderingContext { unImageBitmapRenderingContext :: JSVal }

instance Eq ImageBitmapRenderingContext where
  (ImageBitmapRenderingContext a) == (ImageBitmapRenderingContext b) = js_eq a b

instance PToJSVal ImageBitmapRenderingContext where
  pToJSVal = unImageBitmapRenderingContext
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageBitmapRenderingContext where
  pFromJSVal = ImageBitmapRenderingContext
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageBitmapRenderingContext where
  toJSVal = return . unImageBitmapRenderingContext
  {-# INLINE toJSVal #-}

instance FromJSVal ImageBitmapRenderingContext where
  fromJSVal = return . fmap ImageBitmapRenderingContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageBitmapRenderingContext
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageBitmapRenderingContext where
  typeGType _ = gTypeImageBitmapRenderingContext
  {-# INLINE typeGType #-}

noImageBitmapRenderingContext :: Maybe ImageBitmapRenderingContext
noImageBitmapRenderingContext = Nothing
{-# INLINE noImageBitmapRenderingContext #-}

foreign import javascript unsafe "(() => globalThis[\"ImageBitmapRenderingContext\"])" gTypeImageBitmapRenderingContext :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageCapture" (image-capture).
newtype ImageCapture = ImageCapture { unImageCapture :: JSVal }

instance Eq ImageCapture where
  (ImageCapture a) == (ImageCapture b) = js_eq a b

instance PToJSVal ImageCapture where
  pToJSVal = unImageCapture
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageCapture where
  pFromJSVal = ImageCapture
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageCapture where
  toJSVal = return . unImageCapture
  {-# INLINE toJSVal #-}

instance FromJSVal ImageCapture where
  fromJSVal = return . fmap ImageCapture . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageCapture
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageCapture where
  typeGType _ = gTypeImageCapture
  {-# INLINE typeGType #-}

noImageCapture :: Maybe ImageCapture
noImageCapture = Nothing
{-# INLINE noImageCapture #-}

foreign import javascript unsafe "(() => globalThis[\"ImageCapture\"])" gTypeImageCapture :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageData" (html).
newtype ImageData = ImageData { unImageData :: JSVal }

instance Eq ImageData where
  (ImageData a) == (ImageData b) = js_eq a b

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 = return . fmap ImageData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageData
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageData where
  typeGType _ = gTypeImageData
  {-# INLINE typeGType #-}

noImageData :: Maybe ImageData
noImageData = Nothing
{-# INLINE noImageData #-}

foreign import javascript unsafe "(() => globalThis[\"ImageData\"])" gTypeImageData :: GType

-- | Dictionary ImageDataSettings (html)
newtype ImageDataSettings = ImageDataSettings { unImageDataSettings :: JSVal }

instance Eq ImageDataSettings where
  (ImageDataSettings a) == (ImageDataSettings b) = js_eq a b

instance PToJSVal ImageDataSettings where
  pToJSVal = unImageDataSettings
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageDataSettings where
  pFromJSVal = ImageDataSettings
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageDataSettings where
  toJSVal = return . unImageDataSettings
  {-# INLINE toJSVal #-}

instance FromJSVal ImageDataSettings where
  fromJSVal = return . fmap ImageDataSettings . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageDataSettings
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageDataSettings where
  typeGType _ = gTypeImageDataSettings
  {-# INLINE typeGType #-}

noImageDataSettings :: Maybe ImageDataSettings
noImageDataSettings = Nothing
{-# INLINE noImageDataSettings #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeImageDataSettings :: GType

-- | Dictionary ImageDecodeOptions (webcodecs)
newtype ImageDecodeOptions = ImageDecodeOptions { unImageDecodeOptions :: JSVal }

instance Eq ImageDecodeOptions where
  (ImageDecodeOptions a) == (ImageDecodeOptions b) = js_eq a b

instance PToJSVal ImageDecodeOptions where
  pToJSVal = unImageDecodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageDecodeOptions where
  pFromJSVal = ImageDecodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageDecodeOptions where
  toJSVal = return . unImageDecodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ImageDecodeOptions where
  fromJSVal = return . fmap ImageDecodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageDecodeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageDecodeOptions where
  typeGType _ = gTypeImageDecodeOptions
  {-# INLINE typeGType #-}

noImageDecodeOptions :: Maybe ImageDecodeOptions
noImageDecodeOptions = Nothing
{-# INLINE noImageDecodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeImageDecodeOptions :: GType

-- | Dictionary ImageDecodeResult (webcodecs)
newtype ImageDecodeResult = ImageDecodeResult { unImageDecodeResult :: JSVal }

instance Eq ImageDecodeResult where
  (ImageDecodeResult a) == (ImageDecodeResult b) = js_eq a b

instance PToJSVal ImageDecodeResult where
  pToJSVal = unImageDecodeResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageDecodeResult where
  pFromJSVal = ImageDecodeResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageDecodeResult where
  toJSVal = return . unImageDecodeResult
  {-# INLINE toJSVal #-}

instance FromJSVal ImageDecodeResult where
  fromJSVal = return . fmap ImageDecodeResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageDecodeResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageDecodeResult where
  typeGType _ = gTypeImageDecodeResult
  {-# INLINE typeGType #-}

noImageDecodeResult :: Maybe ImageDecodeResult
noImageDecodeResult = Nothing
{-# INLINE noImageDecodeResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeImageDecodeResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageDecoder" (webcodecs).
newtype ImageDecoder = ImageDecoder { unImageDecoder :: JSVal }

instance Eq ImageDecoder where
  (ImageDecoder a) == (ImageDecoder b) = js_eq a b

instance PToJSVal ImageDecoder where
  pToJSVal = unImageDecoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageDecoder where
  pFromJSVal = ImageDecoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageDecoder where
  toJSVal = return . unImageDecoder
  {-# INLINE toJSVal #-}

instance FromJSVal ImageDecoder where
  fromJSVal = return . fmap ImageDecoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageDecoder
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageDecoder where
  typeGType _ = gTypeImageDecoder
  {-# INLINE typeGType #-}

noImageDecoder :: Maybe ImageDecoder
noImageDecoder = Nothing
{-# INLINE noImageDecoder #-}

foreign import javascript unsafe "(() => globalThis[\"ImageDecoder\"])" gTypeImageDecoder :: GType

-- | Dictionary ImageDecoderInit (webcodecs)
newtype ImageDecoderInit = ImageDecoderInit { unImageDecoderInit :: JSVal }

instance Eq ImageDecoderInit where
  (ImageDecoderInit a) == (ImageDecoderInit b) = js_eq a b

instance PToJSVal ImageDecoderInit where
  pToJSVal = unImageDecoderInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageDecoderInit where
  pFromJSVal = ImageDecoderInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageDecoderInit where
  toJSVal = return . unImageDecoderInit
  {-# INLINE toJSVal #-}

instance FromJSVal ImageDecoderInit where
  fromJSVal = return . fmap ImageDecoderInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageDecoderInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageDecoderInit where
  typeGType _ = gTypeImageDecoderInit
  {-# INLINE typeGType #-}

noImageDecoderInit :: Maybe ImageDecoderInit
noImageDecoderInit = Nothing
{-# INLINE noImageDecoderInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeImageDecoderInit :: GType

-- | Dictionary ImageEncodeOptions (html)
newtype ImageEncodeOptions = ImageEncodeOptions { unImageEncodeOptions :: JSVal }

instance Eq ImageEncodeOptions where
  (ImageEncodeOptions a) == (ImageEncodeOptions b) = js_eq a b

instance PToJSVal ImageEncodeOptions where
  pToJSVal = unImageEncodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageEncodeOptions where
  pFromJSVal = ImageEncodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageEncodeOptions where
  toJSVal = return . unImageEncodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ImageEncodeOptions where
  fromJSVal = return . fmap ImageEncodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageEncodeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageEncodeOptions where
  typeGType _ = gTypeImageEncodeOptions
  {-# INLINE typeGType #-}

noImageEncodeOptions :: Maybe ImageEncodeOptions
noImageEncodeOptions = Nothing
{-# INLINE noImageEncodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeImageEncodeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageTrack" (webcodecs).
newtype ImageTrack = ImageTrack { unImageTrack :: JSVal }

instance Eq ImageTrack where
  (ImageTrack a) == (ImageTrack b) = js_eq a b

instance PToJSVal ImageTrack where
  pToJSVal = unImageTrack
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageTrack where
  pFromJSVal = ImageTrack
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageTrack where
  toJSVal = return . unImageTrack
  {-# INLINE toJSVal #-}

instance FromJSVal ImageTrack where
  fromJSVal = return . fmap ImageTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageTrack
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageTrack where
  typeGType _ = gTypeImageTrack
  {-# INLINE typeGType #-}

noImageTrack :: Maybe ImageTrack
noImageTrack = Nothing
{-# INLINE noImageTrack #-}

foreign import javascript unsafe "(() => globalThis[\"ImageTrack\"])" gTypeImageTrack :: GType

-- | Functions for this interface are in "GHCJS.DOM.ImageTrackList" (webcodecs).
newtype ImageTrackList = ImageTrackList { unImageTrackList :: JSVal }

instance Eq ImageTrackList where
  (ImageTrackList a) == (ImageTrackList b) = js_eq a b

instance PToJSVal ImageTrackList where
  pToJSVal = unImageTrackList
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImageTrackList where
  pFromJSVal = ImageTrackList
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImageTrackList where
  toJSVal = return . unImageTrackList
  {-# INLINE toJSVal #-}

instance FromJSVal ImageTrackList where
  fromJSVal = return . fmap ImageTrackList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImageTrackList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImageTrackList where
  typeGType _ = gTypeImageTrackList
  {-# INLINE typeGType #-}

noImageTrackList :: Maybe ImageTrackList
noImageTrackList = Nothing
{-# INLINE noImageTrackList #-}

foreign import javascript unsafe "(() => globalThis[\"ImageTrackList\"])" gTypeImageTrackList :: GType

-- | Dictionary ImportNodeOptions (dom)
newtype ImportNodeOptions = ImportNodeOptions { unImportNodeOptions :: JSVal }

instance Eq ImportNodeOptions where
  (ImportNodeOptions a) == (ImportNodeOptions b) = js_eq a b

instance PToJSVal ImportNodeOptions where
  pToJSVal = unImportNodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ImportNodeOptions where
  pFromJSVal = ImportNodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ImportNodeOptions where
  toJSVal = return . unImportNodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ImportNodeOptions where
  fromJSVal = return . fmap ImportNodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ImportNodeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ImportNodeOptions where
  typeGType _ = gTypeImportNodeOptions
  {-# INLINE typeGType #-}

noImportNodeOptions :: Maybe ImportNodeOptions
noImportNodeOptions = Nothing
{-# INLINE noImportNodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeImportNodeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.InputDeviceCapabilities" (input-device-capabilities).
newtype InputDeviceCapabilities = InputDeviceCapabilities { unInputDeviceCapabilities :: JSVal }

instance Eq InputDeviceCapabilities where
  (InputDeviceCapabilities a) == (InputDeviceCapabilities b) = js_eq a b

instance PToJSVal InputDeviceCapabilities where
  pToJSVal = unInputDeviceCapabilities
  {-# INLINE pToJSVal #-}

instance PFromJSVal InputDeviceCapabilities where
  pFromJSVal = InputDeviceCapabilities
  {-# INLINE pFromJSVal #-}

instance ToJSVal InputDeviceCapabilities where
  toJSVal = return . unInputDeviceCapabilities
  {-# INLINE toJSVal #-}

instance FromJSVal InputDeviceCapabilities where
  fromJSVal = return . fmap InputDeviceCapabilities . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . InputDeviceCapabilities
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject InputDeviceCapabilities where
  typeGType _ = gTypeInputDeviceCapabilities
  {-# INLINE typeGType #-}

noInputDeviceCapabilities :: Maybe InputDeviceCapabilities
noInputDeviceCapabilities = Nothing
{-# INLINE noInputDeviceCapabilities #-}

foreign import javascript unsafe "(() => globalThis[\"InputDeviceCapabilities\"])" gTypeInputDeviceCapabilities :: GType

-- | Functions for this interface are in "GHCJS.DOM.InputDeviceInfo" (mediacapture-streams).
newtype InputDeviceInfo = InputDeviceInfo { unInputDeviceInfo :: JSVal }

instance Eq InputDeviceInfo where
  (InputDeviceInfo a) == (InputDeviceInfo b) = js_eq a b

instance PToJSVal InputDeviceInfo where
  pToJSVal = unInputDeviceInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal InputDeviceInfo where
  pFromJSVal = InputDeviceInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal InputDeviceInfo where
  toJSVal = return . unInputDeviceInfo
  {-# INLINE toJSVal #-}

instance FromJSVal InputDeviceInfo where
  fromJSVal = return . fmap InputDeviceInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . InputDeviceInfo
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaDeviceInfo InputDeviceInfo

instance IsGObject InputDeviceInfo where
  typeGType _ = gTypeInputDeviceInfo
  {-# INLINE typeGType #-}

noInputDeviceInfo :: Maybe InputDeviceInfo
noInputDeviceInfo = Nothing
{-# INLINE noInputDeviceInfo #-}

foreign import javascript unsafe "(() => globalThis[\"InputDeviceInfo\"])" gTypeInputDeviceInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.InputEvent" (uievents).
newtype InputEvent = InputEvent { unInputEvent :: JSVal }

instance Eq InputEvent where
  (InputEvent a) == (InputEvent b) = js_eq a b

instance PToJSVal InputEvent where
  pToJSVal = unInputEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal InputEvent where
  pFromJSVal = InputEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal InputEvent where
  toJSVal = return . unInputEvent
  {-# INLINE toJSVal #-}

instance FromJSVal InputEvent where
  fromJSVal = return . fmap InputEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . InputEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent InputEvent
instance IsEvent InputEvent

instance IsGObject InputEvent where
  typeGType _ = gTypeInputEvent
  {-# INLINE typeGType #-}

noInputEvent :: Maybe InputEvent
noInputEvent = Nothing
{-# INLINE noInputEvent #-}

foreign import javascript unsafe "(() => globalThis[\"InputEvent\"])" gTypeInputEvent :: GType

-- | Dictionary InputEventInit (uievents)
newtype InputEventInit = InputEventInit { unInputEventInit :: JSVal }

instance Eq InputEventInit where
  (InputEventInit a) == (InputEventInit b) = js_eq a b

instance PToJSVal InputEventInit where
  pToJSVal = unInputEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal InputEventInit where
  pFromJSVal = InputEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal InputEventInit where
  toJSVal = return . unInputEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal InputEventInit where
  fromJSVal = return . fmap InputEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . InputEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEventInit InputEventInit
instance IsEventInit InputEventInit

instance IsGObject InputEventInit where
  typeGType _ = gTypeInputEventInit
  {-# INLINE typeGType #-}

noInputEventInit :: Maybe InputEventInit
noInputEventInit = Nothing
{-# INLINE noInputEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeInputEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.InstallEvent" (service-workers).
newtype InstallEvent = InstallEvent { unInstallEvent :: JSVal }

instance Eq InstallEvent where
  (InstallEvent a) == (InstallEvent b) = js_eq a b

instance PToJSVal InstallEvent where
  pToJSVal = unInstallEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal InstallEvent where
  pFromJSVal = InstallEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal InstallEvent where
  toJSVal = return . unInstallEvent
  {-# INLINE toJSVal #-}

instance FromJSVal InstallEvent where
  fromJSVal = return . fmap InstallEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . InstallEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent InstallEvent
instance IsEvent InstallEvent

instance IsGObject InstallEvent where
  typeGType _ = gTypeInstallEvent
  {-# INLINE typeGType #-}

noInstallEvent :: Maybe InstallEvent
noInstallEvent = Nothing
{-# INLINE noInstallEvent #-}

foreign import javascript unsafe "(() => globalThis[\"InstallEvent\"])" gTypeInstallEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.IntersectionObserver" (intersection-observer).
newtype IntersectionObserver = IntersectionObserver { unIntersectionObserver :: JSVal }

instance Eq IntersectionObserver where
  (IntersectionObserver a) == (IntersectionObserver b) = js_eq a b

instance PToJSVal IntersectionObserver where
  pToJSVal = unIntersectionObserver
  {-# INLINE pToJSVal #-}

instance PFromJSVal IntersectionObserver where
  pFromJSVal = IntersectionObserver
  {-# INLINE pFromJSVal #-}

instance ToJSVal IntersectionObserver where
  toJSVal = return . unIntersectionObserver
  {-# INLINE toJSVal #-}

instance FromJSVal IntersectionObserver where
  fromJSVal = return . fmap IntersectionObserver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IntersectionObserver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IntersectionObserver where
  typeGType _ = gTypeIntersectionObserver
  {-# INLINE typeGType #-}

noIntersectionObserver :: Maybe IntersectionObserver
noIntersectionObserver = Nothing
{-# INLINE noIntersectionObserver #-}

foreign import javascript unsafe "(() => globalThis[\"IntersectionObserver\"])" gTypeIntersectionObserver :: GType

-- | Functions for this interface are in "GHCJS.DOM.IntersectionObserverEntry" (intersection-observer).
newtype IntersectionObserverEntry = IntersectionObserverEntry { unIntersectionObserverEntry :: JSVal }

instance Eq IntersectionObserverEntry where
  (IntersectionObserverEntry a) == (IntersectionObserverEntry b) = js_eq a b

instance PToJSVal IntersectionObserverEntry where
  pToJSVal = unIntersectionObserverEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal IntersectionObserverEntry where
  pFromJSVal = IntersectionObserverEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal IntersectionObserverEntry where
  toJSVal = return . unIntersectionObserverEntry
  {-# INLINE toJSVal #-}

instance FromJSVal IntersectionObserverEntry where
  fromJSVal = return . fmap IntersectionObserverEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IntersectionObserverEntry
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IntersectionObserverEntry where
  typeGType _ = gTypeIntersectionObserverEntry
  {-# INLINE typeGType #-}

noIntersectionObserverEntry :: Maybe IntersectionObserverEntry
noIntersectionObserverEntry = Nothing
{-# INLINE noIntersectionObserverEntry #-}

foreign import javascript unsafe "(() => globalThis[\"IntersectionObserverEntry\"])" gTypeIntersectionObserverEntry :: GType

-- | Dictionary IntersectionObserverEntryInit (intersection-observer)
newtype IntersectionObserverEntryInit = IntersectionObserverEntryInit { unIntersectionObserverEntryInit :: JSVal }

instance Eq IntersectionObserverEntryInit where
  (IntersectionObserverEntryInit a) == (IntersectionObserverEntryInit b) = js_eq a b

instance PToJSVal IntersectionObserverEntryInit where
  pToJSVal = unIntersectionObserverEntryInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal IntersectionObserverEntryInit where
  pFromJSVal = IntersectionObserverEntryInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal IntersectionObserverEntryInit where
  toJSVal = return . unIntersectionObserverEntryInit
  {-# INLINE toJSVal #-}

instance FromJSVal IntersectionObserverEntryInit where
  fromJSVal = return . fmap IntersectionObserverEntryInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IntersectionObserverEntryInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IntersectionObserverEntryInit where
  typeGType _ = gTypeIntersectionObserverEntryInit
  {-# INLINE typeGType #-}

noIntersectionObserverEntryInit :: Maybe IntersectionObserverEntryInit
noIntersectionObserverEntryInit = Nothing
{-# INLINE noIntersectionObserverEntryInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIntersectionObserverEntryInit :: GType

-- | Dictionary IntersectionObserverInit (intersection-observer)
newtype IntersectionObserverInit = IntersectionObserverInit { unIntersectionObserverInit :: JSVal }

instance Eq IntersectionObserverInit where
  (IntersectionObserverInit a) == (IntersectionObserverInit b) = js_eq a b

instance PToJSVal IntersectionObserverInit where
  pToJSVal = unIntersectionObserverInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal IntersectionObserverInit where
  pFromJSVal = IntersectionObserverInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal IntersectionObserverInit where
  toJSVal = return . unIntersectionObserverInit
  {-# INLINE toJSVal #-}

instance FromJSVal IntersectionObserverInit where
  fromJSVal = return . fmap IntersectionObserverInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . IntersectionObserverInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject IntersectionObserverInit where
  typeGType _ = gTypeIntersectionObserverInit
  {-# INLINE typeGType #-}

noIntersectionObserverInit :: Maybe IntersectionObserverInit
noIntersectionObserverInit = Nothing
{-# INLINE noIntersectionObserverInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeIntersectionObserverInit :: GType

-- | Dictionary JsonWebKey (webcrypto-2)
newtype JsonWebKey = JsonWebKey { unJsonWebKey :: JSVal }

instance Eq JsonWebKey where
  (JsonWebKey a) == (JsonWebKey b) = js_eq a b

instance PToJSVal JsonWebKey where
  pToJSVal = unJsonWebKey
  {-# INLINE pToJSVal #-}

instance PFromJSVal JsonWebKey where
  pFromJSVal = JsonWebKey
  {-# INLINE pFromJSVal #-}

instance ToJSVal JsonWebKey where
  toJSVal = return . unJsonWebKey
  {-# INLINE toJSVal #-}

instance FromJSVal JsonWebKey where
  fromJSVal = return . fmap JsonWebKey . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . JsonWebKey
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject JsonWebKey where
  typeGType _ = gTypeJsonWebKey
  {-# INLINE typeGType #-}

noJsonWebKey :: Maybe JsonWebKey
noJsonWebKey = Nothing
{-# INLINE noJsonWebKey #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeJsonWebKey :: GType

-- | Functions for this interface are in "GHCJS.DOM.KHR_parallel_shader_compile" (KHR_parallel_shader_compile).
newtype KHR_parallel_shader_compile = KHR_parallel_shader_compile { unKHR_parallel_shader_compile :: JSVal }

instance Eq KHR_parallel_shader_compile where
  (KHR_parallel_shader_compile a) == (KHR_parallel_shader_compile b) = js_eq a b

instance PToJSVal KHR_parallel_shader_compile where
  pToJSVal = unKHR_parallel_shader_compile
  {-# INLINE pToJSVal #-}

instance PFromJSVal KHR_parallel_shader_compile where
  pFromJSVal = KHR_parallel_shader_compile
  {-# INLINE pFromJSVal #-}

instance ToJSVal KHR_parallel_shader_compile where
  toJSVal = return . unKHR_parallel_shader_compile
  {-# INLINE toJSVal #-}

instance FromJSVal KHR_parallel_shader_compile where
  fromJSVal = return . fmap KHR_parallel_shader_compile . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KHR_parallel_shader_compile
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject KHR_parallel_shader_compile where
  typeGType _ = gTypeKHR_parallel_shader_compile
  {-# INLINE typeGType #-}

noKHR_parallel_shader_compile :: Maybe KHR_parallel_shader_compile
noKHR_parallel_shader_compile = Nothing
{-# INLINE noKHR_parallel_shader_compile #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeKHR_parallel_shader_compile :: GType

-- | Dictionary KeySystemTrackConfiguration (media-capabilities)
newtype KeySystemTrackConfiguration = KeySystemTrackConfiguration { unKeySystemTrackConfiguration :: JSVal }

instance Eq KeySystemTrackConfiguration where
  (KeySystemTrackConfiguration a) == (KeySystemTrackConfiguration b) = js_eq a b

instance PToJSVal KeySystemTrackConfiguration where
  pToJSVal = unKeySystemTrackConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal KeySystemTrackConfiguration where
  pFromJSVal = KeySystemTrackConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal KeySystemTrackConfiguration where
  toJSVal = return . unKeySystemTrackConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal KeySystemTrackConfiguration where
  fromJSVal = return . fmap KeySystemTrackConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KeySystemTrackConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject KeySystemTrackConfiguration where
  typeGType _ = gTypeKeySystemTrackConfiguration
  {-# INLINE typeGType #-}

noKeySystemTrackConfiguration :: Maybe KeySystemTrackConfiguration
noKeySystemTrackConfiguration = Nothing
{-# INLINE noKeySystemTrackConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeKeySystemTrackConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.KeyboardEvent" (uievents).
newtype KeyboardEvent = KeyboardEvent { unKeyboardEvent :: JSVal }

instance Eq KeyboardEvent where
  (KeyboardEvent a) == (KeyboardEvent b) = js_eq a b

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 = return . fmap KeyboardEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KeyboardEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent KeyboardEvent
instance IsEvent KeyboardEvent

instance IsGObject KeyboardEvent where
  typeGType _ = gTypeKeyboardEvent
  {-# INLINE typeGType #-}

noKeyboardEvent :: Maybe KeyboardEvent
noKeyboardEvent = Nothing
{-# INLINE noKeyboardEvent #-}

foreign import javascript unsafe "(() => globalThis[\"KeyboardEvent\"])" gTypeKeyboardEvent :: GType

-- | Dictionary KeyboardEventInit (uievents)
newtype KeyboardEventInit = KeyboardEventInit { unKeyboardEventInit :: JSVal }

instance Eq KeyboardEventInit where
  (KeyboardEventInit a) == (KeyboardEventInit b) = js_eq a b

instance PToJSVal KeyboardEventInit where
  pToJSVal = unKeyboardEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal KeyboardEventInit where
  pFromJSVal = KeyboardEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal KeyboardEventInit where
  toJSVal = return . unKeyboardEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal KeyboardEventInit where
  fromJSVal = return . fmap KeyboardEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KeyboardEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventModifierInit KeyboardEventInit
instance IsUIEventInit KeyboardEventInit
instance IsEventInit KeyboardEventInit

instance IsGObject KeyboardEventInit where
  typeGType _ = gTypeKeyboardEventInit
  {-# INLINE typeGType #-}

noKeyboardEventInit :: Maybe KeyboardEventInit
noKeyboardEventInit = Nothing
{-# INLINE noKeyboardEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeKeyboardEventInit :: GType

-- | Dictionary KeyframeAnimationOptions (web-animations-1)
newtype KeyframeAnimationOptions = KeyframeAnimationOptions { unKeyframeAnimationOptions :: JSVal }

instance Eq KeyframeAnimationOptions where
  (KeyframeAnimationOptions a) == (KeyframeAnimationOptions b) = js_eq a b

instance PToJSVal KeyframeAnimationOptions where
  pToJSVal = unKeyframeAnimationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal KeyframeAnimationOptions where
  pFromJSVal = KeyframeAnimationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal KeyframeAnimationOptions where
  toJSVal = return . unKeyframeAnimationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal KeyframeAnimationOptions where
  fromJSVal = return . fmap KeyframeAnimationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KeyframeAnimationOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsKeyframeEffectOptions KeyframeAnimationOptions
instance IsEffectTiming KeyframeAnimationOptions

instance IsGObject KeyframeAnimationOptions where
  typeGType _ = gTypeKeyframeAnimationOptions
  {-# INLINE typeGType #-}

noKeyframeAnimationOptions :: Maybe KeyframeAnimationOptions
noKeyframeAnimationOptions = Nothing
{-# INLINE noKeyframeAnimationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeKeyframeAnimationOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.KeyframeEffect" (web-animations-1).
newtype KeyframeEffect = KeyframeEffect { unKeyframeEffect :: JSVal }

instance Eq KeyframeEffect where
  (KeyframeEffect a) == (KeyframeEffect b) = js_eq a b

instance PToJSVal KeyframeEffect where
  pToJSVal = unKeyframeEffect
  {-# INLINE pToJSVal #-}

instance PFromJSVal KeyframeEffect where
  pFromJSVal = KeyframeEffect
  {-# INLINE pFromJSVal #-}

instance ToJSVal KeyframeEffect where
  toJSVal = return . unKeyframeEffect
  {-# INLINE toJSVal #-}

instance FromJSVal KeyframeEffect where
  fromJSVal = return . fmap KeyframeEffect . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KeyframeEffect
  {-# INLINE fromJSValUnchecked #-}

instance IsAnimationEffect KeyframeEffect

instance IsGObject KeyframeEffect where
  typeGType _ = gTypeKeyframeEffect
  {-# INLINE typeGType #-}

noKeyframeEffect :: Maybe KeyframeEffect
noKeyframeEffect = Nothing
{-# INLINE noKeyframeEffect #-}

foreign import javascript unsafe "(() => globalThis[\"KeyframeEffect\"])" gTypeKeyframeEffect :: GType

-- | Dictionary KeyframeEffectOptions (web-animations-1)
newtype KeyframeEffectOptions = KeyframeEffectOptions { unKeyframeEffectOptions :: JSVal }

instance Eq KeyframeEffectOptions where
  (KeyframeEffectOptions a) == (KeyframeEffectOptions b) = js_eq a b

instance PToJSVal KeyframeEffectOptions where
  pToJSVal = unKeyframeEffectOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal KeyframeEffectOptions where
  pFromJSVal = KeyframeEffectOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal KeyframeEffectOptions where
  toJSVal = return . unKeyframeEffectOptions
  {-# INLINE toJSVal #-}

instance FromJSVal KeyframeEffectOptions where
  fromJSVal = return . fmap KeyframeEffectOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . KeyframeEffectOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsEffectTiming o, IsGObject o) => IsKeyframeEffectOptions o
toKeyframeEffectOptions :: IsKeyframeEffectOptions o => o -> KeyframeEffectOptions
toKeyframeEffectOptions = KeyframeEffectOptions . coerce

instance IsKeyframeEffectOptions KeyframeEffectOptions
instance IsEffectTiming KeyframeEffectOptions

instance IsGObject KeyframeEffectOptions where
  typeGType _ = gTypeKeyframeEffectOptions
  {-# INLINE typeGType #-}

noKeyframeEffectOptions :: Maybe KeyframeEffectOptions
noKeyframeEffectOptions = Nothing
{-# INLINE noKeyframeEffectOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeKeyframeEffectOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.LargestContentfulPaint" (largest-contentful-paint).
newtype LargestContentfulPaint = LargestContentfulPaint { unLargestContentfulPaint :: JSVal }

instance Eq LargestContentfulPaint where
  (LargestContentfulPaint a) == (LargestContentfulPaint b) = js_eq a b

instance PToJSVal LargestContentfulPaint where
  pToJSVal = unLargestContentfulPaint
  {-# INLINE pToJSVal #-}

instance PFromJSVal LargestContentfulPaint where
  pFromJSVal = LargestContentfulPaint
  {-# INLINE pFromJSVal #-}

instance ToJSVal LargestContentfulPaint where
  toJSVal = return . unLargestContentfulPaint
  {-# INLINE toJSVal #-}

instance FromJSVal LargestContentfulPaint where
  fromJSVal = return . fmap LargestContentfulPaint . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LargestContentfulPaint
  {-# INLINE fromJSValUnchecked #-}

instance IsPaintTimingMixin LargestContentfulPaint
instance IsPerformanceEntry LargestContentfulPaint

instance IsGObject LargestContentfulPaint where
  typeGType _ = gTypeLargestContentfulPaint
  {-# INLINE typeGType #-}

noLargestContentfulPaint :: Maybe LargestContentfulPaint
noLargestContentfulPaint = Nothing
{-# INLINE noLargestContentfulPaint #-}

foreign import javascript unsafe "(() => globalThis[\"LargestContentfulPaint\"])" gTypeLargestContentfulPaint :: GType

-- | Functions for this interface are in "GHCJS.DOM.LinkStyle" (cssom-1).
newtype LinkStyle = LinkStyle { unLinkStyle :: JSVal }

instance Eq LinkStyle where
  (LinkStyle a) == (LinkStyle b) = js_eq a b

instance PToJSVal LinkStyle where
  pToJSVal = unLinkStyle
  {-# INLINE pToJSVal #-}

instance PFromJSVal LinkStyle where
  pFromJSVal = LinkStyle
  {-# INLINE pFromJSVal #-}

instance ToJSVal LinkStyle where
  toJSVal = return . unLinkStyle
  {-# INLINE toJSVal #-}

instance FromJSVal LinkStyle where
  fromJSVal = return . fmap LinkStyle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LinkStyle
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsLinkStyle o
toLinkStyle :: IsLinkStyle o => o -> LinkStyle
toLinkStyle = LinkStyle . coerce

instance IsLinkStyle LinkStyle

instance IsGObject LinkStyle where
  typeGType _ = gTypeLinkStyle
  {-# INLINE typeGType #-}

noLinkStyle :: Maybe LinkStyle
noLinkStyle = Nothing
{-# INLINE noLinkStyle #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeLinkStyle :: GType

-- | Functions for this interface are in "GHCJS.DOM.Location" (html).
newtype Location = Location { unLocation :: JSVal }

instance Eq Location where
  (Location a) == (Location b) = js_eq a b

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 = return . fmap Location . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Location
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Location where
  typeGType _ = gTypeLocation
  {-# INLINE typeGType #-}

noLocation :: Maybe Location
noLocation = Nothing
{-# INLINE noLocation #-}

foreign import javascript unsafe "(() => globalThis[\"Location\"])" gTypeLocation :: GType

-- | Functions for this interface are in "GHCJS.DOM.Lock" (web-locks).
newtype Lock = Lock { unLock :: JSVal }

instance Eq Lock where
  (Lock a) == (Lock b) = js_eq a b

instance PToJSVal Lock where
  pToJSVal = unLock
  {-# INLINE pToJSVal #-}

instance PFromJSVal Lock where
  pFromJSVal = Lock
  {-# INLINE pFromJSVal #-}

instance ToJSVal Lock where
  toJSVal = return . unLock
  {-# INLINE toJSVal #-}

instance FromJSVal Lock where
  fromJSVal = return . fmap Lock . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Lock
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Lock where
  typeGType _ = gTypeLock
  {-# INLINE typeGType #-}

noLock :: Maybe Lock
noLock = Nothing
{-# INLINE noLock #-}

foreign import javascript unsafe "(() => globalThis[\"Lock\"])" gTypeLock :: GType

-- | Dictionary LockInfo (web-locks)
newtype LockInfo = LockInfo { unLockInfo :: JSVal }

instance Eq LockInfo where
  (LockInfo a) == (LockInfo b) = js_eq a b

instance PToJSVal LockInfo where
  pToJSVal = unLockInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal LockInfo where
  pFromJSVal = LockInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal LockInfo where
  toJSVal = return . unLockInfo
  {-# INLINE toJSVal #-}

instance FromJSVal LockInfo where
  fromJSVal = return . fmap LockInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LockInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject LockInfo where
  typeGType _ = gTypeLockInfo
  {-# INLINE typeGType #-}

noLockInfo :: Maybe LockInfo
noLockInfo = Nothing
{-# INLINE noLockInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeLockInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.LockManager" (web-locks).
newtype LockManager = LockManager { unLockManager :: JSVal }

instance Eq LockManager where
  (LockManager a) == (LockManager b) = js_eq a b

instance PToJSVal LockManager where
  pToJSVal = unLockManager
  {-# INLINE pToJSVal #-}

instance PFromJSVal LockManager where
  pFromJSVal = LockManager
  {-# INLINE pFromJSVal #-}

instance ToJSVal LockManager where
  toJSVal = return . unLockManager
  {-# INLINE toJSVal #-}

instance FromJSVal LockManager where
  fromJSVal = return . fmap LockManager . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LockManager
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject LockManager where
  typeGType _ = gTypeLockManager
  {-# INLINE typeGType #-}

noLockManager :: Maybe LockManager
noLockManager = Nothing
{-# INLINE noLockManager #-}

foreign import javascript unsafe "(() => globalThis[\"LockManager\"])" gTypeLockManager :: GType

-- | Dictionary LockManagerSnapshot (web-locks)
newtype LockManagerSnapshot = LockManagerSnapshot { unLockManagerSnapshot :: JSVal }

instance Eq LockManagerSnapshot where
  (LockManagerSnapshot a) == (LockManagerSnapshot b) = js_eq a b

instance PToJSVal LockManagerSnapshot where
  pToJSVal = unLockManagerSnapshot
  {-# INLINE pToJSVal #-}

instance PFromJSVal LockManagerSnapshot where
  pFromJSVal = LockManagerSnapshot
  {-# INLINE pFromJSVal #-}

instance ToJSVal LockManagerSnapshot where
  toJSVal = return . unLockManagerSnapshot
  {-# INLINE toJSVal #-}

instance FromJSVal LockManagerSnapshot where
  fromJSVal = return . fmap LockManagerSnapshot . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LockManagerSnapshot
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject LockManagerSnapshot where
  typeGType _ = gTypeLockManagerSnapshot
  {-# INLINE typeGType #-}

noLockManagerSnapshot :: Maybe LockManagerSnapshot
noLockManagerSnapshot = Nothing
{-# INLINE noLockManagerSnapshot #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeLockManagerSnapshot :: GType

-- | Dictionary LockOptions (web-locks)
newtype LockOptions = LockOptions { unLockOptions :: JSVal }

instance Eq LockOptions where
  (LockOptions a) == (LockOptions b) = js_eq a b

instance PToJSVal LockOptions where
  pToJSVal = unLockOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal LockOptions where
  pFromJSVal = LockOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal LockOptions where
  toJSVal = return . unLockOptions
  {-# INLINE toJSVal #-}

instance FromJSVal LockOptions where
  fromJSVal = return . fmap LockOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . LockOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject LockOptions where
  typeGType _ = gTypeLockOptions
  {-# INLINE typeGType #-}

noLockOptions :: Maybe LockOptions
noLockOptions = Nothing
{-# INLINE noLockOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeLockOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIAccess" (webmidi).
newtype MIDIAccess = MIDIAccess { unMIDIAccess :: JSVal }

instance Eq MIDIAccess where
  (MIDIAccess a) == (MIDIAccess b) = js_eq a b

instance PToJSVal MIDIAccess where
  pToJSVal = unMIDIAccess
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIAccess where
  pFromJSVal = MIDIAccess
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIAccess where
  toJSVal = return . unMIDIAccess
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIAccess where
  fromJSVal = return . fmap MIDIAccess . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIAccess
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MIDIAccess

instance IsGObject MIDIAccess where
  typeGType _ = gTypeMIDIAccess
  {-# INLINE typeGType #-}

noMIDIAccess :: Maybe MIDIAccess
noMIDIAccess = Nothing
{-# INLINE noMIDIAccess #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIAccess\"])" gTypeMIDIAccess :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIConnectionEvent" (webmidi).
newtype MIDIConnectionEvent = MIDIConnectionEvent { unMIDIConnectionEvent :: JSVal }

instance Eq MIDIConnectionEvent where
  (MIDIConnectionEvent a) == (MIDIConnectionEvent b) = js_eq a b

instance PToJSVal MIDIConnectionEvent where
  pToJSVal = unMIDIConnectionEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIConnectionEvent where
  pFromJSVal = MIDIConnectionEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIConnectionEvent where
  toJSVal = return . unMIDIConnectionEvent
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIConnectionEvent where
  fromJSVal = return . fmap MIDIConnectionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIConnectionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MIDIConnectionEvent

instance IsGObject MIDIConnectionEvent where
  typeGType _ = gTypeMIDIConnectionEvent
  {-# INLINE typeGType #-}

noMIDIConnectionEvent :: Maybe MIDIConnectionEvent
noMIDIConnectionEvent = Nothing
{-# INLINE noMIDIConnectionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIConnectionEvent\"])" gTypeMIDIConnectionEvent :: GType

-- | Dictionary MIDIConnectionEventInit (webmidi)
newtype MIDIConnectionEventInit = MIDIConnectionEventInit { unMIDIConnectionEventInit :: JSVal }

instance Eq MIDIConnectionEventInit where
  (MIDIConnectionEventInit a) == (MIDIConnectionEventInit b) = js_eq a b

instance PToJSVal MIDIConnectionEventInit where
  pToJSVal = unMIDIConnectionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIConnectionEventInit where
  pFromJSVal = MIDIConnectionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIConnectionEventInit where
  toJSVal = return . unMIDIConnectionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIConnectionEventInit where
  fromJSVal = return . fmap MIDIConnectionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIConnectionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MIDIConnectionEventInit

instance IsGObject MIDIConnectionEventInit where
  typeGType _ = gTypeMIDIConnectionEventInit
  {-# INLINE typeGType #-}

noMIDIConnectionEventInit :: Maybe MIDIConnectionEventInit
noMIDIConnectionEventInit = Nothing
{-# INLINE noMIDIConnectionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMIDIConnectionEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIInput" (webmidi).
newtype MIDIInput = MIDIInput { unMIDIInput :: JSVal }

instance Eq MIDIInput where
  (MIDIInput a) == (MIDIInput b) = js_eq a b

instance PToJSVal MIDIInput where
  pToJSVal = unMIDIInput
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIInput where
  pFromJSVal = MIDIInput
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIInput where
  toJSVal = return . unMIDIInput
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIInput where
  fromJSVal = return . fmap MIDIInput . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIInput
  {-# INLINE fromJSValUnchecked #-}

instance IsMIDIPort MIDIInput
instance IsEventTarget MIDIInput

instance IsGObject MIDIInput where
  typeGType _ = gTypeMIDIInput
  {-# INLINE typeGType #-}

noMIDIInput :: Maybe MIDIInput
noMIDIInput = Nothing
{-# INLINE noMIDIInput #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIInput\"])" gTypeMIDIInput :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIInputMap" (webmidi).
newtype MIDIInputMap = MIDIInputMap { unMIDIInputMap :: JSVal }

instance Eq MIDIInputMap where
  (MIDIInputMap a) == (MIDIInputMap b) = js_eq a b

instance PToJSVal MIDIInputMap where
  pToJSVal = unMIDIInputMap
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIInputMap where
  pFromJSVal = MIDIInputMap
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIInputMap where
  toJSVal = return . unMIDIInputMap
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIInputMap where
  fromJSVal = return . fmap MIDIInputMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIInputMap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MIDIInputMap where
  typeGType _ = gTypeMIDIInputMap
  {-# INLINE typeGType #-}

noMIDIInputMap :: Maybe MIDIInputMap
noMIDIInputMap = Nothing
{-# INLINE noMIDIInputMap #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIInputMap\"])" gTypeMIDIInputMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIMessageEvent" (webmidi).
newtype MIDIMessageEvent = MIDIMessageEvent { unMIDIMessageEvent :: JSVal }

instance Eq MIDIMessageEvent where
  (MIDIMessageEvent a) == (MIDIMessageEvent b) = js_eq a b

instance PToJSVal MIDIMessageEvent where
  pToJSVal = unMIDIMessageEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIMessageEvent where
  pFromJSVal = MIDIMessageEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIMessageEvent where
  toJSVal = return . unMIDIMessageEvent
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIMessageEvent where
  fromJSVal = return . fmap MIDIMessageEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIMessageEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MIDIMessageEvent

instance IsGObject MIDIMessageEvent where
  typeGType _ = gTypeMIDIMessageEvent
  {-# INLINE typeGType #-}

noMIDIMessageEvent :: Maybe MIDIMessageEvent
noMIDIMessageEvent = Nothing
{-# INLINE noMIDIMessageEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIMessageEvent\"])" gTypeMIDIMessageEvent :: GType

-- | Dictionary MIDIMessageEventInit (webmidi)
newtype MIDIMessageEventInit = MIDIMessageEventInit { unMIDIMessageEventInit :: JSVal }

instance Eq MIDIMessageEventInit where
  (MIDIMessageEventInit a) == (MIDIMessageEventInit b) = js_eq a b

instance PToJSVal MIDIMessageEventInit where
  pToJSVal = unMIDIMessageEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIMessageEventInit where
  pFromJSVal = MIDIMessageEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIMessageEventInit where
  toJSVal = return . unMIDIMessageEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIMessageEventInit where
  fromJSVal = return . fmap MIDIMessageEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIMessageEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MIDIMessageEventInit

instance IsGObject MIDIMessageEventInit where
  typeGType _ = gTypeMIDIMessageEventInit
  {-# INLINE typeGType #-}

noMIDIMessageEventInit :: Maybe MIDIMessageEventInit
noMIDIMessageEventInit = Nothing
{-# INLINE noMIDIMessageEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMIDIMessageEventInit :: GType

-- | Dictionary MIDIOptions (webmidi)
newtype MIDIOptions = MIDIOptions { unMIDIOptions :: JSVal }

instance Eq MIDIOptions where
  (MIDIOptions a) == (MIDIOptions b) = js_eq a b

instance PToJSVal MIDIOptions where
  pToJSVal = unMIDIOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIOptions where
  pFromJSVal = MIDIOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIOptions where
  toJSVal = return . unMIDIOptions
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIOptions where
  fromJSVal = return . fmap MIDIOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MIDIOptions where
  typeGType _ = gTypeMIDIOptions
  {-# INLINE typeGType #-}

noMIDIOptions :: Maybe MIDIOptions
noMIDIOptions = Nothing
{-# INLINE noMIDIOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMIDIOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIOutput" (webmidi).
newtype MIDIOutput = MIDIOutput { unMIDIOutput :: JSVal }

instance Eq MIDIOutput where
  (MIDIOutput a) == (MIDIOutput b) = js_eq a b

instance PToJSVal MIDIOutput where
  pToJSVal = unMIDIOutput
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIOutput where
  pFromJSVal = MIDIOutput
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIOutput where
  toJSVal = return . unMIDIOutput
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIOutput where
  fromJSVal = return . fmap MIDIOutput . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIOutput
  {-# INLINE fromJSValUnchecked #-}

instance IsMIDIPort MIDIOutput
instance IsEventTarget MIDIOutput

instance IsGObject MIDIOutput where
  typeGType _ = gTypeMIDIOutput
  {-# INLINE typeGType #-}

noMIDIOutput :: Maybe MIDIOutput
noMIDIOutput = Nothing
{-# INLINE noMIDIOutput #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIOutput\"])" gTypeMIDIOutput :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIOutputMap" (webmidi).
newtype MIDIOutputMap = MIDIOutputMap { unMIDIOutputMap :: JSVal }

instance Eq MIDIOutputMap where
  (MIDIOutputMap a) == (MIDIOutputMap b) = js_eq a b

instance PToJSVal MIDIOutputMap where
  pToJSVal = unMIDIOutputMap
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIOutputMap where
  pFromJSVal = MIDIOutputMap
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIOutputMap where
  toJSVal = return . unMIDIOutputMap
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIOutputMap where
  fromJSVal = return . fmap MIDIOutputMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIOutputMap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MIDIOutputMap where
  typeGType _ = gTypeMIDIOutputMap
  {-# INLINE typeGType #-}

noMIDIOutputMap :: Maybe MIDIOutputMap
noMIDIOutputMap = Nothing
{-# INLINE noMIDIOutputMap #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIOutputMap\"])" gTypeMIDIOutputMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.MIDIPort" (webmidi).
newtype MIDIPort = MIDIPort { unMIDIPort :: JSVal }

instance Eq MIDIPort where
  (MIDIPort a) == (MIDIPort b) = js_eq a b

instance PToJSVal MIDIPort where
  pToJSVal = unMIDIPort
  {-# INLINE pToJSVal #-}

instance PFromJSVal MIDIPort where
  pFromJSVal = MIDIPort
  {-# INLINE pFromJSVal #-}

instance ToJSVal MIDIPort where
  toJSVal = return . unMIDIPort
  {-# INLINE toJSVal #-}

instance FromJSVal MIDIPort where
  fromJSVal = return . fmap MIDIPort . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MIDIPort
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject o) => IsMIDIPort o
toMIDIPort :: IsMIDIPort o => o -> MIDIPort
toMIDIPort = MIDIPort . coerce

instance IsMIDIPort MIDIPort
instance IsEventTarget MIDIPort

instance IsGObject MIDIPort where
  typeGType _ = gTypeMIDIPort
  {-# INLINE typeGType #-}

noMIDIPort :: Maybe MIDIPort
noMIDIPort = Nothing
{-# INLINE noMIDIPort #-}

foreign import javascript unsafe "(() => globalThis[\"MIDIPort\"])" gTypeMIDIPort :: GType

-- | Functions for this interface are in "GHCJS.DOM.MathMLElement" (mathml-core).
newtype MathMLElement = MathMLElement { unMathMLElement :: JSVal }

instance Eq MathMLElement where
  (MathMLElement a) == (MathMLElement b) = js_eq a b

instance PToJSVal MathMLElement where
  pToJSVal = unMathMLElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal MathMLElement where
  pFromJSVal = MathMLElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal MathMLElement where
  toJSVal = return . unMathMLElement
  {-# INLINE toJSVal #-}

instance FromJSVal MathMLElement where
  fromJSVal = return . fmap MathMLElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MathMLElement
  {-# INLINE fromJSValUnchecked #-}

instance IsElementCSSInlineStyle MathMLElement
instance IsGlobalEventHandlers MathMLElement
instance IsHTMLOrSVGOrMathMLElement MathMLElement
instance IsElement MathMLElement
instance IsARIAMixin MathMLElement
instance IsARIANotifyMixin MathMLElement
instance IsAnimatable MathMLElement
instance IsChildNode MathMLElement
instance IsNonDocumentTypeChildNode MathMLElement
instance IsParentNode MathMLElement
instance IsSlottable MathMLElement
instance IsNode MathMLElement
instance IsEventTarget MathMLElement

instance IsGObject MathMLElement where
  typeGType _ = gTypeMathMLElement
  {-# INLINE typeGType #-}

noMathMLElement :: Maybe MathMLElement
noMathMLElement = Nothing
{-# INLINE noMathMLElement #-}

foreign import javascript unsafe "(() => globalThis[\"MathMLElement\"])" gTypeMathMLElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaCapabilities" (media-capabilities).
newtype MediaCapabilities = MediaCapabilities { unMediaCapabilities :: JSVal }

instance Eq MediaCapabilities where
  (MediaCapabilities a) == (MediaCapabilities b) = js_eq a b

instance PToJSVal MediaCapabilities where
  pToJSVal = unMediaCapabilities
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaCapabilities where
  pFromJSVal = MediaCapabilities
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaCapabilities where
  toJSVal = return . unMediaCapabilities
  {-# INLINE toJSVal #-}

instance FromJSVal MediaCapabilities where
  fromJSVal = return . fmap MediaCapabilities . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaCapabilities
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaCapabilities where
  typeGType _ = gTypeMediaCapabilities
  {-# INLINE typeGType #-}

noMediaCapabilities :: Maybe MediaCapabilities
noMediaCapabilities = Nothing
{-# INLINE noMediaCapabilities #-}

foreign import javascript unsafe "(() => globalThis[\"MediaCapabilities\"])" gTypeMediaCapabilities :: GType

-- | Dictionary MediaCapabilitiesDecodingInfo (media-capabilities)
newtype MediaCapabilitiesDecodingInfo = MediaCapabilitiesDecodingInfo { unMediaCapabilitiesDecodingInfo :: JSVal }

instance Eq MediaCapabilitiesDecodingInfo where
  (MediaCapabilitiesDecodingInfo a) == (MediaCapabilitiesDecodingInfo b) = js_eq a b

instance PToJSVal MediaCapabilitiesDecodingInfo where
  pToJSVal = unMediaCapabilitiesDecodingInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaCapabilitiesDecodingInfo where
  pFromJSVal = MediaCapabilitiesDecodingInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaCapabilitiesDecodingInfo where
  toJSVal = return . unMediaCapabilitiesDecodingInfo
  {-# INLINE toJSVal #-}

instance FromJSVal MediaCapabilitiesDecodingInfo where
  fromJSVal = return . fmap MediaCapabilitiesDecodingInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaCapabilitiesDecodingInfo
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaCapabilitiesInfo MediaCapabilitiesDecodingInfo

instance IsGObject MediaCapabilitiesDecodingInfo where
  typeGType _ = gTypeMediaCapabilitiesDecodingInfo
  {-# INLINE typeGType #-}

noMediaCapabilitiesDecodingInfo :: Maybe MediaCapabilitiesDecodingInfo
noMediaCapabilitiesDecodingInfo = Nothing
{-# INLINE noMediaCapabilitiesDecodingInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaCapabilitiesDecodingInfo :: GType

-- | Dictionary MediaCapabilitiesEncodingInfo (media-capabilities)
newtype MediaCapabilitiesEncodingInfo = MediaCapabilitiesEncodingInfo { unMediaCapabilitiesEncodingInfo :: JSVal }

instance Eq MediaCapabilitiesEncodingInfo where
  (MediaCapabilitiesEncodingInfo a) == (MediaCapabilitiesEncodingInfo b) = js_eq a b

instance PToJSVal MediaCapabilitiesEncodingInfo where
  pToJSVal = unMediaCapabilitiesEncodingInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaCapabilitiesEncodingInfo where
  pFromJSVal = MediaCapabilitiesEncodingInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaCapabilitiesEncodingInfo where
  toJSVal = return . unMediaCapabilitiesEncodingInfo
  {-# INLINE toJSVal #-}

instance FromJSVal MediaCapabilitiesEncodingInfo where
  fromJSVal = return . fmap MediaCapabilitiesEncodingInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaCapabilitiesEncodingInfo
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaCapabilitiesInfo MediaCapabilitiesEncodingInfo

instance IsGObject MediaCapabilitiesEncodingInfo where
  typeGType _ = gTypeMediaCapabilitiesEncodingInfo
  {-# INLINE typeGType #-}

noMediaCapabilitiesEncodingInfo :: Maybe MediaCapabilitiesEncodingInfo
noMediaCapabilitiesEncodingInfo = Nothing
{-# INLINE noMediaCapabilitiesEncodingInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaCapabilitiesEncodingInfo :: GType

-- | Dictionary MediaCapabilitiesInfo (media-capabilities)
newtype MediaCapabilitiesInfo = MediaCapabilitiesInfo { unMediaCapabilitiesInfo :: JSVal }

instance Eq MediaCapabilitiesInfo where
  (MediaCapabilitiesInfo a) == (MediaCapabilitiesInfo b) = js_eq a b

instance PToJSVal MediaCapabilitiesInfo where
  pToJSVal = unMediaCapabilitiesInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaCapabilitiesInfo where
  pFromJSVal = MediaCapabilitiesInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaCapabilitiesInfo where
  toJSVal = return . unMediaCapabilitiesInfo
  {-# INLINE toJSVal #-}

instance FromJSVal MediaCapabilitiesInfo where
  fromJSVal = return . fmap MediaCapabilitiesInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaCapabilitiesInfo
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsMediaCapabilitiesInfo o
toMediaCapabilitiesInfo :: IsMediaCapabilitiesInfo o => o -> MediaCapabilitiesInfo
toMediaCapabilitiesInfo = MediaCapabilitiesInfo . coerce

instance IsMediaCapabilitiesInfo MediaCapabilitiesInfo

instance IsGObject MediaCapabilitiesInfo where
  typeGType _ = gTypeMediaCapabilitiesInfo
  {-# INLINE typeGType #-}

noMediaCapabilitiesInfo :: Maybe MediaCapabilitiesInfo
noMediaCapabilitiesInfo = Nothing
{-# INLINE noMediaCapabilitiesInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaCapabilitiesInfo :: GType

-- | Dictionary MediaCapabilitiesKeySystemConfiguration (media-capabilities)
newtype MediaCapabilitiesKeySystemConfiguration = MediaCapabilitiesKeySystemConfiguration { unMediaCapabilitiesKeySystemConfiguration :: JSVal }

instance Eq MediaCapabilitiesKeySystemConfiguration where
  (MediaCapabilitiesKeySystemConfiguration a) == (MediaCapabilitiesKeySystemConfiguration b) = js_eq a b

instance PToJSVal MediaCapabilitiesKeySystemConfiguration where
  pToJSVal = unMediaCapabilitiesKeySystemConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaCapabilitiesKeySystemConfiguration where
  pFromJSVal = MediaCapabilitiesKeySystemConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaCapabilitiesKeySystemConfiguration where
  toJSVal = return . unMediaCapabilitiesKeySystemConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal MediaCapabilitiesKeySystemConfiguration where
  fromJSVal = return . fmap MediaCapabilitiesKeySystemConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaCapabilitiesKeySystemConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaCapabilitiesKeySystemConfiguration where
  typeGType _ = gTypeMediaCapabilitiesKeySystemConfiguration
  {-# INLINE typeGType #-}

noMediaCapabilitiesKeySystemConfiguration :: Maybe MediaCapabilitiesKeySystemConfiguration
noMediaCapabilitiesKeySystemConfiguration = Nothing
{-# INLINE noMediaCapabilitiesKeySystemConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaCapabilitiesKeySystemConfiguration :: GType

-- | Dictionary MediaConfiguration (media-capabilities)
newtype MediaConfiguration = MediaConfiguration { unMediaConfiguration :: JSVal }

instance Eq MediaConfiguration where
  (MediaConfiguration a) == (MediaConfiguration b) = js_eq a b

instance PToJSVal MediaConfiguration where
  pToJSVal = unMediaConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaConfiguration where
  pFromJSVal = MediaConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaConfiguration where
  toJSVal = return . unMediaConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal MediaConfiguration where
  fromJSVal = return . fmap MediaConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaConfiguration
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsMediaConfiguration o
toMediaConfiguration :: IsMediaConfiguration o => o -> MediaConfiguration
toMediaConfiguration = MediaConfiguration . coerce

instance IsMediaConfiguration MediaConfiguration

instance IsGObject MediaConfiguration where
  typeGType _ = gTypeMediaConfiguration
  {-# INLINE typeGType #-}

noMediaConfiguration :: Maybe MediaConfiguration
noMediaConfiguration = Nothing
{-# INLINE noMediaConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaConfiguration :: GType

-- | Dictionary MediaDecodingConfiguration (media-capabilities)
newtype MediaDecodingConfiguration = MediaDecodingConfiguration { unMediaDecodingConfiguration :: JSVal }

instance Eq MediaDecodingConfiguration where
  (MediaDecodingConfiguration a) == (MediaDecodingConfiguration b) = js_eq a b

instance PToJSVal MediaDecodingConfiguration where
  pToJSVal = unMediaDecodingConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaDecodingConfiguration where
  pFromJSVal = MediaDecodingConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaDecodingConfiguration where
  toJSVal = return . unMediaDecodingConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal MediaDecodingConfiguration where
  fromJSVal = return . fmap MediaDecodingConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaDecodingConfiguration
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaConfiguration MediaDecodingConfiguration

instance IsGObject MediaDecodingConfiguration where
  typeGType _ = gTypeMediaDecodingConfiguration
  {-# INLINE typeGType #-}

noMediaDecodingConfiguration :: Maybe MediaDecodingConfiguration
noMediaDecodingConfiguration = Nothing
{-# INLINE noMediaDecodingConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaDecodingConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaDeviceInfo" (mediacapture-streams).
newtype MediaDeviceInfo = MediaDeviceInfo { unMediaDeviceInfo :: JSVal }

instance Eq MediaDeviceInfo where
  (MediaDeviceInfo a) == (MediaDeviceInfo b) = js_eq a b

instance PToJSVal MediaDeviceInfo where
  pToJSVal = unMediaDeviceInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaDeviceInfo where
  pFromJSVal = MediaDeviceInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaDeviceInfo where
  toJSVal = return . unMediaDeviceInfo
  {-# INLINE toJSVal #-}

instance FromJSVal MediaDeviceInfo where
  fromJSVal = return . fmap MediaDeviceInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaDeviceInfo
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsMediaDeviceInfo o
toMediaDeviceInfo :: IsMediaDeviceInfo o => o -> MediaDeviceInfo
toMediaDeviceInfo = MediaDeviceInfo . coerce

instance IsMediaDeviceInfo MediaDeviceInfo

instance IsGObject MediaDeviceInfo where
  typeGType _ = gTypeMediaDeviceInfo
  {-# INLINE typeGType #-}

noMediaDeviceInfo :: Maybe MediaDeviceInfo
noMediaDeviceInfo = Nothing
{-# INLINE noMediaDeviceInfo #-}

foreign import javascript unsafe "(() => globalThis[\"MediaDeviceInfo\"])" gTypeMediaDeviceInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaDevices" (mediacapture-streams).
newtype MediaDevices = MediaDevices { unMediaDevices :: JSVal }

instance Eq MediaDevices where
  (MediaDevices a) == (MediaDevices b) = js_eq a b

instance PToJSVal MediaDevices where
  pToJSVal = unMediaDevices
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaDevices where
  pFromJSVal = MediaDevices
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaDevices where
  toJSVal = return . unMediaDevices
  {-# INLINE toJSVal #-}

instance FromJSVal MediaDevices where
  fromJSVal = return . fmap MediaDevices . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaDevices
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MediaDevices

instance IsGObject MediaDevices where
  typeGType _ = gTypeMediaDevices
  {-# INLINE typeGType #-}

noMediaDevices :: Maybe MediaDevices
noMediaDevices = Nothing
{-# INLINE noMediaDevices #-}

foreign import javascript unsafe "(() => globalThis[\"MediaDevices\"])" gTypeMediaDevices :: GType

-- | Dictionary MediaEffectInfo (mediacapture-extensions)
newtype MediaEffectInfo = MediaEffectInfo { unMediaEffectInfo :: JSVal }

instance Eq MediaEffectInfo where
  (MediaEffectInfo a) == (MediaEffectInfo b) = js_eq a b

instance PToJSVal MediaEffectInfo where
  pToJSVal = unMediaEffectInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaEffectInfo where
  pFromJSVal = MediaEffectInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaEffectInfo where
  toJSVal = return . unMediaEffectInfo
  {-# INLINE toJSVal #-}

instance FromJSVal MediaEffectInfo where
  fromJSVal = return . fmap MediaEffectInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaEffectInfo
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsMediaEffectInfo o
toMediaEffectInfo :: IsMediaEffectInfo o => o -> MediaEffectInfo
toMediaEffectInfo = MediaEffectInfo . coerce

instance IsMediaEffectInfo MediaEffectInfo

instance IsGObject MediaEffectInfo where
  typeGType _ = gTypeMediaEffectInfo
  {-# INLINE typeGType #-}

noMediaEffectInfo :: Maybe MediaEffectInfo
noMediaEffectInfo = Nothing
{-# INLINE noMediaEffectInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaEffectInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaElementAudioSourceNode" (webaudio-1.1).
newtype MediaElementAudioSourceNode = MediaElementAudioSourceNode { unMediaElementAudioSourceNode :: JSVal }

instance Eq MediaElementAudioSourceNode where
  (MediaElementAudioSourceNode a) == (MediaElementAudioSourceNode b) = js_eq a b

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 = return . fmap MediaElementAudioSourceNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaElementAudioSourceNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode MediaElementAudioSourceNode
instance IsEventTarget MediaElementAudioSourceNode

instance IsGObject MediaElementAudioSourceNode where
  typeGType _ = gTypeMediaElementAudioSourceNode
  {-# INLINE typeGType #-}

noMediaElementAudioSourceNode :: Maybe MediaElementAudioSourceNode
noMediaElementAudioSourceNode = Nothing
{-# INLINE noMediaElementAudioSourceNode #-}

foreign import javascript unsafe "(() => globalThis[\"MediaElementAudioSourceNode\"])" gTypeMediaElementAudioSourceNode :: GType

-- | Dictionary MediaElementAudioSourceOptions (webaudio-1.1)
newtype MediaElementAudioSourceOptions = MediaElementAudioSourceOptions { unMediaElementAudioSourceOptions :: JSVal }

instance Eq MediaElementAudioSourceOptions where
  (MediaElementAudioSourceOptions a) == (MediaElementAudioSourceOptions b) = js_eq a b

instance PToJSVal MediaElementAudioSourceOptions where
  pToJSVal = unMediaElementAudioSourceOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaElementAudioSourceOptions where
  pFromJSVal = MediaElementAudioSourceOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaElementAudioSourceOptions where
  toJSVal = return . unMediaElementAudioSourceOptions
  {-# INLINE toJSVal #-}

instance FromJSVal MediaElementAudioSourceOptions where
  fromJSVal = return . fmap MediaElementAudioSourceOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaElementAudioSourceOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaElementAudioSourceOptions where
  typeGType _ = gTypeMediaElementAudioSourceOptions
  {-# INLINE typeGType #-}

noMediaElementAudioSourceOptions :: Maybe MediaElementAudioSourceOptions
noMediaElementAudioSourceOptions = Nothing
{-# INLINE noMediaElementAudioSourceOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaElementAudioSourceOptions :: GType

-- | Dictionary MediaEncodingConfiguration (media-capabilities)
newtype MediaEncodingConfiguration = MediaEncodingConfiguration { unMediaEncodingConfiguration :: JSVal }

instance Eq MediaEncodingConfiguration where
  (MediaEncodingConfiguration a) == (MediaEncodingConfiguration b) = js_eq a b

instance PToJSVal MediaEncodingConfiguration where
  pToJSVal = unMediaEncodingConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaEncodingConfiguration where
  pFromJSVal = MediaEncodingConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaEncodingConfiguration where
  toJSVal = return . unMediaEncodingConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal MediaEncodingConfiguration where
  fromJSVal = return . fmap MediaEncodingConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaEncodingConfiguration
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaConfiguration MediaEncodingConfiguration

instance IsGObject MediaEncodingConfiguration where
  typeGType _ = gTypeMediaEncodingConfiguration
  {-# INLINE typeGType #-}

noMediaEncodingConfiguration :: Maybe MediaEncodingConfiguration
noMediaEncodingConfiguration = Nothing
{-# INLINE noMediaEncodingConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaEncodingConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaEncryptedEvent" (encrypted-media-2).
newtype MediaEncryptedEvent = MediaEncryptedEvent { unMediaEncryptedEvent :: JSVal }

instance Eq MediaEncryptedEvent where
  (MediaEncryptedEvent a) == (MediaEncryptedEvent b) = js_eq a b

instance PToJSVal MediaEncryptedEvent where
  pToJSVal = unMediaEncryptedEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaEncryptedEvent where
  pFromJSVal = MediaEncryptedEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaEncryptedEvent where
  toJSVal = return . unMediaEncryptedEvent
  {-# INLINE toJSVal #-}

instance FromJSVal MediaEncryptedEvent where
  fromJSVal = return . fmap MediaEncryptedEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaEncryptedEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MediaEncryptedEvent

instance IsGObject MediaEncryptedEvent where
  typeGType _ = gTypeMediaEncryptedEvent
  {-# INLINE typeGType #-}

noMediaEncryptedEvent :: Maybe MediaEncryptedEvent
noMediaEncryptedEvent = Nothing
{-# INLINE noMediaEncryptedEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MediaEncryptedEvent\"])" gTypeMediaEncryptedEvent :: GType

-- | Dictionary MediaEncryptedEventInit (encrypted-media-2)
newtype MediaEncryptedEventInit = MediaEncryptedEventInit { unMediaEncryptedEventInit :: JSVal }

instance Eq MediaEncryptedEventInit where
  (MediaEncryptedEventInit a) == (MediaEncryptedEventInit b) = js_eq a b

instance PToJSVal MediaEncryptedEventInit where
  pToJSVal = unMediaEncryptedEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaEncryptedEventInit where
  pFromJSVal = MediaEncryptedEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaEncryptedEventInit where
  toJSVal = return . unMediaEncryptedEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MediaEncryptedEventInit where
  fromJSVal = return . fmap MediaEncryptedEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaEncryptedEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MediaEncryptedEventInit

instance IsGObject MediaEncryptedEventInit where
  typeGType _ = gTypeMediaEncryptedEventInit
  {-# INLINE typeGType #-}

noMediaEncryptedEventInit :: Maybe MediaEncryptedEventInit
noMediaEncryptedEventInit = Nothing
{-# INLINE noMediaEncryptedEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaEncryptedEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaError" (html).
newtype MediaError = MediaError { unMediaError :: JSVal }

instance Eq MediaError where
  (MediaError a) == (MediaError b) = js_eq a b

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 = return . fmap MediaError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaError
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaError where
  typeGType _ = gTypeMediaError
  {-# INLINE typeGType #-}

noMediaError :: Maybe MediaError
noMediaError = Nothing
{-# INLINE noMediaError #-}

foreign import javascript unsafe "(() => globalThis[\"MediaError\"])" gTypeMediaError :: GType

-- | Dictionary MediaImage (mediasession)
newtype MediaImage = MediaImage { unMediaImage :: JSVal }

instance Eq MediaImage where
  (MediaImage a) == (MediaImage b) = js_eq a b

instance PToJSVal MediaImage where
  pToJSVal = unMediaImage
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaImage where
  pFromJSVal = MediaImage
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaImage where
  toJSVal = return . unMediaImage
  {-# INLINE toJSVal #-}

instance FromJSVal MediaImage where
  fromJSVal = return . fmap MediaImage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaImage
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaImage where
  typeGType _ = gTypeMediaImage
  {-# INLINE typeGType #-}

noMediaImage :: Maybe MediaImage
noMediaImage = Nothing
{-# INLINE noMediaImage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaImage :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaKeyMessageEvent" (encrypted-media-2).
newtype MediaKeyMessageEvent = MediaKeyMessageEvent { unMediaKeyMessageEvent :: JSVal }

instance Eq MediaKeyMessageEvent where
  (MediaKeyMessageEvent a) == (MediaKeyMessageEvent b) = js_eq a b

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 = return . fmap MediaKeyMessageEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeyMessageEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MediaKeyMessageEvent

instance IsGObject MediaKeyMessageEvent where
  typeGType _ = gTypeMediaKeyMessageEvent
  {-# INLINE typeGType #-}

noMediaKeyMessageEvent :: Maybe MediaKeyMessageEvent
noMediaKeyMessageEvent = Nothing
{-# INLINE noMediaKeyMessageEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MediaKeyMessageEvent\"])" gTypeMediaKeyMessageEvent :: GType

-- | Dictionary MediaKeyMessageEventInit (encrypted-media-2)
newtype MediaKeyMessageEventInit = MediaKeyMessageEventInit { unMediaKeyMessageEventInit :: JSVal }

instance Eq MediaKeyMessageEventInit where
  (MediaKeyMessageEventInit a) == (MediaKeyMessageEventInit b) = js_eq a b

instance PToJSVal MediaKeyMessageEventInit where
  pToJSVal = unMediaKeyMessageEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeyMessageEventInit where
  pFromJSVal = MediaKeyMessageEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeyMessageEventInit where
  toJSVal = return . unMediaKeyMessageEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeyMessageEventInit where
  fromJSVal = return . fmap MediaKeyMessageEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeyMessageEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MediaKeyMessageEventInit

instance IsGObject MediaKeyMessageEventInit where
  typeGType _ = gTypeMediaKeyMessageEventInit
  {-# INLINE typeGType #-}

noMediaKeyMessageEventInit :: Maybe MediaKeyMessageEventInit
noMediaKeyMessageEventInit = Nothing
{-# INLINE noMediaKeyMessageEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaKeyMessageEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaKeySession" (encrypted-media-2).
newtype MediaKeySession = MediaKeySession { unMediaKeySession :: JSVal }

instance Eq MediaKeySession where
  (MediaKeySession a) == (MediaKeySession b) = js_eq a b

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 = return . fmap MediaKeySession . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeySession
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MediaKeySession

instance IsGObject MediaKeySession where
  typeGType _ = gTypeMediaKeySession
  {-# INLINE typeGType #-}

noMediaKeySession :: Maybe MediaKeySession
noMediaKeySession = Nothing
{-# INLINE noMediaKeySession #-}

foreign import javascript unsafe "(() => globalThis[\"MediaKeySession\"])" gTypeMediaKeySession :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaKeyStatusMap" (encrypted-media-2).
newtype MediaKeyStatusMap = MediaKeyStatusMap { unMediaKeyStatusMap :: JSVal }

instance Eq MediaKeyStatusMap where
  (MediaKeyStatusMap a) == (MediaKeyStatusMap b) = js_eq a b

instance PToJSVal MediaKeyStatusMap where
  pToJSVal = unMediaKeyStatusMap
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeyStatusMap where
  pFromJSVal = MediaKeyStatusMap
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeyStatusMap where
  toJSVal = return . unMediaKeyStatusMap
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeyStatusMap where
  fromJSVal = return . fmap MediaKeyStatusMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeyStatusMap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaKeyStatusMap where
  typeGType _ = gTypeMediaKeyStatusMap
  {-# INLINE typeGType #-}

noMediaKeyStatusMap :: Maybe MediaKeyStatusMap
noMediaKeyStatusMap = Nothing
{-# INLINE noMediaKeyStatusMap #-}

foreign import javascript unsafe "(() => globalThis[\"MediaKeyStatusMap\"])" gTypeMediaKeyStatusMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaKeySystemAccess" (encrypted-media-2).
newtype MediaKeySystemAccess = MediaKeySystemAccess { unMediaKeySystemAccess :: JSVal }

instance Eq MediaKeySystemAccess where
  (MediaKeySystemAccess a) == (MediaKeySystemAccess b) = js_eq a b

instance PToJSVal MediaKeySystemAccess where
  pToJSVal = unMediaKeySystemAccess
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeySystemAccess where
  pFromJSVal = MediaKeySystemAccess
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeySystemAccess where
  toJSVal = return . unMediaKeySystemAccess
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeySystemAccess where
  fromJSVal = return . fmap MediaKeySystemAccess . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeySystemAccess
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaKeySystemAccess where
  typeGType _ = gTypeMediaKeySystemAccess
  {-# INLINE typeGType #-}

noMediaKeySystemAccess :: Maybe MediaKeySystemAccess
noMediaKeySystemAccess = Nothing
{-# INLINE noMediaKeySystemAccess #-}

foreign import javascript unsafe "(() => globalThis[\"MediaKeySystemAccess\"])" gTypeMediaKeySystemAccess :: GType

-- | Dictionary MediaKeySystemConfiguration (encrypted-media-2)
newtype MediaKeySystemConfiguration = MediaKeySystemConfiguration { unMediaKeySystemConfiguration :: JSVal }

instance Eq MediaKeySystemConfiguration where
  (MediaKeySystemConfiguration a) == (MediaKeySystemConfiguration b) = js_eq a b

instance PToJSVal MediaKeySystemConfiguration where
  pToJSVal = unMediaKeySystemConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeySystemConfiguration where
  pFromJSVal = MediaKeySystemConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeySystemConfiguration where
  toJSVal = return . unMediaKeySystemConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeySystemConfiguration where
  fromJSVal = return . fmap MediaKeySystemConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeySystemConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaKeySystemConfiguration where
  typeGType _ = gTypeMediaKeySystemConfiguration
  {-# INLINE typeGType #-}

noMediaKeySystemConfiguration :: Maybe MediaKeySystemConfiguration
noMediaKeySystemConfiguration = Nothing
{-# INLINE noMediaKeySystemConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaKeySystemConfiguration :: GType

-- | Dictionary MediaKeySystemMediaCapability (encrypted-media-2)
newtype MediaKeySystemMediaCapability = MediaKeySystemMediaCapability { unMediaKeySystemMediaCapability :: JSVal }

instance Eq MediaKeySystemMediaCapability where
  (MediaKeySystemMediaCapability a) == (MediaKeySystemMediaCapability b) = js_eq a b

instance PToJSVal MediaKeySystemMediaCapability where
  pToJSVal = unMediaKeySystemMediaCapability
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeySystemMediaCapability where
  pFromJSVal = MediaKeySystemMediaCapability
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeySystemMediaCapability where
  toJSVal = return . unMediaKeySystemMediaCapability
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeySystemMediaCapability where
  fromJSVal = return . fmap MediaKeySystemMediaCapability . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeySystemMediaCapability
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaKeySystemMediaCapability where
  typeGType _ = gTypeMediaKeySystemMediaCapability
  {-# INLINE typeGType #-}

noMediaKeySystemMediaCapability :: Maybe MediaKeySystemMediaCapability
noMediaKeySystemMediaCapability = Nothing
{-# INLINE noMediaKeySystemMediaCapability #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaKeySystemMediaCapability :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaKeys" (encrypted-media-2).
newtype MediaKeys = MediaKeys { unMediaKeys :: JSVal }

instance Eq MediaKeys where
  (MediaKeys a) == (MediaKeys b) = js_eq a b

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 = return . fmap MediaKeys . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeys
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaKeys where
  typeGType _ = gTypeMediaKeys
  {-# INLINE typeGType #-}

noMediaKeys :: Maybe MediaKeys
noMediaKeys = Nothing
{-# INLINE noMediaKeys #-}

foreign import javascript unsafe "(() => globalThis[\"MediaKeys\"])" gTypeMediaKeys :: GType

-- | Dictionary MediaKeysPolicy (encrypted-media-2)
newtype MediaKeysPolicy = MediaKeysPolicy { unMediaKeysPolicy :: JSVal }

instance Eq MediaKeysPolicy where
  (MediaKeysPolicy a) == (MediaKeysPolicy b) = js_eq a b

instance PToJSVal MediaKeysPolicy where
  pToJSVal = unMediaKeysPolicy
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaKeysPolicy where
  pFromJSVal = MediaKeysPolicy
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaKeysPolicy where
  toJSVal = return . unMediaKeysPolicy
  {-# INLINE toJSVal #-}

instance FromJSVal MediaKeysPolicy where
  fromJSVal = return . fmap MediaKeysPolicy . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaKeysPolicy
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaKeysPolicy where
  typeGType _ = gTypeMediaKeysPolicy
  {-# INLINE typeGType #-}

noMediaKeysPolicy :: Maybe MediaKeysPolicy
noMediaKeysPolicy = Nothing
{-# INLINE noMediaKeysPolicy #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaKeysPolicy :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaList" (cssom-1).
newtype MediaList = MediaList { unMediaList :: JSVal }

instance Eq MediaList where
  (MediaList a) == (MediaList b) = js_eq a b

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 = return . fmap MediaList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaList where
  typeGType _ = gTypeMediaList
  {-# INLINE typeGType #-}

noMediaList :: Maybe MediaList
noMediaList = Nothing
{-# INLINE noMediaList #-}

foreign import javascript unsafe "(() => globalThis[\"MediaList\"])" gTypeMediaList :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaMetadata" (mediasession).
newtype MediaMetadata = MediaMetadata { unMediaMetadata :: JSVal }

instance Eq MediaMetadata where
  (MediaMetadata a) == (MediaMetadata b) = js_eq a b

instance PToJSVal MediaMetadata where
  pToJSVal = unMediaMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaMetadata where
  pFromJSVal = MediaMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaMetadata where
  toJSVal = return . unMediaMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal MediaMetadata where
  fromJSVal = return . fmap MediaMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaMetadata
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaMetadata where
  typeGType _ = gTypeMediaMetadata
  {-# INLINE typeGType #-}

noMediaMetadata :: Maybe MediaMetadata
noMediaMetadata = Nothing
{-# INLINE noMediaMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"MediaMetadata\"])" gTypeMediaMetadata :: GType

-- | Dictionary MediaMetadataInit (mediasession)
newtype MediaMetadataInit = MediaMetadataInit { unMediaMetadataInit :: JSVal }

instance Eq MediaMetadataInit where
  (MediaMetadataInit a) == (MediaMetadataInit b) = js_eq a b

instance PToJSVal MediaMetadataInit where
  pToJSVal = unMediaMetadataInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaMetadataInit where
  pFromJSVal = MediaMetadataInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaMetadataInit where
  toJSVal = return . unMediaMetadataInit
  {-# INLINE toJSVal #-}

instance FromJSVal MediaMetadataInit where
  fromJSVal = return . fmap MediaMetadataInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaMetadataInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaMetadataInit where
  typeGType _ = gTypeMediaMetadataInit
  {-# INLINE typeGType #-}

noMediaMetadataInit :: Maybe MediaMetadataInit
noMediaMetadataInit = Nothing
{-# INLINE noMediaMetadataInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaMetadataInit :: GType

-- | Dictionary MediaPositionState (mediasession)
newtype MediaPositionState = MediaPositionState { unMediaPositionState :: JSVal }

instance Eq MediaPositionState where
  (MediaPositionState a) == (MediaPositionState b) = js_eq a b

instance PToJSVal MediaPositionState where
  pToJSVal = unMediaPositionState
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaPositionState where
  pFromJSVal = MediaPositionState
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaPositionState where
  toJSVal = return . unMediaPositionState
  {-# INLINE toJSVal #-}

instance FromJSVal MediaPositionState where
  fromJSVal = return . fmap MediaPositionState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaPositionState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaPositionState where
  typeGType _ = gTypeMediaPositionState
  {-# INLINE typeGType #-}

noMediaPositionState :: Maybe MediaPositionState
noMediaPositionState = Nothing
{-# INLINE noMediaPositionState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaPositionState :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaQueryList" (cssom-view-1).
newtype MediaQueryList = MediaQueryList { unMediaQueryList :: JSVal }

instance Eq MediaQueryList where
  (MediaQueryList a) == (MediaQueryList b) = js_eq a b

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 = return . fmap MediaQueryList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaQueryList
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MediaQueryList

instance IsGObject MediaQueryList where
  typeGType _ = gTypeMediaQueryList
  {-# INLINE typeGType #-}

noMediaQueryList :: Maybe MediaQueryList
noMediaQueryList = Nothing
{-# INLINE noMediaQueryList #-}

foreign import javascript unsafe "(() => globalThis[\"MediaQueryList\"])" gTypeMediaQueryList :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaQueryListEvent" (cssom-view-1).
newtype MediaQueryListEvent = MediaQueryListEvent { unMediaQueryListEvent :: JSVal }

instance Eq MediaQueryListEvent where
  (MediaQueryListEvent a) == (MediaQueryListEvent b) = js_eq a b

instance PToJSVal MediaQueryListEvent where
  pToJSVal = unMediaQueryListEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaQueryListEvent where
  pFromJSVal = MediaQueryListEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaQueryListEvent where
  toJSVal = return . unMediaQueryListEvent
  {-# INLINE toJSVal #-}

instance FromJSVal MediaQueryListEvent where
  fromJSVal = return . fmap MediaQueryListEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaQueryListEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MediaQueryListEvent

instance IsGObject MediaQueryListEvent where
  typeGType _ = gTypeMediaQueryListEvent
  {-# INLINE typeGType #-}

noMediaQueryListEvent :: Maybe MediaQueryListEvent
noMediaQueryListEvent = Nothing
{-# INLINE noMediaQueryListEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MediaQueryListEvent\"])" gTypeMediaQueryListEvent :: GType

-- | Dictionary MediaQueryListEventInit (cssom-view-1)
newtype MediaQueryListEventInit = MediaQueryListEventInit { unMediaQueryListEventInit :: JSVal }

instance Eq MediaQueryListEventInit where
  (MediaQueryListEventInit a) == (MediaQueryListEventInit b) = js_eq a b

instance PToJSVal MediaQueryListEventInit where
  pToJSVal = unMediaQueryListEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaQueryListEventInit where
  pFromJSVal = MediaQueryListEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaQueryListEventInit where
  toJSVal = return . unMediaQueryListEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MediaQueryListEventInit where
  fromJSVal = return . fmap MediaQueryListEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaQueryListEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MediaQueryListEventInit

instance IsGObject MediaQueryListEventInit where
  typeGType _ = gTypeMediaQueryListEventInit
  {-# INLINE typeGType #-}

noMediaQueryListEventInit :: Maybe MediaQueryListEventInit
noMediaQueryListEventInit = Nothing
{-# INLINE noMediaQueryListEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaQueryListEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaRecorder" (mediastream-recording).
newtype MediaRecorder = MediaRecorder { unMediaRecorder :: JSVal }

instance Eq MediaRecorder where
  (MediaRecorder a) == (MediaRecorder b) = js_eq a b

instance PToJSVal MediaRecorder where
  pToJSVal = unMediaRecorder
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaRecorder where
  pFromJSVal = MediaRecorder
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaRecorder where
  toJSVal = return . unMediaRecorder
  {-# INLINE toJSVal #-}

instance FromJSVal MediaRecorder where
  fromJSVal = return . fmap MediaRecorder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaRecorder
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MediaRecorder

instance IsGObject MediaRecorder where
  typeGType _ = gTypeMediaRecorder
  {-# INLINE typeGType #-}

noMediaRecorder :: Maybe MediaRecorder
noMediaRecorder = Nothing
{-# INLINE noMediaRecorder #-}

foreign import javascript unsafe "(() => globalThis[\"MediaRecorder\"])" gTypeMediaRecorder :: GType

-- | Dictionary MediaRecorderOptions (mediastream-recording)
newtype MediaRecorderOptions = MediaRecorderOptions { unMediaRecorderOptions :: JSVal }

instance Eq MediaRecorderOptions where
  (MediaRecorderOptions a) == (MediaRecorderOptions b) = js_eq a b

instance PToJSVal MediaRecorderOptions where
  pToJSVal = unMediaRecorderOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaRecorderOptions where
  pFromJSVal = MediaRecorderOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaRecorderOptions where
  toJSVal = return . unMediaRecorderOptions
  {-# INLINE toJSVal #-}

instance FromJSVal MediaRecorderOptions where
  fromJSVal = return . fmap MediaRecorderOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaRecorderOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaRecorderOptions where
  typeGType _ = gTypeMediaRecorderOptions
  {-# INLINE typeGType #-}

noMediaRecorderOptions :: Maybe MediaRecorderOptions
noMediaRecorderOptions = Nothing
{-# INLINE noMediaRecorderOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaRecorderOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaSession" (mediasession).
newtype MediaSession = MediaSession { unMediaSession :: JSVal }

instance Eq MediaSession where
  (MediaSession a) == (MediaSession b) = js_eq a b

instance PToJSVal MediaSession where
  pToJSVal = unMediaSession
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaSession where
  pFromJSVal = MediaSession
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaSession where
  toJSVal = return . unMediaSession
  {-# INLINE toJSVal #-}

instance FromJSVal MediaSession where
  fromJSVal = return . fmap MediaSession . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaSession
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaSession where
  typeGType _ = gTypeMediaSession
  {-# INLINE typeGType #-}

noMediaSession :: Maybe MediaSession
noMediaSession = Nothing
{-# INLINE noMediaSession #-}

foreign import javascript unsafe "(() => globalThis[\"MediaSession\"])" gTypeMediaSession :: GType

-- | Dictionary MediaSessionActionDetails (mediasession)
newtype MediaSessionActionDetails = MediaSessionActionDetails { unMediaSessionActionDetails :: JSVal }

instance Eq MediaSessionActionDetails where
  (MediaSessionActionDetails a) == (MediaSessionActionDetails b) = js_eq a b

instance PToJSVal MediaSessionActionDetails where
  pToJSVal = unMediaSessionActionDetails
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaSessionActionDetails where
  pFromJSVal = MediaSessionActionDetails
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaSessionActionDetails where
  toJSVal = return . unMediaSessionActionDetails
  {-# INLINE toJSVal #-}

instance FromJSVal MediaSessionActionDetails where
  fromJSVal = return . fmap MediaSessionActionDetails . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaSessionActionDetails
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaSessionActionDetails where
  typeGType _ = gTypeMediaSessionActionDetails
  {-# INLINE typeGType #-}

noMediaSessionActionDetails :: Maybe MediaSessionActionDetails
noMediaSessionActionDetails = Nothing
{-# INLINE noMediaSessionActionDetails #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaSessionActionDetails :: GType

-- | Dictionary MediaSettingsRange (image-capture)
newtype MediaSettingsRange = MediaSettingsRange { unMediaSettingsRange :: JSVal }

instance Eq MediaSettingsRange where
  (MediaSettingsRange a) == (MediaSettingsRange b) = js_eq a b

instance PToJSVal MediaSettingsRange where
  pToJSVal = unMediaSettingsRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaSettingsRange where
  pFromJSVal = MediaSettingsRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaSettingsRange where
  toJSVal = return . unMediaSettingsRange
  {-# INLINE toJSVal #-}

instance FromJSVal MediaSettingsRange where
  fromJSVal = return . fmap MediaSettingsRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaSettingsRange
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaSettingsRange where
  typeGType _ = gTypeMediaSettingsRange
  {-# INLINE typeGType #-}

noMediaSettingsRange :: Maybe MediaSettingsRange
noMediaSettingsRange = Nothing
{-# INLINE noMediaSettingsRange #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaSettingsRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaSource" (media-source-2).
newtype MediaSource = MediaSource { unMediaSource :: JSVal }

instance Eq MediaSource where
  (MediaSource a) == (MediaSource b) = js_eq a b

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 = return . fmap MediaSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaSource
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MediaSource

instance IsGObject MediaSource where
  typeGType _ = gTypeMediaSource
  {-# INLINE typeGType #-}

noMediaSource :: Maybe MediaSource
noMediaSource = Nothing
{-# INLINE noMediaSource #-}

foreign import javascript unsafe "(() => globalThis[\"MediaSource\"])" gTypeMediaSource :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaSourceHandle" (media-source-2).
newtype MediaSourceHandle = MediaSourceHandle { unMediaSourceHandle :: JSVal }

instance Eq MediaSourceHandle where
  (MediaSourceHandle a) == (MediaSourceHandle b) = js_eq a b

instance PToJSVal MediaSourceHandle where
  pToJSVal = unMediaSourceHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaSourceHandle where
  pFromJSVal = MediaSourceHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaSourceHandle where
  toJSVal = return . unMediaSourceHandle
  {-# INLINE toJSVal #-}

instance FromJSVal MediaSourceHandle where
  fromJSVal = return . fmap MediaSourceHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaSourceHandle
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaSourceHandle where
  typeGType _ = gTypeMediaSourceHandle
  {-# INLINE typeGType #-}

noMediaSourceHandle :: Maybe MediaSourceHandle
noMediaSourceHandle = Nothing
{-# INLINE noMediaSourceHandle #-}

foreign import javascript unsafe "(() => globalThis[\"MediaSourceHandle\"])" gTypeMediaSourceHandle :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStream" (mediacapture-streams).
newtype MediaStream = MediaStream { unMediaStream :: JSVal }

instance Eq MediaStream where
  (MediaStream a) == (MediaStream b) = js_eq a b

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 = return . fmap MediaStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStream
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget MediaStream

instance IsGObject MediaStream where
  typeGType _ = gTypeMediaStream
  {-# INLINE typeGType #-}

noMediaStream :: Maybe MediaStream
noMediaStream = Nothing
{-# INLINE noMediaStream #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStream\"])" gTypeMediaStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStreamAudioDestinationNode" (webaudio-1.1).
newtype MediaStreamAudioDestinationNode = MediaStreamAudioDestinationNode { unMediaStreamAudioDestinationNode :: JSVal }

instance Eq MediaStreamAudioDestinationNode where
  (MediaStreamAudioDestinationNode a) == (MediaStreamAudioDestinationNode b) = js_eq a b

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 = return . fmap MediaStreamAudioDestinationNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamAudioDestinationNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode MediaStreamAudioDestinationNode
instance IsEventTarget MediaStreamAudioDestinationNode

instance IsGObject MediaStreamAudioDestinationNode where
  typeGType _ = gTypeMediaStreamAudioDestinationNode
  {-# INLINE typeGType #-}

noMediaStreamAudioDestinationNode :: Maybe MediaStreamAudioDestinationNode
noMediaStreamAudioDestinationNode = Nothing
{-# INLINE noMediaStreamAudioDestinationNode #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStreamAudioDestinationNode\"])" gTypeMediaStreamAudioDestinationNode :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStreamAudioSourceNode" (webaudio-1.1).
newtype MediaStreamAudioSourceNode = MediaStreamAudioSourceNode { unMediaStreamAudioSourceNode :: JSVal }

instance Eq MediaStreamAudioSourceNode where
  (MediaStreamAudioSourceNode a) == (MediaStreamAudioSourceNode b) = js_eq a b

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 = return . fmap MediaStreamAudioSourceNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamAudioSourceNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode MediaStreamAudioSourceNode
instance IsEventTarget MediaStreamAudioSourceNode

instance IsGObject MediaStreamAudioSourceNode where
  typeGType _ = gTypeMediaStreamAudioSourceNode
  {-# INLINE typeGType #-}

noMediaStreamAudioSourceNode :: Maybe MediaStreamAudioSourceNode
noMediaStreamAudioSourceNode = Nothing
{-# INLINE noMediaStreamAudioSourceNode #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStreamAudioSourceNode\"])" gTypeMediaStreamAudioSourceNode :: GType

-- | Dictionary MediaStreamAudioSourceOptions (webaudio-1.1)
newtype MediaStreamAudioSourceOptions = MediaStreamAudioSourceOptions { unMediaStreamAudioSourceOptions :: JSVal }

instance Eq MediaStreamAudioSourceOptions where
  (MediaStreamAudioSourceOptions a) == (MediaStreamAudioSourceOptions b) = js_eq a b

instance PToJSVal MediaStreamAudioSourceOptions where
  pToJSVal = unMediaStreamAudioSourceOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamAudioSourceOptions where
  pFromJSVal = MediaStreamAudioSourceOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamAudioSourceOptions where
  toJSVal = return . unMediaStreamAudioSourceOptions
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamAudioSourceOptions where
  fromJSVal = return . fmap MediaStreamAudioSourceOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamAudioSourceOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaStreamAudioSourceOptions where
  typeGType _ = gTypeMediaStreamAudioSourceOptions
  {-# INLINE typeGType #-}

noMediaStreamAudioSourceOptions :: Maybe MediaStreamAudioSourceOptions
noMediaStreamAudioSourceOptions = Nothing
{-# INLINE noMediaStreamAudioSourceOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaStreamAudioSourceOptions :: GType

-- | Dictionary MediaStreamConstraints (mediacapture-streams)
newtype MediaStreamConstraints = MediaStreamConstraints { unMediaStreamConstraints :: JSVal }

instance Eq MediaStreamConstraints where
  (MediaStreamConstraints a) == (MediaStreamConstraints b) = js_eq a b

instance PToJSVal MediaStreamConstraints where
  pToJSVal = unMediaStreamConstraints
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamConstraints where
  pFromJSVal = MediaStreamConstraints
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamConstraints where
  toJSVal = return . unMediaStreamConstraints
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamConstraints where
  fromJSVal = return . fmap MediaStreamConstraints . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamConstraints
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaStreamConstraints where
  typeGType _ = gTypeMediaStreamConstraints
  {-# INLINE typeGType #-}

noMediaStreamConstraints :: Maybe MediaStreamConstraints
noMediaStreamConstraints = Nothing
{-# INLINE noMediaStreamConstraints #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaStreamConstraints :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStreamTrack" (mediacapture-streams).
newtype MediaStreamTrack = MediaStreamTrack { unMediaStreamTrack :: JSVal }

instance Eq MediaStreamTrack where
  (MediaStreamTrack a) == (MediaStreamTrack b) = js_eq a b

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 = return . fmap MediaStreamTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrack
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject 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 #-}

noMediaStreamTrack :: Maybe MediaStreamTrack
noMediaStreamTrack = Nothing
{-# INLINE noMediaStreamTrack #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStreamTrack\"])" gTypeMediaStreamTrack :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStreamTrackEvent" (mediacapture-streams).
newtype MediaStreamTrackEvent = MediaStreamTrackEvent { unMediaStreamTrackEvent :: JSVal }

instance Eq MediaStreamTrackEvent where
  (MediaStreamTrackEvent a) == (MediaStreamTrackEvent b) = js_eq a b

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 = return . fmap MediaStreamTrackEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MediaStreamTrackEvent

instance IsGObject MediaStreamTrackEvent where
  typeGType _ = gTypeMediaStreamTrackEvent
  {-# INLINE typeGType #-}

noMediaStreamTrackEvent :: Maybe MediaStreamTrackEvent
noMediaStreamTrackEvent = Nothing
{-# INLINE noMediaStreamTrackEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStreamTrackEvent\"])" gTypeMediaStreamTrackEvent :: GType

-- | Dictionary MediaStreamTrackEventInit (mediacapture-streams)
newtype MediaStreamTrackEventInit = MediaStreamTrackEventInit { unMediaStreamTrackEventInit :: JSVal }

instance Eq MediaStreamTrackEventInit where
  (MediaStreamTrackEventInit a) == (MediaStreamTrackEventInit b) = js_eq a b

instance PToJSVal MediaStreamTrackEventInit where
  pToJSVal = unMediaStreamTrackEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamTrackEventInit where
  pFromJSVal = MediaStreamTrackEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamTrackEventInit where
  toJSVal = return . unMediaStreamTrackEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamTrackEventInit where
  fromJSVal = return . fmap MediaStreamTrackEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MediaStreamTrackEventInit

instance IsGObject MediaStreamTrackEventInit where
  typeGType _ = gTypeMediaStreamTrackEventInit
  {-# INLINE typeGType #-}

noMediaStreamTrackEventInit :: Maybe MediaStreamTrackEventInit
noMediaStreamTrackEventInit = Nothing
{-# INLINE noMediaStreamTrackEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaStreamTrackEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStreamTrackHandle" (mediacapture-transform).
newtype MediaStreamTrackHandle = MediaStreamTrackHandle { unMediaStreamTrackHandle :: JSVal }

instance Eq MediaStreamTrackHandle where
  (MediaStreamTrackHandle a) == (MediaStreamTrackHandle b) = js_eq a b

instance PToJSVal MediaStreamTrackHandle where
  pToJSVal = unMediaStreamTrackHandle
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamTrackHandle where
  pFromJSVal = MediaStreamTrackHandle
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamTrackHandle where
  toJSVal = return . unMediaStreamTrackHandle
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamTrackHandle where
  fromJSVal = return . fmap MediaStreamTrackHandle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackHandle
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaStreamTrackHandle where
  typeGType _ = gTypeMediaStreamTrackHandle
  {-# INLINE typeGType #-}

noMediaStreamTrackHandle :: Maybe MediaStreamTrackHandle
noMediaStreamTrackHandle = Nothing
{-# INLINE noMediaStreamTrackHandle #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStreamTrackHandle\"])" gTypeMediaStreamTrackHandle :: GType

-- | Functions for this interface are in "GHCJS.DOM.MediaStreamTrackProcessor" (mediacapture-transform).
newtype MediaStreamTrackProcessor = MediaStreamTrackProcessor { unMediaStreamTrackProcessor :: JSVal }

instance Eq MediaStreamTrackProcessor where
  (MediaStreamTrackProcessor a) == (MediaStreamTrackProcessor b) = js_eq a b

instance PToJSVal MediaStreamTrackProcessor where
  pToJSVal = unMediaStreamTrackProcessor
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamTrackProcessor where
  pFromJSVal = MediaStreamTrackProcessor
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamTrackProcessor where
  toJSVal = return . unMediaStreamTrackProcessor
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamTrackProcessor where
  fromJSVal = return . fmap MediaStreamTrackProcessor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackProcessor
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaStreamTrackProcessor where
  typeGType _ = gTypeMediaStreamTrackProcessor
  {-# INLINE typeGType #-}

noMediaStreamTrackProcessor :: Maybe MediaStreamTrackProcessor
noMediaStreamTrackProcessor = Nothing
{-# INLINE noMediaStreamTrackProcessor #-}

foreign import javascript unsafe "(() => globalThis[\"MediaStreamTrackProcessor\"])" gTypeMediaStreamTrackProcessor :: GType

-- | Dictionary MediaStreamTrackProcessorInit (mediacapture-transform)
newtype MediaStreamTrackProcessorInit = MediaStreamTrackProcessorInit { unMediaStreamTrackProcessorInit :: JSVal }

instance Eq MediaStreamTrackProcessorInit where
  (MediaStreamTrackProcessorInit a) == (MediaStreamTrackProcessorInit b) = js_eq a b

instance PToJSVal MediaStreamTrackProcessorInit where
  pToJSVal = unMediaStreamTrackProcessorInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaStreamTrackProcessorInit where
  pFromJSVal = MediaStreamTrackProcessorInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaStreamTrackProcessorInit where
  toJSVal = return . unMediaStreamTrackProcessorInit
  {-# INLINE toJSVal #-}

instance FromJSVal MediaStreamTrackProcessorInit where
  fromJSVal = return . fmap MediaStreamTrackProcessorInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaStreamTrackProcessorInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaStreamTrackProcessorInit where
  typeGType _ = gTypeMediaStreamTrackProcessorInit
  {-# INLINE typeGType #-}

noMediaStreamTrackProcessorInit :: Maybe MediaStreamTrackProcessorInit
noMediaStreamTrackProcessorInit = Nothing
{-# INLINE noMediaStreamTrackProcessorInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaStreamTrackProcessorInit :: GType

-- | Dictionary MediaTrackCapabilities (mediacapture-streams)
newtype MediaTrackCapabilities = MediaTrackCapabilities { unMediaTrackCapabilities :: JSVal }

instance Eq MediaTrackCapabilities where
  (MediaTrackCapabilities a) == (MediaTrackCapabilities b) = js_eq a b

instance PToJSVal MediaTrackCapabilities where
  pToJSVal = unMediaTrackCapabilities
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaTrackCapabilities where
  pFromJSVal = MediaTrackCapabilities
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaTrackCapabilities where
  toJSVal = return . unMediaTrackCapabilities
  {-# INLINE toJSVal #-}

instance FromJSVal MediaTrackCapabilities where
  fromJSVal = return . fmap MediaTrackCapabilities . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaTrackCapabilities
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaTrackCapabilities where
  typeGType _ = gTypeMediaTrackCapabilities
  {-# INLINE typeGType #-}

noMediaTrackCapabilities :: Maybe MediaTrackCapabilities
noMediaTrackCapabilities = Nothing
{-# INLINE noMediaTrackCapabilities #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaTrackCapabilities :: GType

-- | Dictionary MediaTrackConstraintSet (mediacapture-streams)
newtype MediaTrackConstraintSet = MediaTrackConstraintSet { unMediaTrackConstraintSet :: JSVal }

instance Eq MediaTrackConstraintSet where
  (MediaTrackConstraintSet a) == (MediaTrackConstraintSet b) = js_eq a b

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 = return . fmap MediaTrackConstraintSet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaTrackConstraintSet
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsMediaTrackConstraintSet o
toMediaTrackConstraintSet :: IsMediaTrackConstraintSet o => o -> MediaTrackConstraintSet
toMediaTrackConstraintSet = MediaTrackConstraintSet . coerce

instance IsMediaTrackConstraintSet MediaTrackConstraintSet

instance IsGObject MediaTrackConstraintSet where
  typeGType _ = gTypeMediaTrackConstraintSet
  {-# INLINE typeGType #-}

noMediaTrackConstraintSet :: Maybe MediaTrackConstraintSet
noMediaTrackConstraintSet = Nothing
{-# INLINE noMediaTrackConstraintSet #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaTrackConstraintSet :: GType

-- | Dictionary MediaTrackConstraints (mediacapture-streams)
newtype MediaTrackConstraints = MediaTrackConstraints { unMediaTrackConstraints :: JSVal }

instance Eq MediaTrackConstraints where
  (MediaTrackConstraints a) == (MediaTrackConstraints b) = js_eq a b

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 = return . fmap MediaTrackConstraints . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaTrackConstraints
  {-# INLINE fromJSValUnchecked #-}

instance IsMediaTrackConstraintSet MediaTrackConstraints

instance IsGObject MediaTrackConstraints where
  typeGType _ = gTypeMediaTrackConstraints
  {-# INLINE typeGType #-}

noMediaTrackConstraints :: Maybe MediaTrackConstraints
noMediaTrackConstraints = Nothing
{-# INLINE noMediaTrackConstraints #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaTrackConstraints :: GType

-- | Dictionary MediaTrackSettings (mediacapture-streams)
newtype MediaTrackSettings = MediaTrackSettings { unMediaTrackSettings :: JSVal }

instance Eq MediaTrackSettings where
  (MediaTrackSettings a) == (MediaTrackSettings b) = js_eq a b

instance PToJSVal MediaTrackSettings where
  pToJSVal = unMediaTrackSettings
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaTrackSettings where
  pFromJSVal = MediaTrackSettings
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaTrackSettings where
  toJSVal = return . unMediaTrackSettings
  {-# INLINE toJSVal #-}

instance FromJSVal MediaTrackSettings where
  fromJSVal = return . fmap MediaTrackSettings . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaTrackSettings
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaTrackSettings where
  typeGType _ = gTypeMediaTrackSettings
  {-# INLINE typeGType #-}

noMediaTrackSettings :: Maybe MediaTrackSettings
noMediaTrackSettings = Nothing
{-# INLINE noMediaTrackSettings #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaTrackSettings :: GType

-- | Dictionary MediaTrackSupportedConstraints (mediacapture-streams)
newtype MediaTrackSupportedConstraints = MediaTrackSupportedConstraints { unMediaTrackSupportedConstraints :: JSVal }

instance Eq MediaTrackSupportedConstraints where
  (MediaTrackSupportedConstraints a) == (MediaTrackSupportedConstraints b) = js_eq a b

instance PToJSVal MediaTrackSupportedConstraints where
  pToJSVal = unMediaTrackSupportedConstraints
  {-# INLINE pToJSVal #-}

instance PFromJSVal MediaTrackSupportedConstraints where
  pFromJSVal = MediaTrackSupportedConstraints
  {-# INLINE pFromJSVal #-}

instance ToJSVal MediaTrackSupportedConstraints where
  toJSVal = return . unMediaTrackSupportedConstraints
  {-# INLINE toJSVal #-}

instance FromJSVal MediaTrackSupportedConstraints where
  fromJSVal = return . fmap MediaTrackSupportedConstraints . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MediaTrackSupportedConstraints
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MediaTrackSupportedConstraints where
  typeGType _ = gTypeMediaTrackSupportedConstraints
  {-# INLINE typeGType #-}

noMediaTrackSupportedConstraints :: Maybe MediaTrackSupportedConstraints
noMediaTrackSupportedConstraints = Nothing
{-# INLINE noMediaTrackSupportedConstraints #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMediaTrackSupportedConstraints :: GType

-- | Functions for this interface are in "GHCJS.DOM.MessageChannel" (html).
newtype MessageChannel = MessageChannel { unMessageChannel :: JSVal }

instance Eq MessageChannel where
  (MessageChannel a) == (MessageChannel b) = js_eq a b

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 = return . fmap MessageChannel . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MessageChannel
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MessageChannel where
  typeGType _ = gTypeMessageChannel
  {-# INLINE typeGType #-}

noMessageChannel :: Maybe MessageChannel
noMessageChannel = Nothing
{-# INLINE noMessageChannel #-}

foreign import javascript unsafe "(() => globalThis[\"MessageChannel\"])" gTypeMessageChannel :: GType

-- | Functions for this interface are in "GHCJS.DOM.MessageEvent" (html).
newtype MessageEvent = MessageEvent { unMessageEvent :: JSVal }

instance Eq MessageEvent where
  (MessageEvent a) == (MessageEvent b) = js_eq a b

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 = return . fmap MessageEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MessageEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent MessageEvent

instance IsGObject MessageEvent where
  typeGType _ = gTypeMessageEvent
  {-# INLINE typeGType #-}

noMessageEvent :: Maybe MessageEvent
noMessageEvent = Nothing
{-# INLINE noMessageEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MessageEvent\"])" gTypeMessageEvent :: GType

-- | Dictionary MessageEventInit (html)
newtype MessageEventInit = MessageEventInit { unMessageEventInit :: JSVal }

instance Eq MessageEventInit where
  (MessageEventInit a) == (MessageEventInit b) = js_eq a b

instance PToJSVal MessageEventInit where
  pToJSVal = unMessageEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MessageEventInit where
  pFromJSVal = MessageEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MessageEventInit where
  toJSVal = return . unMessageEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MessageEventInit where
  fromJSVal = return . fmap MessageEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MessageEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit MessageEventInit

instance IsGObject MessageEventInit where
  typeGType _ = gTypeMessageEventInit
  {-# INLINE typeGType #-}

noMessageEventInit :: Maybe MessageEventInit
noMessageEventInit = Nothing
{-# INLINE noMessageEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMessageEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MessageEventTarget" (html).
newtype MessageEventTarget = MessageEventTarget { unMessageEventTarget :: JSVal }

instance Eq MessageEventTarget where
  (MessageEventTarget a) == (MessageEventTarget b) = js_eq a b

instance PToJSVal MessageEventTarget where
  pToJSVal = unMessageEventTarget
  {-# INLINE pToJSVal #-}

instance PFromJSVal MessageEventTarget where
  pFromJSVal = MessageEventTarget
  {-# INLINE pFromJSVal #-}

instance ToJSVal MessageEventTarget where
  toJSVal = return . unMessageEventTarget
  {-# INLINE toJSVal #-}

instance FromJSVal MessageEventTarget where
  fromJSVal = return . fmap MessageEventTarget . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MessageEventTarget
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsMessageEventTarget o
toMessageEventTarget :: IsMessageEventTarget o => o -> MessageEventTarget
toMessageEventTarget = MessageEventTarget . coerce

instance IsMessageEventTarget MessageEventTarget

instance IsGObject MessageEventTarget where
  typeGType _ = gTypeMessageEventTarget
  {-# INLINE typeGType #-}

noMessageEventTarget :: Maybe MessageEventTarget
noMessageEventTarget = Nothing
{-# INLINE noMessageEventTarget #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMessageEventTarget :: GType

-- | Functions for this interface are in "GHCJS.DOM.MessagePort" (html).
newtype MessagePort = MessagePort { unMessagePort :: JSVal }

instance Eq MessagePort where
  (MessagePort a) == (MessagePort b) = js_eq a b

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 = return . fmap MessagePort . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MessagePort
  {-# INLINE fromJSValUnchecked #-}

instance IsMessageEventTarget MessagePort
instance IsEventTarget MessagePort

instance IsGObject MessagePort where
  typeGType _ = gTypeMessagePort
  {-# INLINE typeGType #-}

noMessagePort :: Maybe MessagePort
noMessagePort = Nothing
{-# INLINE noMessagePort #-}

foreign import javascript unsafe "(() => globalThis[\"MessagePort\"])" gTypeMessagePort :: GType

-- | Functions for this interface are in "GHCJS.DOM.MimeType" (html).
newtype MimeType = MimeType { unMimeType :: JSVal }

instance Eq MimeType where
  (MimeType a) == (MimeType b) = js_eq a b

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 = return . fmap MimeType . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MimeType
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MimeType where
  typeGType _ = gTypeMimeType
  {-# INLINE typeGType #-}

noMimeType :: Maybe MimeType
noMimeType = Nothing
{-# INLINE noMimeType #-}

foreign import javascript unsafe "(() => globalThis[\"MimeType\"])" gTypeMimeType :: GType

-- | Functions for this interface are in "GHCJS.DOM.MimeTypeArray" (html).
newtype MimeTypeArray = MimeTypeArray { unMimeTypeArray :: JSVal }

instance Eq MimeTypeArray where
  (MimeTypeArray a) == (MimeTypeArray b) = js_eq a b

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 = return . fmap MimeTypeArray . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MimeTypeArray
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MimeTypeArray where
  typeGType _ = gTypeMimeTypeArray
  {-# INLINE typeGType #-}

noMimeTypeArray :: Maybe MimeTypeArray
noMimeTypeArray = Nothing
{-# INLINE noMimeTypeArray #-}

foreign import javascript unsafe "(() => globalThis[\"MimeTypeArray\"])" gTypeMimeTypeArray :: GType

-- | Functions for this interface are in "GHCJS.DOM.MouseEvent" (pointerevents4).
newtype MouseEvent = MouseEvent { unMouseEvent :: JSVal }

instance Eq MouseEvent where
  (MouseEvent a) == (MouseEvent b) = js_eq a b

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 = return . fmap MouseEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MouseEvent
  {-# INLINE fromJSValUnchecked #-}

class (IsUIEvent o, IsGObject 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 #-}

noMouseEvent :: Maybe MouseEvent
noMouseEvent = Nothing
{-# INLINE noMouseEvent #-}

foreign import javascript unsafe "(() => globalThis[\"MouseEvent\"])" gTypeMouseEvent :: GType

-- | Dictionary MouseEventInit (pointerevents4)
newtype MouseEventInit = MouseEventInit { unMouseEventInit :: JSVal }

instance Eq MouseEventInit where
  (MouseEventInit a) == (MouseEventInit b) = js_eq a b

instance PToJSVal MouseEventInit where
  pToJSVal = unMouseEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MouseEventInit where
  pFromJSVal = MouseEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MouseEventInit where
  toJSVal = return . unMouseEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal MouseEventInit where
  fromJSVal = return . fmap MouseEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MouseEventInit
  {-# INLINE fromJSValUnchecked #-}

class (IsEventModifierInit o, IsGObject o) => IsMouseEventInit o
toMouseEventInit :: IsMouseEventInit o => o -> MouseEventInit
toMouseEventInit = MouseEventInit . coerce

instance IsMouseEventInit MouseEventInit
instance IsEventModifierInit MouseEventInit
instance IsUIEventInit MouseEventInit
instance IsEventInit MouseEventInit

instance IsGObject MouseEventInit where
  typeGType _ = gTypeMouseEventInit
  {-# INLINE typeGType #-}

noMouseEventInit :: Maybe MouseEventInit
noMouseEventInit = Nothing
{-# INLINE noMouseEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMouseEventInit :: GType

-- | Dictionary MultiCacheQueryOptions (service-workers)
newtype MultiCacheQueryOptions = MultiCacheQueryOptions { unMultiCacheQueryOptions :: JSVal }

instance Eq MultiCacheQueryOptions where
  (MultiCacheQueryOptions a) == (MultiCacheQueryOptions b) = js_eq a b

instance PToJSVal MultiCacheQueryOptions where
  pToJSVal = unMultiCacheQueryOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal MultiCacheQueryOptions where
  pFromJSVal = MultiCacheQueryOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal MultiCacheQueryOptions where
  toJSVal = return . unMultiCacheQueryOptions
  {-# INLINE toJSVal #-}

instance FromJSVal MultiCacheQueryOptions where
  fromJSVal = return . fmap MultiCacheQueryOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MultiCacheQueryOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsCacheQueryOptions MultiCacheQueryOptions

instance IsGObject MultiCacheQueryOptions where
  typeGType _ = gTypeMultiCacheQueryOptions
  {-# INLINE typeGType #-}

noMultiCacheQueryOptions :: Maybe MultiCacheQueryOptions
noMultiCacheQueryOptions = Nothing
{-# INLINE noMultiCacheQueryOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMultiCacheQueryOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.MutationObserver" (dom).
newtype MutationObserver = MutationObserver { unMutationObserver :: JSVal }

instance Eq MutationObserver where
  (MutationObserver a) == (MutationObserver b) = js_eq a b

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 = return . fmap MutationObserver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MutationObserver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MutationObserver where
  typeGType _ = gTypeMutationObserver
  {-# INLINE typeGType #-}

noMutationObserver :: Maybe MutationObserver
noMutationObserver = Nothing
{-# INLINE noMutationObserver #-}

foreign import javascript unsafe "(() => globalThis[\"MutationObserver\"])" gTypeMutationObserver :: GType

-- | Dictionary MutationObserverInit (dom)
newtype MutationObserverInit = MutationObserverInit { unMutationObserverInit :: JSVal }

instance Eq MutationObserverInit where
  (MutationObserverInit a) == (MutationObserverInit b) = js_eq a b

instance PToJSVal MutationObserverInit where
  pToJSVal = unMutationObserverInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal MutationObserverInit where
  pFromJSVal = MutationObserverInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal MutationObserverInit where
  toJSVal = return . unMutationObserverInit
  {-# INLINE toJSVal #-}

instance FromJSVal MutationObserverInit where
  fromJSVal = return . fmap MutationObserverInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MutationObserverInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MutationObserverInit where
  typeGType _ = gTypeMutationObserverInit
  {-# INLINE typeGType #-}

noMutationObserverInit :: Maybe MutationObserverInit
noMutationObserverInit = Nothing
{-# INLINE noMutationObserverInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeMutationObserverInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.MutationRecord" (dom).
newtype MutationRecord = MutationRecord { unMutationRecord :: JSVal }

instance Eq MutationRecord where
  (MutationRecord a) == (MutationRecord b) = js_eq a b

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 = return . fmap MutationRecord . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . MutationRecord
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject MutationRecord where
  typeGType _ = gTypeMutationRecord
  {-# INLINE typeGType #-}

noMutationRecord :: Maybe MutationRecord
noMutationRecord = Nothing
{-# INLINE noMutationRecord #-}

foreign import javascript unsafe "(() => globalThis[\"MutationRecord\"])" gTypeMutationRecord :: GType

-- | Functions for this interface are in "GHCJS.DOM.NamedNodeMap" (dom).
newtype NamedNodeMap = NamedNodeMap { unNamedNodeMap :: JSVal }

instance Eq NamedNodeMap where
  (NamedNodeMap a) == (NamedNodeMap b) = js_eq a b

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 = return . fmap NamedNodeMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NamedNodeMap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NamedNodeMap where
  typeGType _ = gTypeNamedNodeMap
  {-# INLINE typeGType #-}

noNamedNodeMap :: Maybe NamedNodeMap
noNamedNodeMap = Nothing
{-# INLINE noNamedNodeMap #-}

foreign import javascript unsafe "(() => globalThis[\"NamedNodeMap\"])" gTypeNamedNodeMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigateEvent" (html).
newtype NavigateEvent = NavigateEvent { unNavigateEvent :: JSVal }

instance Eq NavigateEvent where
  (NavigateEvent a) == (NavigateEvent b) = js_eq a b

instance PToJSVal NavigateEvent where
  pToJSVal = unNavigateEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigateEvent where
  pFromJSVal = NavigateEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigateEvent where
  toJSVal = return . unNavigateEvent
  {-# INLINE toJSVal #-}

instance FromJSVal NavigateEvent where
  fromJSVal = return . fmap NavigateEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigateEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent NavigateEvent

instance IsGObject NavigateEvent where
  typeGType _ = gTypeNavigateEvent
  {-# INLINE typeGType #-}

noNavigateEvent :: Maybe NavigateEvent
noNavigateEvent = Nothing
{-# INLINE noNavigateEvent #-}

foreign import javascript unsafe "(() => globalThis[\"NavigateEvent\"])" gTypeNavigateEvent :: GType

-- | Dictionary NavigateEventInit (html)
newtype NavigateEventInit = NavigateEventInit { unNavigateEventInit :: JSVal }

instance Eq NavigateEventInit where
  (NavigateEventInit a) == (NavigateEventInit b) = js_eq a b

instance PToJSVal NavigateEventInit where
  pToJSVal = unNavigateEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigateEventInit where
  pFromJSVal = NavigateEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigateEventInit where
  toJSVal = return . unNavigateEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal NavigateEventInit where
  fromJSVal = return . fmap NavigateEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigateEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit NavigateEventInit

instance IsGObject NavigateEventInit where
  typeGType _ = gTypeNavigateEventInit
  {-# INLINE typeGType #-}

noNavigateEventInit :: Maybe NavigateEventInit
noNavigateEventInit = Nothing
{-# INLINE noNavigateEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigateEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.Navigation" (html).
newtype Navigation = Navigation { unNavigation :: JSVal }

instance Eq Navigation where
  (Navigation a) == (Navigation b) = js_eq a b

instance PToJSVal Navigation where
  pToJSVal = unNavigation
  {-# INLINE pToJSVal #-}

instance PFromJSVal Navigation where
  pFromJSVal = Navigation
  {-# INLINE pFromJSVal #-}

instance ToJSVal Navigation where
  toJSVal = return . unNavigation
  {-# INLINE toJSVal #-}

instance FromJSVal Navigation where
  fromJSVal = return . fmap Navigation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Navigation
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget Navigation

instance IsGObject Navigation where
  typeGType _ = gTypeNavigation
  {-# INLINE typeGType #-}

noNavigation :: Maybe Navigation
noNavigation = Nothing
{-# INLINE noNavigation #-}

foreign import javascript unsafe "(() => globalThis[\"Navigation\"])" gTypeNavigation :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationActivation" (html).
newtype NavigationActivation = NavigationActivation { unNavigationActivation :: JSVal }

instance Eq NavigationActivation where
  (NavigationActivation a) == (NavigationActivation b) = js_eq a b

instance PToJSVal NavigationActivation where
  pToJSVal = unNavigationActivation
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationActivation where
  pFromJSVal = NavigationActivation
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationActivation where
  toJSVal = return . unNavigationActivation
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationActivation where
  fromJSVal = return . fmap NavigationActivation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationActivation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationActivation where
  typeGType _ = gTypeNavigationActivation
  {-# INLINE typeGType #-}

noNavigationActivation :: Maybe NavigationActivation
noNavigationActivation = Nothing
{-# INLINE noNavigationActivation #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationActivation\"])" gTypeNavigationActivation :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationCurrentEntryChangeEvent" (html).
newtype NavigationCurrentEntryChangeEvent = NavigationCurrentEntryChangeEvent { unNavigationCurrentEntryChangeEvent :: JSVal }

instance Eq NavigationCurrentEntryChangeEvent where
  (NavigationCurrentEntryChangeEvent a) == (NavigationCurrentEntryChangeEvent b) = js_eq a b

instance PToJSVal NavigationCurrentEntryChangeEvent where
  pToJSVal = unNavigationCurrentEntryChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationCurrentEntryChangeEvent where
  pFromJSVal = NavigationCurrentEntryChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationCurrentEntryChangeEvent where
  toJSVal = return . unNavigationCurrentEntryChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationCurrentEntryChangeEvent where
  fromJSVal = return . fmap NavigationCurrentEntryChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationCurrentEntryChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent NavigationCurrentEntryChangeEvent

instance IsGObject NavigationCurrentEntryChangeEvent where
  typeGType _ = gTypeNavigationCurrentEntryChangeEvent
  {-# INLINE typeGType #-}

noNavigationCurrentEntryChangeEvent :: Maybe NavigationCurrentEntryChangeEvent
noNavigationCurrentEntryChangeEvent = Nothing
{-# INLINE noNavigationCurrentEntryChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationCurrentEntryChangeEvent\"])" gTypeNavigationCurrentEntryChangeEvent :: GType

-- | Dictionary NavigationCurrentEntryChangeEventInit (html)
newtype NavigationCurrentEntryChangeEventInit = NavigationCurrentEntryChangeEventInit { unNavigationCurrentEntryChangeEventInit :: JSVal }

instance Eq NavigationCurrentEntryChangeEventInit where
  (NavigationCurrentEntryChangeEventInit a) == (NavigationCurrentEntryChangeEventInit b) = js_eq a b

instance PToJSVal NavigationCurrentEntryChangeEventInit where
  pToJSVal = unNavigationCurrentEntryChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationCurrentEntryChangeEventInit where
  pFromJSVal = NavigationCurrentEntryChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationCurrentEntryChangeEventInit where
  toJSVal = return . unNavigationCurrentEntryChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationCurrentEntryChangeEventInit where
  fromJSVal = return . fmap NavigationCurrentEntryChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationCurrentEntryChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit NavigationCurrentEntryChangeEventInit

instance IsGObject NavigationCurrentEntryChangeEventInit where
  typeGType _ = gTypeNavigationCurrentEntryChangeEventInit
  {-# INLINE typeGType #-}

noNavigationCurrentEntryChangeEventInit :: Maybe NavigationCurrentEntryChangeEventInit
noNavigationCurrentEntryChangeEventInit = Nothing
{-# INLINE noNavigationCurrentEntryChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationCurrentEntryChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationDestination" (html).
newtype NavigationDestination = NavigationDestination { unNavigationDestination :: JSVal }

instance Eq NavigationDestination where
  (NavigationDestination a) == (NavigationDestination b) = js_eq a b

instance PToJSVal NavigationDestination where
  pToJSVal = unNavigationDestination
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationDestination where
  pFromJSVal = NavigationDestination
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationDestination where
  toJSVal = return . unNavigationDestination
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationDestination where
  fromJSVal = return . fmap NavigationDestination . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationDestination
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationDestination where
  typeGType _ = gTypeNavigationDestination
  {-# INLINE typeGType #-}

noNavigationDestination :: Maybe NavigationDestination
noNavigationDestination = Nothing
{-# INLINE noNavigationDestination #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationDestination\"])" gTypeNavigationDestination :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationEvent" (css-nav-1).
newtype NavigationEvent = NavigationEvent { unNavigationEvent :: JSVal }

instance Eq NavigationEvent where
  (NavigationEvent a) == (NavigationEvent b) = js_eq a b

instance PToJSVal NavigationEvent where
  pToJSVal = unNavigationEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationEvent where
  pFromJSVal = NavigationEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationEvent where
  toJSVal = return . unNavigationEvent
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationEvent where
  fromJSVal = return . fmap NavigationEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent NavigationEvent
instance IsEvent NavigationEvent

instance IsGObject NavigationEvent where
  typeGType _ = gTypeNavigationEvent
  {-# INLINE typeGType #-}

noNavigationEvent :: Maybe NavigationEvent
noNavigationEvent = Nothing
{-# INLINE noNavigationEvent #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationEvent\"])" gTypeNavigationEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationHistoryEntry" (html).
newtype NavigationHistoryEntry = NavigationHistoryEntry { unNavigationHistoryEntry :: JSVal }

instance Eq NavigationHistoryEntry where
  (NavigationHistoryEntry a) == (NavigationHistoryEntry b) = js_eq a b

instance PToJSVal NavigationHistoryEntry where
  pToJSVal = unNavigationHistoryEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationHistoryEntry where
  pFromJSVal = NavigationHistoryEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationHistoryEntry where
  toJSVal = return . unNavigationHistoryEntry
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationHistoryEntry where
  fromJSVal = return . fmap NavigationHistoryEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationHistoryEntry
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget NavigationHistoryEntry

instance IsGObject NavigationHistoryEntry where
  typeGType _ = gTypeNavigationHistoryEntry
  {-# INLINE typeGType #-}

noNavigationHistoryEntry :: Maybe NavigationHistoryEntry
noNavigationHistoryEntry = Nothing
{-# INLINE noNavigationHistoryEntry #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationHistoryEntry\"])" gTypeNavigationHistoryEntry :: GType

-- | Dictionary NavigationInterceptOptions (html)
newtype NavigationInterceptOptions = NavigationInterceptOptions { unNavigationInterceptOptions :: JSVal }

instance Eq NavigationInterceptOptions where
  (NavigationInterceptOptions a) == (NavigationInterceptOptions b) = js_eq a b

instance PToJSVal NavigationInterceptOptions where
  pToJSVal = unNavigationInterceptOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationInterceptOptions where
  pFromJSVal = NavigationInterceptOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationInterceptOptions where
  toJSVal = return . unNavigationInterceptOptions
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationInterceptOptions where
  fromJSVal = return . fmap NavigationInterceptOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationInterceptOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationInterceptOptions where
  typeGType _ = gTypeNavigationInterceptOptions
  {-# INLINE typeGType #-}

noNavigationInterceptOptions :: Maybe NavigationInterceptOptions
noNavigationInterceptOptions = Nothing
{-# INLINE noNavigationInterceptOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationInterceptOptions :: GType

-- | Dictionary NavigationNavigateOptions (html)
newtype NavigationNavigateOptions = NavigationNavigateOptions { unNavigationNavigateOptions :: JSVal }

instance Eq NavigationNavigateOptions where
  (NavigationNavigateOptions a) == (NavigationNavigateOptions b) = js_eq a b

instance PToJSVal NavigationNavigateOptions where
  pToJSVal = unNavigationNavigateOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationNavigateOptions where
  pFromJSVal = NavigationNavigateOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationNavigateOptions where
  toJSVal = return . unNavigationNavigateOptions
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationNavigateOptions where
  fromJSVal = return . fmap NavigationNavigateOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationNavigateOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsNavigationOptions NavigationNavigateOptions

instance IsGObject NavigationNavigateOptions where
  typeGType _ = gTypeNavigationNavigateOptions
  {-# INLINE typeGType #-}

noNavigationNavigateOptions :: Maybe NavigationNavigateOptions
noNavigationNavigateOptions = Nothing
{-# INLINE noNavigationNavigateOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationNavigateOptions :: GType

-- | Dictionary NavigationOptions (html)
newtype NavigationOptions = NavigationOptions { unNavigationOptions :: JSVal }

instance Eq NavigationOptions where
  (NavigationOptions a) == (NavigationOptions b) = js_eq a b

instance PToJSVal NavigationOptions where
  pToJSVal = unNavigationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationOptions where
  pFromJSVal = NavigationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationOptions where
  toJSVal = return . unNavigationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationOptions where
  fromJSVal = return . fmap NavigationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigationOptions o
toNavigationOptions :: IsNavigationOptions o => o -> NavigationOptions
toNavigationOptions = NavigationOptions . coerce

instance IsNavigationOptions NavigationOptions

instance IsGObject NavigationOptions where
  typeGType _ = gTypeNavigationOptions
  {-# INLINE typeGType #-}

noNavigationOptions :: Maybe NavigationOptions
noNavigationOptions = Nothing
{-# INLINE noNavigationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationPrecommitController" (html).
newtype NavigationPrecommitController = NavigationPrecommitController { unNavigationPrecommitController :: JSVal }

instance Eq NavigationPrecommitController where
  (NavigationPrecommitController a) == (NavigationPrecommitController b) = js_eq a b

instance PToJSVal NavigationPrecommitController where
  pToJSVal = unNavigationPrecommitController
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationPrecommitController where
  pFromJSVal = NavigationPrecommitController
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationPrecommitController where
  toJSVal = return . unNavigationPrecommitController
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationPrecommitController where
  fromJSVal = return . fmap NavigationPrecommitController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationPrecommitController
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationPrecommitController where
  typeGType _ = gTypeNavigationPrecommitController
  {-# INLINE typeGType #-}

noNavigationPrecommitController :: Maybe NavigationPrecommitController
noNavigationPrecommitController = Nothing
{-# INLINE noNavigationPrecommitController #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationPrecommitController\"])" gTypeNavigationPrecommitController :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationPreloadManager" (service-workers).
newtype NavigationPreloadManager = NavigationPreloadManager { unNavigationPreloadManager :: JSVal }

instance Eq NavigationPreloadManager where
  (NavigationPreloadManager a) == (NavigationPreloadManager b) = js_eq a b

instance PToJSVal NavigationPreloadManager where
  pToJSVal = unNavigationPreloadManager
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationPreloadManager where
  pFromJSVal = NavigationPreloadManager
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationPreloadManager where
  toJSVal = return . unNavigationPreloadManager
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationPreloadManager where
  fromJSVal = return . fmap NavigationPreloadManager . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationPreloadManager
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationPreloadManager where
  typeGType _ = gTypeNavigationPreloadManager
  {-# INLINE typeGType #-}

noNavigationPreloadManager :: Maybe NavigationPreloadManager
noNavigationPreloadManager = Nothing
{-# INLINE noNavigationPreloadManager #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationPreloadManager\"])" gTypeNavigationPreloadManager :: GType

-- | Dictionary NavigationPreloadState (service-workers)
newtype NavigationPreloadState = NavigationPreloadState { unNavigationPreloadState :: JSVal }

instance Eq NavigationPreloadState where
  (NavigationPreloadState a) == (NavigationPreloadState b) = js_eq a b

instance PToJSVal NavigationPreloadState where
  pToJSVal = unNavigationPreloadState
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationPreloadState where
  pFromJSVal = NavigationPreloadState
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationPreloadState where
  toJSVal = return . unNavigationPreloadState
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationPreloadState where
  fromJSVal = return . fmap NavigationPreloadState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationPreloadState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationPreloadState where
  typeGType _ = gTypeNavigationPreloadState
  {-# INLINE typeGType #-}

noNavigationPreloadState :: Maybe NavigationPreloadState
noNavigationPreloadState = Nothing
{-# INLINE noNavigationPreloadState #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationPreloadState :: GType

-- | Dictionary NavigationReloadOptions (html)
newtype NavigationReloadOptions = NavigationReloadOptions { unNavigationReloadOptions :: JSVal }

instance Eq NavigationReloadOptions where
  (NavigationReloadOptions a) == (NavigationReloadOptions b) = js_eq a b

instance PToJSVal NavigationReloadOptions where
  pToJSVal = unNavigationReloadOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationReloadOptions where
  pFromJSVal = NavigationReloadOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationReloadOptions where
  toJSVal = return . unNavigationReloadOptions
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationReloadOptions where
  fromJSVal = return . fmap NavigationReloadOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationReloadOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsNavigationOptions NavigationReloadOptions

instance IsGObject NavigationReloadOptions where
  typeGType _ = gTypeNavigationReloadOptions
  {-# INLINE typeGType #-}

noNavigationReloadOptions :: Maybe NavigationReloadOptions
noNavigationReloadOptions = Nothing
{-# INLINE noNavigationReloadOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationReloadOptions :: GType

-- | Dictionary NavigationResult (html)
newtype NavigationResult = NavigationResult { unNavigationResult :: JSVal }

instance Eq NavigationResult where
  (NavigationResult a) == (NavigationResult b) = js_eq a b

instance PToJSVal NavigationResult where
  pToJSVal = unNavigationResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationResult where
  pFromJSVal = NavigationResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationResult where
  toJSVal = return . unNavigationResult
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationResult where
  fromJSVal = return . fmap NavigationResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationResult where
  typeGType _ = gTypeNavigationResult
  {-# INLINE typeGType #-}

noNavigationResult :: Maybe NavigationResult
noNavigationResult = Nothing
{-# INLINE noNavigationResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigationTransition" (html).
newtype NavigationTransition = NavigationTransition { unNavigationTransition :: JSVal }

instance Eq NavigationTransition where
  (NavigationTransition a) == (NavigationTransition b) = js_eq a b

instance PToJSVal NavigationTransition where
  pToJSVal = unNavigationTransition
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationTransition where
  pFromJSVal = NavigationTransition
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationTransition where
  toJSVal = return . unNavigationTransition
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationTransition where
  fromJSVal = return . fmap NavigationTransition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationTransition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationTransition where
  typeGType _ = gTypeNavigationTransition
  {-# INLINE typeGType #-}

noNavigationTransition :: Maybe NavigationTransition
noNavigationTransition = Nothing
{-# INLINE noNavigationTransition #-}

foreign import javascript unsafe "(() => globalThis[\"NavigationTransition\"])" gTypeNavigationTransition :: GType

-- | Dictionary NavigationUpdateCurrentEntryOptions (html)
newtype NavigationUpdateCurrentEntryOptions = NavigationUpdateCurrentEntryOptions { unNavigationUpdateCurrentEntryOptions :: JSVal }

instance Eq NavigationUpdateCurrentEntryOptions where
  (NavigationUpdateCurrentEntryOptions a) == (NavigationUpdateCurrentEntryOptions b) = js_eq a b

instance PToJSVal NavigationUpdateCurrentEntryOptions where
  pToJSVal = unNavigationUpdateCurrentEntryOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigationUpdateCurrentEntryOptions where
  pFromJSVal = NavigationUpdateCurrentEntryOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigationUpdateCurrentEntryOptions where
  toJSVal = return . unNavigationUpdateCurrentEntryOptions
  {-# INLINE toJSVal #-}

instance FromJSVal NavigationUpdateCurrentEntryOptions where
  fromJSVal = return . fmap NavigationUpdateCurrentEntryOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigationUpdateCurrentEntryOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigationUpdateCurrentEntryOptions where
  typeGType _ = gTypeNavigationUpdateCurrentEntryOptions
  {-# INLINE typeGType #-}

noNavigationUpdateCurrentEntryOptions :: Maybe NavigationUpdateCurrentEntryOptions
noNavigationUpdateCurrentEntryOptions = Nothing
{-# INLINE noNavigationUpdateCurrentEntryOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigationUpdateCurrentEntryOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Navigator" (html).
newtype Navigator = Navigator { unNavigator :: JSVal }

instance Eq Navigator where
  (Navigator a) == (Navigator b) = js_eq a b

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 = return . fmap Navigator . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Navigator
  {-# INLINE fromJSValUnchecked #-}

instance IsNavigatorAutomationInformation Navigator
instance IsNavigatorBadge Navigator
instance IsNavigatorConcurrentHardware Navigator
instance IsNavigatorContentUtils Navigator
instance IsNavigatorCookies Navigator
instance IsNavigatorGPU Navigator
instance IsNavigatorID Navigator
instance IsNavigatorLanguage Navigator
instance IsNavigatorLocks Navigator
instance IsNavigatorOnLine Navigator
instance IsNavigatorPlugins Navigator
instance IsNavigatorStorage Navigator

instance IsGObject Navigator where
  typeGType _ = gTypeNavigator
  {-# INLINE typeGType #-}

noNavigator :: Maybe Navigator
noNavigator = Nothing
{-# INLINE noNavigator #-}

foreign import javascript unsafe "(() => globalThis[\"Navigator\"])" gTypeNavigator :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorAutomationInformation" (webdriver2).
newtype NavigatorAutomationInformation = NavigatorAutomationInformation { unNavigatorAutomationInformation :: JSVal }

instance Eq NavigatorAutomationInformation where
  (NavigatorAutomationInformation a) == (NavigatorAutomationInformation b) = js_eq a b

instance PToJSVal NavigatorAutomationInformation where
  pToJSVal = unNavigatorAutomationInformation
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorAutomationInformation where
  pFromJSVal = NavigatorAutomationInformation
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorAutomationInformation where
  toJSVal = return . unNavigatorAutomationInformation
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorAutomationInformation where
  fromJSVal = return . fmap NavigatorAutomationInformation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorAutomationInformation
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorAutomationInformation o
toNavigatorAutomationInformation :: IsNavigatorAutomationInformation o => o -> NavigatorAutomationInformation
toNavigatorAutomationInformation = NavigatorAutomationInformation . coerce

instance IsNavigatorAutomationInformation NavigatorAutomationInformation

instance IsGObject NavigatorAutomationInformation where
  typeGType _ = gTypeNavigatorAutomationInformation
  {-# INLINE typeGType #-}

noNavigatorAutomationInformation :: Maybe NavigatorAutomationInformation
noNavigatorAutomationInformation = Nothing
{-# INLINE noNavigatorAutomationInformation #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorAutomationInformation :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorBadge" (badging).
newtype NavigatorBadge = NavigatorBadge { unNavigatorBadge :: JSVal }

instance Eq NavigatorBadge where
  (NavigatorBadge a) == (NavigatorBadge b) = js_eq a b

instance PToJSVal NavigatorBadge where
  pToJSVal = unNavigatorBadge
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorBadge where
  pFromJSVal = NavigatorBadge
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorBadge where
  toJSVal = return . unNavigatorBadge
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorBadge where
  fromJSVal = return . fmap NavigatorBadge . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorBadge
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorBadge o
toNavigatorBadge :: IsNavigatorBadge o => o -> NavigatorBadge
toNavigatorBadge = NavigatorBadge . coerce

instance IsNavigatorBadge NavigatorBadge

instance IsGObject NavigatorBadge where
  typeGType _ = gTypeNavigatorBadge
  {-# INLINE typeGType #-}

noNavigatorBadge :: Maybe NavigatorBadge
noNavigatorBadge = Nothing
{-# INLINE noNavigatorBadge #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorBadge :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorConcurrentHardware" (html).
newtype NavigatorConcurrentHardware = NavigatorConcurrentHardware { unNavigatorConcurrentHardware :: JSVal }

instance Eq NavigatorConcurrentHardware where
  (NavigatorConcurrentHardware a) == (NavigatorConcurrentHardware b) = js_eq a b

instance PToJSVal NavigatorConcurrentHardware where
  pToJSVal = unNavigatorConcurrentHardware
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorConcurrentHardware where
  pFromJSVal = NavigatorConcurrentHardware
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorConcurrentHardware where
  toJSVal = return . unNavigatorConcurrentHardware
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorConcurrentHardware where
  fromJSVal = return . fmap NavigatorConcurrentHardware . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorConcurrentHardware
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorConcurrentHardware o
toNavigatorConcurrentHardware :: IsNavigatorConcurrentHardware o => o -> NavigatorConcurrentHardware
toNavigatorConcurrentHardware = NavigatorConcurrentHardware . coerce

instance IsNavigatorConcurrentHardware NavigatorConcurrentHardware

instance IsGObject NavigatorConcurrentHardware where
  typeGType _ = gTypeNavigatorConcurrentHardware
  {-# INLINE typeGType #-}

noNavigatorConcurrentHardware :: Maybe NavigatorConcurrentHardware
noNavigatorConcurrentHardware = Nothing
{-# INLINE noNavigatorConcurrentHardware #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorConcurrentHardware :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorContentUtils" (html).
newtype NavigatorContentUtils = NavigatorContentUtils { unNavigatorContentUtils :: JSVal }

instance Eq NavigatorContentUtils where
  (NavigatorContentUtils a) == (NavigatorContentUtils b) = js_eq a b

instance PToJSVal NavigatorContentUtils where
  pToJSVal = unNavigatorContentUtils
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorContentUtils where
  pFromJSVal = NavigatorContentUtils
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorContentUtils where
  toJSVal = return . unNavigatorContentUtils
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorContentUtils where
  fromJSVal = return . fmap NavigatorContentUtils . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorContentUtils
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorContentUtils o
toNavigatorContentUtils :: IsNavigatorContentUtils o => o -> NavigatorContentUtils
toNavigatorContentUtils = NavigatorContentUtils . coerce

instance IsNavigatorContentUtils NavigatorContentUtils

instance IsGObject NavigatorContentUtils where
  typeGType _ = gTypeNavigatorContentUtils
  {-# INLINE typeGType #-}

noNavigatorContentUtils :: Maybe NavigatorContentUtils
noNavigatorContentUtils = Nothing
{-# INLINE noNavigatorContentUtils #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorContentUtils :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorCookies" (html).
newtype NavigatorCookies = NavigatorCookies { unNavigatorCookies :: JSVal }

instance Eq NavigatorCookies where
  (NavigatorCookies a) == (NavigatorCookies b) = js_eq a b

instance PToJSVal NavigatorCookies where
  pToJSVal = unNavigatorCookies
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorCookies where
  pFromJSVal = NavigatorCookies
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorCookies where
  toJSVal = return . unNavigatorCookies
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorCookies where
  fromJSVal = return . fmap NavigatorCookies . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorCookies
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorCookies o
toNavigatorCookies :: IsNavigatorCookies o => o -> NavigatorCookies
toNavigatorCookies = NavigatorCookies . coerce

instance IsNavigatorCookies NavigatorCookies

instance IsGObject NavigatorCookies where
  typeGType _ = gTypeNavigatorCookies
  {-# INLINE typeGType #-}

noNavigatorCookies :: Maybe NavigatorCookies
noNavigatorCookies = Nothing
{-# INLINE noNavigatorCookies #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorCookies :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorGPU" (webgpu).
newtype NavigatorGPU = NavigatorGPU { unNavigatorGPU :: JSVal }

instance Eq NavigatorGPU where
  (NavigatorGPU a) == (NavigatorGPU b) = js_eq a b

instance PToJSVal NavigatorGPU where
  pToJSVal = unNavigatorGPU
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorGPU where
  pFromJSVal = NavigatorGPU
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorGPU where
  toJSVal = return . unNavigatorGPU
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorGPU where
  fromJSVal = return . fmap NavigatorGPU . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorGPU
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorGPU o
toNavigatorGPU :: IsNavigatorGPU o => o -> NavigatorGPU
toNavigatorGPU = NavigatorGPU . coerce

instance IsNavigatorGPU NavigatorGPU

instance IsGObject NavigatorGPU where
  typeGType _ = gTypeNavigatorGPU
  {-# INLINE typeGType #-}

noNavigatorGPU :: Maybe NavigatorGPU
noNavigatorGPU = Nothing
{-# INLINE noNavigatorGPU #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorGPU :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorID" (html).
newtype NavigatorID = NavigatorID { unNavigatorID :: JSVal }

instance Eq NavigatorID where
  (NavigatorID a) == (NavigatorID b) = js_eq a b

instance PToJSVal NavigatorID where
  pToJSVal = unNavigatorID
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorID where
  pFromJSVal = NavigatorID
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorID where
  toJSVal = return . unNavigatorID
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorID where
  fromJSVal = return . fmap NavigatorID . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorID
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorID o
toNavigatorID :: IsNavigatorID o => o -> NavigatorID
toNavigatorID = NavigatorID . coerce

instance IsNavigatorID NavigatorID

instance IsGObject NavigatorID where
  typeGType _ = gTypeNavigatorID
  {-# INLINE typeGType #-}

noNavigatorID :: Maybe NavigatorID
noNavigatorID = Nothing
{-# INLINE noNavigatorID #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorID :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorLanguage" (html).
newtype NavigatorLanguage = NavigatorLanguage { unNavigatorLanguage :: JSVal }

instance Eq NavigatorLanguage where
  (NavigatorLanguage a) == (NavigatorLanguage b) = js_eq a b

instance PToJSVal NavigatorLanguage where
  pToJSVal = unNavigatorLanguage
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorLanguage where
  pFromJSVal = NavigatorLanguage
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorLanguage where
  toJSVal = return . unNavigatorLanguage
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorLanguage where
  fromJSVal = return . fmap NavigatorLanguage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorLanguage
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorLanguage o
toNavigatorLanguage :: IsNavigatorLanguage o => o -> NavigatorLanguage
toNavigatorLanguage = NavigatorLanguage . coerce

instance IsNavigatorLanguage NavigatorLanguage

instance IsGObject NavigatorLanguage where
  typeGType _ = gTypeNavigatorLanguage
  {-# INLINE typeGType #-}

noNavigatorLanguage :: Maybe NavigatorLanguage
noNavigatorLanguage = Nothing
{-# INLINE noNavigatorLanguage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorLanguage :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorLocks" (web-locks).
newtype NavigatorLocks = NavigatorLocks { unNavigatorLocks :: JSVal }

instance Eq NavigatorLocks where
  (NavigatorLocks a) == (NavigatorLocks b) = js_eq a b

instance PToJSVal NavigatorLocks where
  pToJSVal = unNavigatorLocks
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorLocks where
  pFromJSVal = NavigatorLocks
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorLocks where
  toJSVal = return . unNavigatorLocks
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorLocks where
  fromJSVal = return . fmap NavigatorLocks . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorLocks
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorLocks o
toNavigatorLocks :: IsNavigatorLocks o => o -> NavigatorLocks
toNavigatorLocks = NavigatorLocks . coerce

instance IsNavigatorLocks NavigatorLocks

instance IsGObject NavigatorLocks where
  typeGType _ = gTypeNavigatorLocks
  {-# INLINE typeGType #-}

noNavigatorLocks :: Maybe NavigatorLocks
noNavigatorLocks = Nothing
{-# INLINE noNavigatorLocks #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorLocks :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorLogin" (login-status).
newtype NavigatorLogin = NavigatorLogin { unNavigatorLogin :: JSVal }

instance Eq NavigatorLogin where
  (NavigatorLogin a) == (NavigatorLogin b) = js_eq a b

instance PToJSVal NavigatorLogin where
  pToJSVal = unNavigatorLogin
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorLogin where
  pFromJSVal = NavigatorLogin
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorLogin where
  toJSVal = return . unNavigatorLogin
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorLogin where
  fromJSVal = return . fmap NavigatorLogin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorLogin
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NavigatorLogin where
  typeGType _ = gTypeNavigatorLogin
  {-# INLINE typeGType #-}

noNavigatorLogin :: Maybe NavigatorLogin
noNavigatorLogin = Nothing
{-# INLINE noNavigatorLogin #-}

foreign import javascript unsafe "(() => globalThis[\"NavigatorLogin\"])" gTypeNavigatorLogin :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorOnLine" (html).
newtype NavigatorOnLine = NavigatorOnLine { unNavigatorOnLine :: JSVal }

instance Eq NavigatorOnLine where
  (NavigatorOnLine a) == (NavigatorOnLine b) = js_eq a b

instance PToJSVal NavigatorOnLine where
  pToJSVal = unNavigatorOnLine
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorOnLine where
  pFromJSVal = NavigatorOnLine
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorOnLine where
  toJSVal = return . unNavigatorOnLine
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorOnLine where
  fromJSVal = return . fmap NavigatorOnLine . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorOnLine
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorOnLine o
toNavigatorOnLine :: IsNavigatorOnLine o => o -> NavigatorOnLine
toNavigatorOnLine = NavigatorOnLine . coerce

instance IsNavigatorOnLine NavigatorOnLine

instance IsGObject NavigatorOnLine where
  typeGType _ = gTypeNavigatorOnLine
  {-# INLINE typeGType #-}

noNavigatorOnLine :: Maybe NavigatorOnLine
noNavigatorOnLine = Nothing
{-# INLINE noNavigatorOnLine #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorOnLine :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorPlugins" (html).
newtype NavigatorPlugins = NavigatorPlugins { unNavigatorPlugins :: JSVal }

instance Eq NavigatorPlugins where
  (NavigatorPlugins a) == (NavigatorPlugins b) = js_eq a b

instance PToJSVal NavigatorPlugins where
  pToJSVal = unNavigatorPlugins
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorPlugins where
  pFromJSVal = NavigatorPlugins
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorPlugins where
  toJSVal = return . unNavigatorPlugins
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorPlugins where
  fromJSVal = return . fmap NavigatorPlugins . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorPlugins
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorPlugins o
toNavigatorPlugins :: IsNavigatorPlugins o => o -> NavigatorPlugins
toNavigatorPlugins = NavigatorPlugins . coerce

instance IsNavigatorPlugins NavigatorPlugins

instance IsGObject NavigatorPlugins where
  typeGType _ = gTypeNavigatorPlugins
  {-# INLINE typeGType #-}

noNavigatorPlugins :: Maybe NavigatorPlugins
noNavigatorPlugins = Nothing
{-# INLINE noNavigatorPlugins #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorPlugins :: GType

-- | Functions for this interface are in "GHCJS.DOM.NavigatorStorage" (storage).
newtype NavigatorStorage = NavigatorStorage { unNavigatorStorage :: JSVal }

instance Eq NavigatorStorage where
  (NavigatorStorage a) == (NavigatorStorage b) = js_eq a b

instance PToJSVal NavigatorStorage where
  pToJSVal = unNavigatorStorage
  {-# INLINE pToJSVal #-}

instance PFromJSVal NavigatorStorage where
  pFromJSVal = NavigatorStorage
  {-# INLINE pFromJSVal #-}

instance ToJSVal NavigatorStorage where
  toJSVal = return . unNavigatorStorage
  {-# INLINE toJSVal #-}

instance FromJSVal NavigatorStorage where
  fromJSVal = return . fmap NavigatorStorage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NavigatorStorage
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNavigatorStorage o
toNavigatorStorage :: IsNavigatorStorage o => o -> NavigatorStorage
toNavigatorStorage = NavigatorStorage . coerce

instance IsNavigatorStorage NavigatorStorage

instance IsGObject NavigatorStorage where
  typeGType _ = gTypeNavigatorStorage
  {-# INLINE typeGType #-}

noNavigatorStorage :: Maybe NavigatorStorage
noNavigatorStorage = Nothing
{-# INLINE noNavigatorStorage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNavigatorStorage :: GType

-- | Functions for this interface are in "GHCJS.DOM.Node" (dom).
newtype Node = Node { unNode :: JSVal }

instance Eq Node where
  (Node a) == (Node b) = js_eq a b

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 = return . fmap Node . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Node
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject 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 #-}

noNode :: Maybe Node
noNode = Nothing
{-# INLINE noNode #-}

foreign import javascript unsafe "(() => globalThis[\"Node\"])" gTypeNode :: GType

-- | Functions for this interface are in "GHCJS.DOM.NodeIterator" (dom).
newtype NodeIterator = NodeIterator { unNodeIterator :: JSVal }

instance Eq NodeIterator where
  (NodeIterator a) == (NodeIterator b) = js_eq a b

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 = return . fmap NodeIterator . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NodeIterator
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NodeIterator where
  typeGType _ = gTypeNodeIterator
  {-# INLINE typeGType #-}

noNodeIterator :: Maybe NodeIterator
noNodeIterator = Nothing
{-# INLINE noNodeIterator #-}

foreign import javascript unsafe "(() => globalThis[\"NodeIterator\"])" gTypeNodeIterator :: GType

-- | Functions for this interface are in "GHCJS.DOM.NodeList" (dom).
newtype NodeList = NodeList { unNodeList :: JSVal }

instance Eq NodeList where
  (NodeList a) == (NodeList b) = js_eq a b

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 = return . fmap NodeList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NodeList
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNodeList o
toNodeList :: IsNodeList o => o -> NodeList
toNodeList = NodeList . coerce

instance IsNodeList NodeList

instance IsGObject NodeList where
  typeGType _ = gTypeNodeList
  {-# INLINE typeGType #-}

noNodeList :: Maybe NodeList
noNodeList = Nothing
{-# INLINE noNodeList #-}

foreign import javascript unsafe "(() => globalThis[\"NodeList\"])" gTypeNodeList :: GType

-- | Functions for this interface are in "GHCJS.DOM.NonDocumentTypeChildNode" (dom).
newtype NonDocumentTypeChildNode = NonDocumentTypeChildNode { unNonDocumentTypeChildNode :: JSVal }

instance Eq NonDocumentTypeChildNode where
  (NonDocumentTypeChildNode a) == (NonDocumentTypeChildNode b) = js_eq a b

instance PToJSVal NonDocumentTypeChildNode where
  pToJSVal = unNonDocumentTypeChildNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal NonDocumentTypeChildNode where
  pFromJSVal = NonDocumentTypeChildNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal NonDocumentTypeChildNode where
  toJSVal = return . unNonDocumentTypeChildNode
  {-# INLINE toJSVal #-}

instance FromJSVal NonDocumentTypeChildNode where
  fromJSVal = return . fmap NonDocumentTypeChildNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NonDocumentTypeChildNode
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNonDocumentTypeChildNode o
toNonDocumentTypeChildNode :: IsNonDocumentTypeChildNode o => o -> NonDocumentTypeChildNode
toNonDocumentTypeChildNode = NonDocumentTypeChildNode . coerce

instance IsNonDocumentTypeChildNode NonDocumentTypeChildNode

instance IsGObject NonDocumentTypeChildNode where
  typeGType _ = gTypeNonDocumentTypeChildNode
  {-# INLINE typeGType #-}

noNonDocumentTypeChildNode :: Maybe NonDocumentTypeChildNode
noNonDocumentTypeChildNode = Nothing
{-# INLINE noNonDocumentTypeChildNode #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNonDocumentTypeChildNode :: GType

-- | Functions for this interface are in "GHCJS.DOM.NonElementParentNode" (dom).
newtype NonElementParentNode = NonElementParentNode { unNonElementParentNode :: JSVal }

instance Eq NonElementParentNode where
  (NonElementParentNode a) == (NonElementParentNode b) = js_eq a b

instance PToJSVal NonElementParentNode where
  pToJSVal = unNonElementParentNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal NonElementParentNode where
  pFromJSVal = NonElementParentNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal NonElementParentNode where
  toJSVal = return . unNonElementParentNode
  {-# INLINE toJSVal #-}

instance FromJSVal NonElementParentNode where
  fromJSVal = return . fmap NonElementParentNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NonElementParentNode
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsNonElementParentNode o
toNonElementParentNode :: IsNonElementParentNode o => o -> NonElementParentNode
toNonElementParentNode = NonElementParentNode . coerce

instance IsNonElementParentNode NonElementParentNode

instance IsGObject NonElementParentNode where
  typeGType _ = gTypeNonElementParentNode
  {-# INLINE typeGType #-}

noNonElementParentNode :: Maybe NonElementParentNode
noNonElementParentNode = Nothing
{-# INLINE noNonElementParentNode #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNonElementParentNode :: GType

-- | Functions for this interface are in "GHCJS.DOM.Notification" (notifications).
newtype Notification = Notification { unNotification :: JSVal }

instance Eq Notification where
  (Notification a) == (Notification b) = js_eq a b

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 = return . fmap Notification . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Notification
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget Notification

instance IsGObject Notification where
  typeGType _ = gTypeNotification
  {-# INLINE typeGType #-}

noNotification :: Maybe Notification
noNotification = Nothing
{-# INLINE noNotification #-}

foreign import javascript unsafe "(() => globalThis[\"Notification\"])" gTypeNotification :: GType

-- | Dictionary NotificationAction (notifications)
newtype NotificationAction = NotificationAction { unNotificationAction :: JSVal }

instance Eq NotificationAction where
  (NotificationAction a) == (NotificationAction b) = js_eq a b

instance PToJSVal NotificationAction where
  pToJSVal = unNotificationAction
  {-# INLINE pToJSVal #-}

instance PFromJSVal NotificationAction where
  pFromJSVal = NotificationAction
  {-# INLINE pFromJSVal #-}

instance ToJSVal NotificationAction where
  toJSVal = return . unNotificationAction
  {-# INLINE toJSVal #-}

instance FromJSVal NotificationAction where
  fromJSVal = return . fmap NotificationAction . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NotificationAction
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NotificationAction where
  typeGType _ = gTypeNotificationAction
  {-# INLINE typeGType #-}

noNotificationAction :: Maybe NotificationAction
noNotificationAction = Nothing
{-# INLINE noNotificationAction #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNotificationAction :: GType

-- | Functions for this interface are in "GHCJS.DOM.NotificationEvent" (notifications).
newtype NotificationEvent = NotificationEvent { unNotificationEvent :: JSVal }

instance Eq NotificationEvent where
  (NotificationEvent a) == (NotificationEvent b) = js_eq a b

instance PToJSVal NotificationEvent where
  pToJSVal = unNotificationEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal NotificationEvent where
  pFromJSVal = NotificationEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal NotificationEvent where
  toJSVal = return . unNotificationEvent
  {-# INLINE toJSVal #-}

instance FromJSVal NotificationEvent where
  fromJSVal = return . fmap NotificationEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NotificationEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent NotificationEvent
instance IsEvent NotificationEvent

instance IsGObject NotificationEvent where
  typeGType _ = gTypeNotificationEvent
  {-# INLINE typeGType #-}

noNotificationEvent :: Maybe NotificationEvent
noNotificationEvent = Nothing
{-# INLINE noNotificationEvent #-}

foreign import javascript unsafe "(() => globalThis[\"NotificationEvent\"])" gTypeNotificationEvent :: GType

-- | Dictionary NotificationEventInit (notifications)
newtype NotificationEventInit = NotificationEventInit { unNotificationEventInit :: JSVal }

instance Eq NotificationEventInit where
  (NotificationEventInit a) == (NotificationEventInit b) = js_eq a b

instance PToJSVal NotificationEventInit where
  pToJSVal = unNotificationEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal NotificationEventInit where
  pFromJSVal = NotificationEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal NotificationEventInit where
  toJSVal = return . unNotificationEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal NotificationEventInit where
  fromJSVal = return . fmap NotificationEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NotificationEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEventInit NotificationEventInit
instance IsEventInit NotificationEventInit

instance IsGObject NotificationEventInit where
  typeGType _ = gTypeNotificationEventInit
  {-# INLINE typeGType #-}

noNotificationEventInit :: Maybe NotificationEventInit
noNotificationEventInit = Nothing
{-# INLINE noNotificationEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNotificationEventInit :: GType

-- | Dictionary NotificationOptions (notifications)
newtype NotificationOptions = NotificationOptions { unNotificationOptions :: JSVal }

instance Eq NotificationOptions where
  (NotificationOptions a) == (NotificationOptions b) = js_eq a b

instance PToJSVal NotificationOptions where
  pToJSVal = unNotificationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal NotificationOptions where
  pFromJSVal = NotificationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal NotificationOptions where
  toJSVal = return . unNotificationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal NotificationOptions where
  fromJSVal = return . fmap NotificationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . NotificationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject NotificationOptions where
  typeGType _ = gTypeNotificationOptions
  {-# INLINE typeGType #-}

noNotificationOptions :: Maybe NotificationOptions
noNotificationOptions = Nothing
{-# INLINE noNotificationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeNotificationOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_draw_buffers_indexed" (OES_draw_buffers_indexed).
newtype OES_draw_buffers_indexed = OES_draw_buffers_indexed { unOES_draw_buffers_indexed :: JSVal }

instance Eq OES_draw_buffers_indexed where
  (OES_draw_buffers_indexed a) == (OES_draw_buffers_indexed b) = js_eq a b

instance PToJSVal OES_draw_buffers_indexed where
  pToJSVal = unOES_draw_buffers_indexed
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_draw_buffers_indexed where
  pFromJSVal = OES_draw_buffers_indexed
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_draw_buffers_indexed where
  toJSVal = return . unOES_draw_buffers_indexed
  {-# INLINE toJSVal #-}

instance FromJSVal OES_draw_buffers_indexed where
  fromJSVal = return . fmap OES_draw_buffers_indexed . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_draw_buffers_indexed
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_draw_buffers_indexed where
  typeGType _ = gTypeOES_draw_buffers_indexed
  {-# INLINE typeGType #-}

noOES_draw_buffers_indexed :: Maybe OES_draw_buffers_indexed
noOES_draw_buffers_indexed = Nothing
{-# INLINE noOES_draw_buffers_indexed #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_draw_buffers_indexed :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_element_index_uint" (OES_element_index_uint).
newtype OES_element_index_uint = OES_element_index_uint { unOES_element_index_uint :: JSVal }

instance Eq OES_element_index_uint where
  (OES_element_index_uint a) == (OES_element_index_uint b) = js_eq a b

instance PToJSVal OES_element_index_uint where
  pToJSVal = unOES_element_index_uint
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_element_index_uint where
  pFromJSVal = OES_element_index_uint
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_element_index_uint where
  toJSVal = return . unOES_element_index_uint
  {-# INLINE toJSVal #-}

instance FromJSVal OES_element_index_uint where
  fromJSVal = return . fmap OES_element_index_uint . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_element_index_uint
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_element_index_uint where
  typeGType _ = gTypeOES_element_index_uint
  {-# INLINE typeGType #-}

noOES_element_index_uint :: Maybe OES_element_index_uint
noOES_element_index_uint = Nothing
{-# INLINE noOES_element_index_uint #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_element_index_uint :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_fbo_render_mipmap" (OES_fbo_render_mipmap).
newtype OES_fbo_render_mipmap = OES_fbo_render_mipmap { unOES_fbo_render_mipmap :: JSVal }

instance Eq OES_fbo_render_mipmap where
  (OES_fbo_render_mipmap a) == (OES_fbo_render_mipmap b) = js_eq a b

instance PToJSVal OES_fbo_render_mipmap where
  pToJSVal = unOES_fbo_render_mipmap
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_fbo_render_mipmap where
  pFromJSVal = OES_fbo_render_mipmap
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_fbo_render_mipmap where
  toJSVal = return . unOES_fbo_render_mipmap
  {-# INLINE toJSVal #-}

instance FromJSVal OES_fbo_render_mipmap where
  fromJSVal = return . fmap OES_fbo_render_mipmap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_fbo_render_mipmap
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_fbo_render_mipmap where
  typeGType _ = gTypeOES_fbo_render_mipmap
  {-# INLINE typeGType #-}

noOES_fbo_render_mipmap :: Maybe OES_fbo_render_mipmap
noOES_fbo_render_mipmap = Nothing
{-# INLINE noOES_fbo_render_mipmap #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_fbo_render_mipmap :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_standard_derivatives" (OES_standard_derivatives).
newtype OES_standard_derivatives = OES_standard_derivatives { unOES_standard_derivatives :: JSVal }

instance Eq OES_standard_derivatives where
  (OES_standard_derivatives a) == (OES_standard_derivatives b) = js_eq a b

instance PToJSVal OES_standard_derivatives where
  pToJSVal = unOES_standard_derivatives
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_standard_derivatives where
  pFromJSVal = OES_standard_derivatives
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_standard_derivatives where
  toJSVal = return . unOES_standard_derivatives
  {-# INLINE toJSVal #-}

instance FromJSVal OES_standard_derivatives where
  fromJSVal = return . fmap OES_standard_derivatives . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_standard_derivatives
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_standard_derivatives where
  typeGType _ = gTypeOES_standard_derivatives
  {-# INLINE typeGType #-}

noOES_standard_derivatives :: Maybe OES_standard_derivatives
noOES_standard_derivatives = Nothing
{-# INLINE noOES_standard_derivatives #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_standard_derivatives :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_texture_float" (OES_texture_float).
newtype OES_texture_float = OES_texture_float { unOES_texture_float :: JSVal }

instance Eq OES_texture_float where
  (OES_texture_float a) == (OES_texture_float b) = js_eq a b

instance PToJSVal OES_texture_float where
  pToJSVal = unOES_texture_float
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_texture_float where
  pFromJSVal = OES_texture_float
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_texture_float where
  toJSVal = return . unOES_texture_float
  {-# INLINE toJSVal #-}

instance FromJSVal OES_texture_float where
  fromJSVal = return . fmap OES_texture_float . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_texture_float
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_texture_float where
  typeGType _ = gTypeOES_texture_float
  {-# INLINE typeGType #-}

noOES_texture_float :: Maybe OES_texture_float
noOES_texture_float = Nothing
{-# INLINE noOES_texture_float #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_texture_float :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_texture_float_linear" (OES_texture_float_linear).
newtype OES_texture_float_linear = OES_texture_float_linear { unOES_texture_float_linear :: JSVal }

instance Eq OES_texture_float_linear where
  (OES_texture_float_linear a) == (OES_texture_float_linear b) = js_eq a b

instance PToJSVal OES_texture_float_linear where
  pToJSVal = unOES_texture_float_linear
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_texture_float_linear where
  pFromJSVal = OES_texture_float_linear
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_texture_float_linear where
  toJSVal = return . unOES_texture_float_linear
  {-# INLINE toJSVal #-}

instance FromJSVal OES_texture_float_linear where
  fromJSVal = return . fmap OES_texture_float_linear . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_texture_float_linear
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_texture_float_linear where
  typeGType _ = gTypeOES_texture_float_linear
  {-# INLINE typeGType #-}

noOES_texture_float_linear :: Maybe OES_texture_float_linear
noOES_texture_float_linear = Nothing
{-# INLINE noOES_texture_float_linear #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_texture_float_linear :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_texture_half_float" (OES_texture_half_float).
newtype OES_texture_half_float = OES_texture_half_float { unOES_texture_half_float :: JSVal }

instance Eq OES_texture_half_float where
  (OES_texture_half_float a) == (OES_texture_half_float b) = js_eq a b

instance PToJSVal OES_texture_half_float where
  pToJSVal = unOES_texture_half_float
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_texture_half_float where
  pFromJSVal = OES_texture_half_float
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_texture_half_float where
  toJSVal = return . unOES_texture_half_float
  {-# INLINE toJSVal #-}

instance FromJSVal OES_texture_half_float where
  fromJSVal = return . fmap OES_texture_half_float . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_texture_half_float
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_texture_half_float where
  typeGType _ = gTypeOES_texture_half_float
  {-# INLINE typeGType #-}

noOES_texture_half_float :: Maybe OES_texture_half_float
noOES_texture_half_float = Nothing
{-# INLINE noOES_texture_half_float #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_texture_half_float :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_texture_half_float_linear" (OES_texture_half_float_linear).
newtype OES_texture_half_float_linear = OES_texture_half_float_linear { unOES_texture_half_float_linear :: JSVal }

instance Eq OES_texture_half_float_linear where
  (OES_texture_half_float_linear a) == (OES_texture_half_float_linear b) = js_eq a b

instance PToJSVal OES_texture_half_float_linear where
  pToJSVal = unOES_texture_half_float_linear
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_texture_half_float_linear where
  pFromJSVal = OES_texture_half_float_linear
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_texture_half_float_linear where
  toJSVal = return . unOES_texture_half_float_linear
  {-# INLINE toJSVal #-}

instance FromJSVal OES_texture_half_float_linear where
  fromJSVal = return . fmap OES_texture_half_float_linear . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_texture_half_float_linear
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_texture_half_float_linear where
  typeGType _ = gTypeOES_texture_half_float_linear
  {-# INLINE typeGType #-}

noOES_texture_half_float_linear :: Maybe OES_texture_half_float_linear
noOES_texture_half_float_linear = Nothing
{-# INLINE noOES_texture_half_float_linear #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_texture_half_float_linear :: GType

-- | Functions for this interface are in "GHCJS.DOM.OES_vertex_array_object" (OES_vertex_array_object).
newtype OES_vertex_array_object = OES_vertex_array_object { unOES_vertex_array_object :: JSVal }

instance Eq OES_vertex_array_object where
  (OES_vertex_array_object a) == (OES_vertex_array_object b) = js_eq a b

instance PToJSVal OES_vertex_array_object where
  pToJSVal = unOES_vertex_array_object
  {-# INLINE pToJSVal #-}

instance PFromJSVal OES_vertex_array_object where
  pFromJSVal = OES_vertex_array_object
  {-# INLINE pFromJSVal #-}

instance ToJSVal OES_vertex_array_object where
  toJSVal = return . unOES_vertex_array_object
  {-# INLINE toJSVal #-}

instance FromJSVal OES_vertex_array_object where
  fromJSVal = return . fmap OES_vertex_array_object . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OES_vertex_array_object
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OES_vertex_array_object where
  typeGType _ = gTypeOES_vertex_array_object
  {-# INLINE typeGType #-}

noOES_vertex_array_object :: Maybe OES_vertex_array_object
noOES_vertex_array_object = Nothing
{-# INLINE noOES_vertex_array_object #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOES_vertex_array_object :: GType

-- | Dictionary OTPCredentialRequestOptions (web-otp)
newtype OTPCredentialRequestOptions = OTPCredentialRequestOptions { unOTPCredentialRequestOptions :: JSVal }

instance Eq OTPCredentialRequestOptions where
  (OTPCredentialRequestOptions a) == (OTPCredentialRequestOptions b) = js_eq a b

instance PToJSVal OTPCredentialRequestOptions where
  pToJSVal = unOTPCredentialRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal OTPCredentialRequestOptions where
  pFromJSVal = OTPCredentialRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal OTPCredentialRequestOptions where
  toJSVal = return . unOTPCredentialRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal OTPCredentialRequestOptions where
  fromJSVal = return . fmap OTPCredentialRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OTPCredentialRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OTPCredentialRequestOptions where
  typeGType _ = gTypeOTPCredentialRequestOptions
  {-# INLINE typeGType #-}

noOTPCredentialRequestOptions :: Maybe OTPCredentialRequestOptions
noOTPCredentialRequestOptions = Nothing
{-# INLINE noOTPCredentialRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOTPCredentialRequestOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.OVR_multiview2" (OVR_multiview2).
newtype OVR_multiview2 = OVR_multiview2 { unOVR_multiview2 :: JSVal }

instance Eq OVR_multiview2 where
  (OVR_multiview2 a) == (OVR_multiview2 b) = js_eq a b

instance PToJSVal OVR_multiview2 where
  pToJSVal = unOVR_multiview2
  {-# INLINE pToJSVal #-}

instance PFromJSVal OVR_multiview2 where
  pFromJSVal = OVR_multiview2
  {-# INLINE pFromJSVal #-}

instance ToJSVal OVR_multiview2 where
  toJSVal = return . unOVR_multiview2
  {-# INLINE toJSVal #-}

instance FromJSVal OVR_multiview2 where
  fromJSVal = return . fmap OVR_multiview2 . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OVR_multiview2
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OVR_multiview2 where
  typeGType _ = gTypeOVR_multiview2
  {-# INLINE typeGType #-}

noOVR_multiview2 :: Maybe OVR_multiview2
noOVR_multiview2 = Nothing
{-# INLINE noOVR_multiview2 #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOVR_multiview2 :: GType

-- | Functions for this interface are in "GHCJS.DOM.OfflineAudioCompletionEvent" (webaudio-1.1).
newtype OfflineAudioCompletionEvent = OfflineAudioCompletionEvent { unOfflineAudioCompletionEvent :: JSVal }

instance Eq OfflineAudioCompletionEvent where
  (OfflineAudioCompletionEvent a) == (OfflineAudioCompletionEvent b) = js_eq a b

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 = return . fmap OfflineAudioCompletionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OfflineAudioCompletionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent OfflineAudioCompletionEvent

instance IsGObject OfflineAudioCompletionEvent where
  typeGType _ = gTypeOfflineAudioCompletionEvent
  {-# INLINE typeGType #-}

noOfflineAudioCompletionEvent :: Maybe OfflineAudioCompletionEvent
noOfflineAudioCompletionEvent = Nothing
{-# INLINE noOfflineAudioCompletionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"OfflineAudioCompletionEvent\"])" gTypeOfflineAudioCompletionEvent :: GType

-- | Dictionary OfflineAudioCompletionEventInit (webaudio-1.1)
newtype OfflineAudioCompletionEventInit = OfflineAudioCompletionEventInit { unOfflineAudioCompletionEventInit :: JSVal }

instance Eq OfflineAudioCompletionEventInit where
  (OfflineAudioCompletionEventInit a) == (OfflineAudioCompletionEventInit b) = js_eq a b

instance PToJSVal OfflineAudioCompletionEventInit where
  pToJSVal = unOfflineAudioCompletionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal OfflineAudioCompletionEventInit where
  pFromJSVal = OfflineAudioCompletionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal OfflineAudioCompletionEventInit where
  toJSVal = return . unOfflineAudioCompletionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal OfflineAudioCompletionEventInit where
  fromJSVal = return . fmap OfflineAudioCompletionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OfflineAudioCompletionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit OfflineAudioCompletionEventInit

instance IsGObject OfflineAudioCompletionEventInit where
  typeGType _ = gTypeOfflineAudioCompletionEventInit
  {-# INLINE typeGType #-}

noOfflineAudioCompletionEventInit :: Maybe OfflineAudioCompletionEventInit
noOfflineAudioCompletionEventInit = Nothing
{-# INLINE noOfflineAudioCompletionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOfflineAudioCompletionEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.OfflineAudioContext" (webaudio-1.1).
newtype OfflineAudioContext = OfflineAudioContext { unOfflineAudioContext :: JSVal }

instance Eq OfflineAudioContext where
  (OfflineAudioContext a) == (OfflineAudioContext b) = js_eq a b

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 = return . fmap OfflineAudioContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OfflineAudioContext
  {-# INLINE fromJSValUnchecked #-}

instance IsBaseAudioContext OfflineAudioContext
instance IsEventTarget OfflineAudioContext

instance IsGObject OfflineAudioContext where
  typeGType _ = gTypeOfflineAudioContext
  {-# INLINE typeGType #-}

noOfflineAudioContext :: Maybe OfflineAudioContext
noOfflineAudioContext = Nothing
{-# INLINE noOfflineAudioContext #-}

foreign import javascript unsafe "(() => globalThis[\"OfflineAudioContext\"])" gTypeOfflineAudioContext :: GType

-- | Dictionary OfflineAudioContextOptions (webaudio-1.1)
newtype OfflineAudioContextOptions = OfflineAudioContextOptions { unOfflineAudioContextOptions :: JSVal }

instance Eq OfflineAudioContextOptions where
  (OfflineAudioContextOptions a) == (OfflineAudioContextOptions b) = js_eq a b

instance PToJSVal OfflineAudioContextOptions where
  pToJSVal = unOfflineAudioContextOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal OfflineAudioContextOptions where
  pFromJSVal = OfflineAudioContextOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal OfflineAudioContextOptions where
  toJSVal = return . unOfflineAudioContextOptions
  {-# INLINE toJSVal #-}

instance FromJSVal OfflineAudioContextOptions where
  fromJSVal = return . fmap OfflineAudioContextOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OfflineAudioContextOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OfflineAudioContextOptions where
  typeGType _ = gTypeOfflineAudioContextOptions
  {-# INLINE typeGType #-}

noOfflineAudioContextOptions :: Maybe OfflineAudioContextOptions
noOfflineAudioContextOptions = Nothing
{-# INLINE noOfflineAudioContextOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOfflineAudioContextOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.OffscreenCanvas" (html).
newtype OffscreenCanvas = OffscreenCanvas { unOffscreenCanvas :: JSVal }

instance Eq OffscreenCanvas where
  (OffscreenCanvas a) == (OffscreenCanvas b) = js_eq a b

instance PToJSVal OffscreenCanvas where
  pToJSVal = unOffscreenCanvas
  {-# INLINE pToJSVal #-}

instance PFromJSVal OffscreenCanvas where
  pFromJSVal = OffscreenCanvas
  {-# INLINE pFromJSVal #-}

instance ToJSVal OffscreenCanvas where
  toJSVal = return . unOffscreenCanvas
  {-# INLINE toJSVal #-}

instance FromJSVal OffscreenCanvas where
  fromJSVal = return . fmap OffscreenCanvas . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OffscreenCanvas
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget OffscreenCanvas

instance IsGObject OffscreenCanvas where
  typeGType _ = gTypeOffscreenCanvas
  {-# INLINE typeGType #-}

noOffscreenCanvas :: Maybe OffscreenCanvas
noOffscreenCanvas = Nothing
{-# INLINE noOffscreenCanvas #-}

foreign import javascript unsafe "(() => globalThis[\"OffscreenCanvas\"])" gTypeOffscreenCanvas :: GType

-- | Functions for this interface are in "GHCJS.DOM.OffscreenCanvasRenderingContext2D" (html).
newtype OffscreenCanvasRenderingContext2D = OffscreenCanvasRenderingContext2D { unOffscreenCanvasRenderingContext2D :: JSVal }

instance Eq OffscreenCanvasRenderingContext2D where
  (OffscreenCanvasRenderingContext2D a) == (OffscreenCanvasRenderingContext2D b) = js_eq a b

instance PToJSVal OffscreenCanvasRenderingContext2D where
  pToJSVal = unOffscreenCanvasRenderingContext2D
  {-# INLINE pToJSVal #-}

instance PFromJSVal OffscreenCanvasRenderingContext2D where
  pFromJSVal = OffscreenCanvasRenderingContext2D
  {-# INLINE pFromJSVal #-}

instance ToJSVal OffscreenCanvasRenderingContext2D where
  toJSVal = return . unOffscreenCanvasRenderingContext2D
  {-# INLINE toJSVal #-}

instance FromJSVal OffscreenCanvasRenderingContext2D where
  fromJSVal = return . fmap OffscreenCanvasRenderingContext2D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OffscreenCanvasRenderingContext2D
  {-# INLINE fromJSValUnchecked #-}

instance IsCanvasCompositing OffscreenCanvasRenderingContext2D
instance IsCanvasDrawImage OffscreenCanvasRenderingContext2D
instance IsCanvasDrawPath OffscreenCanvasRenderingContext2D
instance IsCanvasFillStrokeStyles OffscreenCanvasRenderingContext2D
instance IsCanvasFilters OffscreenCanvasRenderingContext2D
instance IsCanvasImageData OffscreenCanvasRenderingContext2D
instance IsCanvasImageSmoothing OffscreenCanvasRenderingContext2D
instance IsCanvasPath OffscreenCanvasRenderingContext2D
instance IsCanvasPathDrawingStyles OffscreenCanvasRenderingContext2D
instance IsCanvasRect OffscreenCanvasRenderingContext2D
instance IsCanvasSettings OffscreenCanvasRenderingContext2D
instance IsCanvasShadowStyles OffscreenCanvasRenderingContext2D
instance IsCanvasState OffscreenCanvasRenderingContext2D
instance IsCanvasText OffscreenCanvasRenderingContext2D
instance IsCanvasTextDrawingStyles OffscreenCanvasRenderingContext2D
instance IsCanvasTransform OffscreenCanvasRenderingContext2D

instance IsGObject OffscreenCanvasRenderingContext2D where
  typeGType _ = gTypeOffscreenCanvasRenderingContext2D
  {-# INLINE typeGType #-}

noOffscreenCanvasRenderingContext2D :: Maybe OffscreenCanvasRenderingContext2D
noOffscreenCanvasRenderingContext2D = Nothing
{-# INLINE noOffscreenCanvasRenderingContext2D #-}

foreign import javascript unsafe "(() => globalThis[\"OffscreenCanvasRenderingContext2D\"])" gTypeOffscreenCanvasRenderingContext2D :: GType

-- | Dictionary OptionalEffectTiming (web-animations-1)
newtype OptionalEffectTiming = OptionalEffectTiming { unOptionalEffectTiming :: JSVal }

instance Eq OptionalEffectTiming where
  (OptionalEffectTiming a) == (OptionalEffectTiming b) = js_eq a b

instance PToJSVal OptionalEffectTiming where
  pToJSVal = unOptionalEffectTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal OptionalEffectTiming where
  pFromJSVal = OptionalEffectTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal OptionalEffectTiming where
  toJSVal = return . unOptionalEffectTiming
  {-# INLINE toJSVal #-}

instance FromJSVal OptionalEffectTiming where
  fromJSVal = return . fmap OptionalEffectTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OptionalEffectTiming
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OptionalEffectTiming where
  typeGType _ = gTypeOptionalEffectTiming
  {-# INLINE typeGType #-}

noOptionalEffectTiming :: Maybe OptionalEffectTiming
noOptionalEffectTiming = Nothing
{-# INLINE noOptionalEffectTiming #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOptionalEffectTiming :: GType

-- | Dictionary OpusEncoderConfig (webcodecs-opus-codec-registration)
newtype OpusEncoderConfig = OpusEncoderConfig { unOpusEncoderConfig :: JSVal }

instance Eq OpusEncoderConfig where
  (OpusEncoderConfig a) == (OpusEncoderConfig b) = js_eq a b

instance PToJSVal OpusEncoderConfig where
  pToJSVal = unOpusEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal OpusEncoderConfig where
  pFromJSVal = OpusEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal OpusEncoderConfig where
  toJSVal = return . unOpusEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal OpusEncoderConfig where
  fromJSVal = return . fmap OpusEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OpusEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject OpusEncoderConfig where
  typeGType _ = gTypeOpusEncoderConfig
  {-# INLINE typeGType #-}

noOpusEncoderConfig :: Maybe OpusEncoderConfig
noOpusEncoderConfig = Nothing
{-# INLINE noOpusEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOpusEncoderConfig :: GType

-- | Functions for this interface are in "GHCJS.DOM.Origin" (html).
newtype Origin = Origin { unOrigin :: JSVal }

instance Eq Origin where
  (Origin a) == (Origin b) = js_eq a b

instance PToJSVal Origin where
  pToJSVal = unOrigin
  {-# INLINE pToJSVal #-}

instance PFromJSVal Origin where
  pFromJSVal = Origin
  {-# INLINE pFromJSVal #-}

instance ToJSVal Origin where
  toJSVal = return . unOrigin
  {-# INLINE toJSVal #-}

instance FromJSVal Origin where
  fromJSVal = return . fmap Origin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Origin
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Origin where
  typeGType _ = gTypeOrigin
  {-# INLINE typeGType #-}

noOrigin :: Maybe Origin
noOrigin = Nothing
{-# INLINE noOrigin #-}

foreign import javascript unsafe "(() => globalThis[\"Origin\"])" gTypeOrigin :: GType

-- | Functions for this interface are in "GHCJS.DOM.OscillatorNode" (webaudio-1.1).
newtype OscillatorNode = OscillatorNode { unOscillatorNode :: JSVal }

instance Eq OscillatorNode where
  (OscillatorNode a) == (OscillatorNode b) = js_eq a b

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 = return . fmap OscillatorNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OscillatorNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioScheduledSourceNode OscillatorNode
instance IsAudioNode OscillatorNode
instance IsEventTarget OscillatorNode

instance IsGObject OscillatorNode where
  typeGType _ = gTypeOscillatorNode
  {-# INLINE typeGType #-}

noOscillatorNode :: Maybe OscillatorNode
noOscillatorNode = Nothing
{-# INLINE noOscillatorNode #-}

foreign import javascript unsafe "(() => globalThis[\"OscillatorNode\"])" gTypeOscillatorNode :: GType

-- | Dictionary OscillatorOptions (webaudio-1.1)
newtype OscillatorOptions = OscillatorOptions { unOscillatorOptions :: JSVal }

instance Eq OscillatorOptions where
  (OscillatorOptions a) == (OscillatorOptions b) = js_eq a b

instance PToJSVal OscillatorOptions where
  pToJSVal = unOscillatorOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal OscillatorOptions where
  pFromJSVal = OscillatorOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal OscillatorOptions where
  toJSVal = return . unOscillatorOptions
  {-# INLINE toJSVal #-}

instance FromJSVal OscillatorOptions where
  fromJSVal = return . fmap OscillatorOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OscillatorOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions OscillatorOptions

instance IsGObject OscillatorOptions where
  typeGType _ = gTypeOscillatorOptions
  {-# INLINE typeGType #-}

noOscillatorOptions :: Maybe OscillatorOptions
noOscillatorOptions = Nothing
{-# INLINE noOscillatorOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeOscillatorOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.OverconstrainedError" (mediacapture-streams).
newtype OverconstrainedError = OverconstrainedError { unOverconstrainedError :: JSVal }

instance Eq OverconstrainedError where
  (OverconstrainedError a) == (OverconstrainedError b) = js_eq a b

instance PToJSVal OverconstrainedError where
  pToJSVal = unOverconstrainedError
  {-# INLINE pToJSVal #-}

instance PFromJSVal OverconstrainedError where
  pFromJSVal = OverconstrainedError
  {-# INLINE pFromJSVal #-}

instance ToJSVal OverconstrainedError where
  toJSVal = return . unOverconstrainedError
  {-# INLINE toJSVal #-}

instance FromJSVal OverconstrainedError where
  fromJSVal = return . fmap OverconstrainedError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . OverconstrainedError
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMException OverconstrainedError

instance IsGObject OverconstrainedError where
  typeGType _ = gTypeOverconstrainedError
  {-# INLINE typeGType #-}

noOverconstrainedError :: Maybe OverconstrainedError
noOverconstrainedError = Nothing
{-# INLINE noOverconstrainedError #-}

foreign import javascript unsafe "(() => globalThis[\"OverconstrainedError\"])" gTypeOverconstrainedError :: GType

-- | Functions for this interface are in "GHCJS.DOM.PageRevealEvent" (html).
newtype PageRevealEvent = PageRevealEvent { unPageRevealEvent :: JSVal }

instance Eq PageRevealEvent where
  (PageRevealEvent a) == (PageRevealEvent b) = js_eq a b

instance PToJSVal PageRevealEvent where
  pToJSVal = unPageRevealEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PageRevealEvent where
  pFromJSVal = PageRevealEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PageRevealEvent where
  toJSVal = return . unPageRevealEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PageRevealEvent where
  fromJSVal = return . fmap PageRevealEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PageRevealEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent PageRevealEvent

instance IsGObject PageRevealEvent where
  typeGType _ = gTypePageRevealEvent
  {-# INLINE typeGType #-}

noPageRevealEvent :: Maybe PageRevealEvent
noPageRevealEvent = Nothing
{-# INLINE noPageRevealEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PageRevealEvent\"])" gTypePageRevealEvent :: GType

-- | Dictionary PageRevealEventInit (html)
newtype PageRevealEventInit = PageRevealEventInit { unPageRevealEventInit :: JSVal }

instance Eq PageRevealEventInit where
  (PageRevealEventInit a) == (PageRevealEventInit b) = js_eq a b

instance PToJSVal PageRevealEventInit where
  pToJSVal = unPageRevealEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PageRevealEventInit where
  pFromJSVal = PageRevealEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PageRevealEventInit where
  toJSVal = return . unPageRevealEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PageRevealEventInit where
  fromJSVal = return . fmap PageRevealEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PageRevealEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit PageRevealEventInit

instance IsGObject PageRevealEventInit where
  typeGType _ = gTypePageRevealEventInit
  {-# INLINE typeGType #-}

noPageRevealEventInit :: Maybe PageRevealEventInit
noPageRevealEventInit = Nothing
{-# INLINE noPageRevealEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePageRevealEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PageSwapEvent" (html).
newtype PageSwapEvent = PageSwapEvent { unPageSwapEvent :: JSVal }

instance Eq PageSwapEvent where
  (PageSwapEvent a) == (PageSwapEvent b) = js_eq a b

instance PToJSVal PageSwapEvent where
  pToJSVal = unPageSwapEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PageSwapEvent where
  pFromJSVal = PageSwapEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PageSwapEvent where
  toJSVal = return . unPageSwapEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PageSwapEvent where
  fromJSVal = return . fmap PageSwapEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PageSwapEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent PageSwapEvent

instance IsGObject PageSwapEvent where
  typeGType _ = gTypePageSwapEvent
  {-# INLINE typeGType #-}

noPageSwapEvent :: Maybe PageSwapEvent
noPageSwapEvent = Nothing
{-# INLINE noPageSwapEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PageSwapEvent\"])" gTypePageSwapEvent :: GType

-- | Dictionary PageSwapEventInit (html)
newtype PageSwapEventInit = PageSwapEventInit { unPageSwapEventInit :: JSVal }

instance Eq PageSwapEventInit where
  (PageSwapEventInit a) == (PageSwapEventInit b) = js_eq a b

instance PToJSVal PageSwapEventInit where
  pToJSVal = unPageSwapEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PageSwapEventInit where
  pFromJSVal = PageSwapEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PageSwapEventInit where
  toJSVal = return . unPageSwapEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PageSwapEventInit where
  fromJSVal = return . fmap PageSwapEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PageSwapEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit PageSwapEventInit

instance IsGObject PageSwapEventInit where
  typeGType _ = gTypePageSwapEventInit
  {-# INLINE typeGType #-}

noPageSwapEventInit :: Maybe PageSwapEventInit
noPageSwapEventInit = Nothing
{-# INLINE noPageSwapEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePageSwapEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PageTransitionEvent" (html).
newtype PageTransitionEvent = PageTransitionEvent { unPageTransitionEvent :: JSVal }

instance Eq PageTransitionEvent where
  (PageTransitionEvent a) == (PageTransitionEvent b) = js_eq a b

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 = return . fmap PageTransitionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PageTransitionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent PageTransitionEvent

instance IsGObject PageTransitionEvent where
  typeGType _ = gTypePageTransitionEvent
  {-# INLINE typeGType #-}

noPageTransitionEvent :: Maybe PageTransitionEvent
noPageTransitionEvent = Nothing
{-# INLINE noPageTransitionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PageTransitionEvent\"])" gTypePageTransitionEvent :: GType

-- | Dictionary PageTransitionEventInit (html)
newtype PageTransitionEventInit = PageTransitionEventInit { unPageTransitionEventInit :: JSVal }

instance Eq PageTransitionEventInit where
  (PageTransitionEventInit a) == (PageTransitionEventInit b) = js_eq a b

instance PToJSVal PageTransitionEventInit where
  pToJSVal = unPageTransitionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PageTransitionEventInit where
  pFromJSVal = PageTransitionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PageTransitionEventInit where
  toJSVal = return . unPageTransitionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PageTransitionEventInit where
  fromJSVal = return . fmap PageTransitionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PageTransitionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit PageTransitionEventInit

instance IsGObject PageTransitionEventInit where
  typeGType _ = gTypePageTransitionEventInit
  {-# INLINE typeGType #-}

noPageTransitionEventInit :: Maybe PageTransitionEventInit
noPageTransitionEventInit = Nothing
{-# INLINE noPageTransitionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePageTransitionEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PaintTimingMixin" (paint-timing).
newtype PaintTimingMixin = PaintTimingMixin { unPaintTimingMixin :: JSVal }

instance Eq PaintTimingMixin where
  (PaintTimingMixin a) == (PaintTimingMixin b) = js_eq a b

instance PToJSVal PaintTimingMixin where
  pToJSVal = unPaintTimingMixin
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaintTimingMixin where
  pFromJSVal = PaintTimingMixin
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaintTimingMixin where
  toJSVal = return . unPaintTimingMixin
  {-# INLINE toJSVal #-}

instance FromJSVal PaintTimingMixin where
  fromJSVal = return . fmap PaintTimingMixin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaintTimingMixin
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPaintTimingMixin o
toPaintTimingMixin :: IsPaintTimingMixin o => o -> PaintTimingMixin
toPaintTimingMixin = PaintTimingMixin . coerce

instance IsPaintTimingMixin PaintTimingMixin

instance IsGObject PaintTimingMixin where
  typeGType _ = gTypePaintTimingMixin
  {-# INLINE typeGType #-}

noPaintTimingMixin :: Maybe PaintTimingMixin
noPaintTimingMixin = Nothing
{-# INLINE noPaintTimingMixin #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaintTimingMixin :: GType

-- | Functions for this interface are in "GHCJS.DOM.PannerNode" (webaudio-1.1).
newtype PannerNode = PannerNode { unPannerNode :: JSVal }

instance Eq PannerNode where
  (PannerNode a) == (PannerNode b) = js_eq a b

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 = return . fmap PannerNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PannerNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode PannerNode
instance IsEventTarget PannerNode

instance IsGObject PannerNode where
  typeGType _ = gTypePannerNode
  {-# INLINE typeGType #-}

noPannerNode :: Maybe PannerNode
noPannerNode = Nothing
{-# INLINE noPannerNode #-}

foreign import javascript unsafe "(() => globalThis[\"PannerNode\"])" gTypePannerNode :: GType

-- | Dictionary PannerOptions (webaudio-1.1)
newtype PannerOptions = PannerOptions { unPannerOptions :: JSVal }

instance Eq PannerOptions where
  (PannerOptions a) == (PannerOptions b) = js_eq a b

instance PToJSVal PannerOptions where
  pToJSVal = unPannerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PannerOptions where
  pFromJSVal = PannerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PannerOptions where
  toJSVal = return . unPannerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PannerOptions where
  fromJSVal = return . fmap PannerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PannerOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions PannerOptions

instance IsGObject PannerOptions where
  typeGType _ = gTypePannerOptions
  {-# INLINE typeGType #-}

noPannerOptions :: Maybe PannerOptions
noPannerOptions = Nothing
{-# INLINE noPannerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePannerOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ParentNode" (dom).
newtype ParentNode = ParentNode { unParentNode :: JSVal }

instance Eq ParentNode where
  (ParentNode a) == (ParentNode b) = js_eq a b

instance PToJSVal ParentNode where
  pToJSVal = unParentNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal ParentNode where
  pFromJSVal = ParentNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal ParentNode where
  toJSVal = return . unParentNode
  {-# INLINE toJSVal #-}

instance FromJSVal ParentNode where
  fromJSVal = return . fmap ParentNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ParentNode
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsParentNode o
toParentNode :: IsParentNode o => o -> ParentNode
toParentNode = ParentNode . coerce

instance IsParentNode ParentNode

instance IsGObject ParentNode where
  typeGType _ = gTypeParentNode
  {-# INLINE typeGType #-}

noParentNode :: Maybe ParentNode
noParentNode = Nothing
{-# INLINE noParentNode #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeParentNode :: GType

-- | Dictionary ParseHTMLUnsafeOptions (html)
newtype ParseHTMLUnsafeOptions = ParseHTMLUnsafeOptions { unParseHTMLUnsafeOptions :: JSVal }

instance Eq ParseHTMLUnsafeOptions where
  (ParseHTMLUnsafeOptions a) == (ParseHTMLUnsafeOptions b) = js_eq a b

instance PToJSVal ParseHTMLUnsafeOptions where
  pToJSVal = unParseHTMLUnsafeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ParseHTMLUnsafeOptions where
  pFromJSVal = ParseHTMLUnsafeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ParseHTMLUnsafeOptions where
  toJSVal = return . unParseHTMLUnsafeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ParseHTMLUnsafeOptions where
  fromJSVal = return . fmap ParseHTMLUnsafeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ParseHTMLUnsafeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ParseHTMLUnsafeOptions where
  typeGType _ = gTypeParseHTMLUnsafeOptions
  {-# INLINE typeGType #-}

noParseHTMLUnsafeOptions :: Maybe ParseHTMLUnsafeOptions
noParseHTMLUnsafeOptions = Nothing
{-# INLINE noParseHTMLUnsafeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeParseHTMLUnsafeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PasswordCredential" (credential-management-1).
newtype PasswordCredential = PasswordCredential { unPasswordCredential :: JSVal }

instance Eq PasswordCredential where
  (PasswordCredential a) == (PasswordCredential b) = js_eq a b

instance PToJSVal PasswordCredential where
  pToJSVal = unPasswordCredential
  {-# INLINE pToJSVal #-}

instance PFromJSVal PasswordCredential where
  pFromJSVal = PasswordCredential
  {-# INLINE pFromJSVal #-}

instance ToJSVal PasswordCredential where
  toJSVal = return . unPasswordCredential
  {-# INLINE toJSVal #-}

instance FromJSVal PasswordCredential where
  fromJSVal = return . fmap PasswordCredential . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PasswordCredential
  {-# INLINE fromJSValUnchecked #-}

instance IsCredential PasswordCredential

instance IsGObject PasswordCredential where
  typeGType _ = gTypePasswordCredential
  {-# INLINE typeGType #-}

noPasswordCredential :: Maybe PasswordCredential
noPasswordCredential = Nothing
{-# INLINE noPasswordCredential #-}

foreign import javascript unsafe "(() => globalThis[\"PasswordCredential\"])" gTypePasswordCredential :: GType

-- | Dictionary PasswordCredentialData (credential-management-1)
newtype PasswordCredentialData = PasswordCredentialData { unPasswordCredentialData :: JSVal }

instance Eq PasswordCredentialData where
  (PasswordCredentialData a) == (PasswordCredentialData b) = js_eq a b

instance PToJSVal PasswordCredentialData where
  pToJSVal = unPasswordCredentialData
  {-# INLINE pToJSVal #-}

instance PFromJSVal PasswordCredentialData where
  pFromJSVal = PasswordCredentialData
  {-# INLINE pFromJSVal #-}

instance ToJSVal PasswordCredentialData where
  toJSVal = return . unPasswordCredentialData
  {-# INLINE toJSVal #-}

instance FromJSVal PasswordCredentialData where
  fromJSVal = return . fmap PasswordCredentialData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PasswordCredentialData
  {-# INLINE fromJSValUnchecked #-}

instance IsCredentialData PasswordCredentialData

instance IsGObject PasswordCredentialData where
  typeGType _ = gTypePasswordCredentialData
  {-# INLINE typeGType #-}

noPasswordCredentialData :: Maybe PasswordCredentialData
noPasswordCredentialData = Nothing
{-# INLINE noPasswordCredentialData #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePasswordCredentialData :: GType

-- | Functions for this interface are in "GHCJS.DOM.Path2D" (html).
newtype Path2D = Path2D { unPath2D :: JSVal }

instance Eq Path2D where
  (Path2D a) == (Path2D b) = js_eq a b

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 = return . fmap Path2D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Path2D
  {-# INLINE fromJSValUnchecked #-}

instance IsCanvasPath Path2D

instance IsGObject Path2D where
  typeGType _ = gTypePath2D
  {-# INLINE typeGType #-}

noPath2D :: Maybe Path2D
noPath2D = Nothing
{-# INLINE noPath2D #-}

foreign import javascript unsafe "(() => globalThis[\"Path2D\"])" gTypePath2D :: GType

-- | Dictionary PayerErrors (payment-request)
newtype PayerErrors = PayerErrors { unPayerErrors :: JSVal }

instance Eq PayerErrors where
  (PayerErrors a) == (PayerErrors b) = js_eq a b

instance PToJSVal PayerErrors where
  pToJSVal = unPayerErrors
  {-# INLINE pToJSVal #-}

instance PFromJSVal PayerErrors where
  pFromJSVal = PayerErrors
  {-# INLINE pFromJSVal #-}

instance ToJSVal PayerErrors where
  toJSVal = return . unPayerErrors
  {-# INLINE toJSVal #-}

instance FromJSVal PayerErrors where
  fromJSVal = return . fmap PayerErrors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PayerErrors
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PayerErrors where
  typeGType _ = gTypePayerErrors
  {-# INLINE typeGType #-}

noPayerErrors :: Maybe PayerErrors
noPayerErrors = Nothing
{-# INLINE noPayerErrors #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePayerErrors :: GType

-- | Dictionary PaymentCompleteDetails (payment-request)
newtype PaymentCompleteDetails = PaymentCompleteDetails { unPaymentCompleteDetails :: JSVal }

instance Eq PaymentCompleteDetails where
  (PaymentCompleteDetails a) == (PaymentCompleteDetails b) = js_eq a b

instance PToJSVal PaymentCompleteDetails where
  pToJSVal = unPaymentCompleteDetails
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentCompleteDetails where
  pFromJSVal = PaymentCompleteDetails
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentCompleteDetails where
  toJSVal = return . unPaymentCompleteDetails
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentCompleteDetails where
  fromJSVal = return . fmap PaymentCompleteDetails . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentCompleteDetails
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentCompleteDetails where
  typeGType _ = gTypePaymentCompleteDetails
  {-# INLINE typeGType #-}

noPaymentCompleteDetails :: Maybe PaymentCompleteDetails
noPaymentCompleteDetails = Nothing
{-# INLINE noPaymentCompleteDetails #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentCompleteDetails :: GType

-- | Dictionary PaymentCredentialInstrument (secure-payment-confirmation)
newtype PaymentCredentialInstrument = PaymentCredentialInstrument { unPaymentCredentialInstrument :: JSVal }

instance Eq PaymentCredentialInstrument where
  (PaymentCredentialInstrument a) == (PaymentCredentialInstrument b) = js_eq a b

instance PToJSVal PaymentCredentialInstrument where
  pToJSVal = unPaymentCredentialInstrument
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentCredentialInstrument where
  pFromJSVal = PaymentCredentialInstrument
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentCredentialInstrument where
  toJSVal = return . unPaymentCredentialInstrument
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentCredentialInstrument where
  fromJSVal = return . fmap PaymentCredentialInstrument . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentCredentialInstrument
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentCredentialInstrument where
  typeGType _ = gTypePaymentCredentialInstrument
  {-# INLINE typeGType #-}

noPaymentCredentialInstrument :: Maybe PaymentCredentialInstrument
noPaymentCredentialInstrument = Nothing
{-# INLINE noPaymentCredentialInstrument #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentCredentialInstrument :: GType

-- | Dictionary PaymentCurrencyAmount (payment-request)
newtype PaymentCurrencyAmount = PaymentCurrencyAmount { unPaymentCurrencyAmount :: JSVal }

instance Eq PaymentCurrencyAmount where
  (PaymentCurrencyAmount a) == (PaymentCurrencyAmount b) = js_eq a b

instance PToJSVal PaymentCurrencyAmount where
  pToJSVal = unPaymentCurrencyAmount
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentCurrencyAmount where
  pFromJSVal = PaymentCurrencyAmount
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentCurrencyAmount where
  toJSVal = return . unPaymentCurrencyAmount
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentCurrencyAmount where
  fromJSVal = return . fmap PaymentCurrencyAmount . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentCurrencyAmount
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentCurrencyAmount where
  typeGType _ = gTypePaymentCurrencyAmount
  {-# INLINE typeGType #-}

noPaymentCurrencyAmount :: Maybe PaymentCurrencyAmount
noPaymentCurrencyAmount = Nothing
{-# INLINE noPaymentCurrencyAmount #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentCurrencyAmount :: GType

-- | Dictionary PaymentDetailsBase (payment-request)
newtype PaymentDetailsBase = PaymentDetailsBase { unPaymentDetailsBase :: JSVal }

instance Eq PaymentDetailsBase where
  (PaymentDetailsBase a) == (PaymentDetailsBase b) = js_eq a b

instance PToJSVal PaymentDetailsBase where
  pToJSVal = unPaymentDetailsBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentDetailsBase where
  pFromJSVal = PaymentDetailsBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentDetailsBase where
  toJSVal = return . unPaymentDetailsBase
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentDetailsBase where
  fromJSVal = return . fmap PaymentDetailsBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentDetailsBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPaymentDetailsBase o
toPaymentDetailsBase :: IsPaymentDetailsBase o => o -> PaymentDetailsBase
toPaymentDetailsBase = PaymentDetailsBase . coerce

instance IsPaymentDetailsBase PaymentDetailsBase

instance IsGObject PaymentDetailsBase where
  typeGType _ = gTypePaymentDetailsBase
  {-# INLINE typeGType #-}

noPaymentDetailsBase :: Maybe PaymentDetailsBase
noPaymentDetailsBase = Nothing
{-# INLINE noPaymentDetailsBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentDetailsBase :: GType

-- | Dictionary PaymentDetailsInit (payment-request)
newtype PaymentDetailsInit = PaymentDetailsInit { unPaymentDetailsInit :: JSVal }

instance Eq PaymentDetailsInit where
  (PaymentDetailsInit a) == (PaymentDetailsInit b) = js_eq a b

instance PToJSVal PaymentDetailsInit where
  pToJSVal = unPaymentDetailsInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentDetailsInit where
  pFromJSVal = PaymentDetailsInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentDetailsInit where
  toJSVal = return . unPaymentDetailsInit
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentDetailsInit where
  fromJSVal = return . fmap PaymentDetailsInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentDetailsInit
  {-# INLINE fromJSValUnchecked #-}

instance IsPaymentDetailsBase PaymentDetailsInit

instance IsGObject PaymentDetailsInit where
  typeGType _ = gTypePaymentDetailsInit
  {-# INLINE typeGType #-}

noPaymentDetailsInit :: Maybe PaymentDetailsInit
noPaymentDetailsInit = Nothing
{-# INLINE noPaymentDetailsInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentDetailsInit :: GType

-- | Dictionary PaymentDetailsModifier (payment-request)
newtype PaymentDetailsModifier = PaymentDetailsModifier { unPaymentDetailsModifier :: JSVal }

instance Eq PaymentDetailsModifier where
  (PaymentDetailsModifier a) == (PaymentDetailsModifier b) = js_eq a b

instance PToJSVal PaymentDetailsModifier where
  pToJSVal = unPaymentDetailsModifier
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentDetailsModifier where
  pFromJSVal = PaymentDetailsModifier
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentDetailsModifier where
  toJSVal = return . unPaymentDetailsModifier
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentDetailsModifier where
  fromJSVal = return . fmap PaymentDetailsModifier . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentDetailsModifier
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentDetailsModifier where
  typeGType _ = gTypePaymentDetailsModifier
  {-# INLINE typeGType #-}

noPaymentDetailsModifier :: Maybe PaymentDetailsModifier
noPaymentDetailsModifier = Nothing
{-# INLINE noPaymentDetailsModifier #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentDetailsModifier :: GType

-- | Dictionary PaymentDetailsUpdate (payment-request)
newtype PaymentDetailsUpdate = PaymentDetailsUpdate { unPaymentDetailsUpdate :: JSVal }

instance Eq PaymentDetailsUpdate where
  (PaymentDetailsUpdate a) == (PaymentDetailsUpdate b) = js_eq a b

instance PToJSVal PaymentDetailsUpdate where
  pToJSVal = unPaymentDetailsUpdate
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentDetailsUpdate where
  pFromJSVal = PaymentDetailsUpdate
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentDetailsUpdate where
  toJSVal = return . unPaymentDetailsUpdate
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentDetailsUpdate where
  fromJSVal = return . fmap PaymentDetailsUpdate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentDetailsUpdate
  {-# INLINE fromJSValUnchecked #-}

instance IsPaymentDetailsBase PaymentDetailsUpdate

instance IsGObject PaymentDetailsUpdate where
  typeGType _ = gTypePaymentDetailsUpdate
  {-# INLINE typeGType #-}

noPaymentDetailsUpdate :: Maybe PaymentDetailsUpdate
noPaymentDetailsUpdate = Nothing
{-# INLINE noPaymentDetailsUpdate #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentDetailsUpdate :: GType

-- | Dictionary PaymentEntityLogo (secure-payment-confirmation)
newtype PaymentEntityLogo = PaymentEntityLogo { unPaymentEntityLogo :: JSVal }

instance Eq PaymentEntityLogo where
  (PaymentEntityLogo a) == (PaymentEntityLogo b) = js_eq a b

instance PToJSVal PaymentEntityLogo where
  pToJSVal = unPaymentEntityLogo
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentEntityLogo where
  pFromJSVal = PaymentEntityLogo
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentEntityLogo where
  toJSVal = return . unPaymentEntityLogo
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentEntityLogo where
  fromJSVal = return . fmap PaymentEntityLogo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentEntityLogo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentEntityLogo where
  typeGType _ = gTypePaymentEntityLogo
  {-# INLINE typeGType #-}

noPaymentEntityLogo :: Maybe PaymentEntityLogo
noPaymentEntityLogo = Nothing
{-# INLINE noPaymentEntityLogo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentEntityLogo :: GType

-- | Dictionary PaymentItem (payment-request)
newtype PaymentItem = PaymentItem { unPaymentItem :: JSVal }

instance Eq PaymentItem where
  (PaymentItem a) == (PaymentItem b) = js_eq a b

instance PToJSVal PaymentItem where
  pToJSVal = unPaymentItem
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentItem where
  pFromJSVal = PaymentItem
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentItem where
  toJSVal = return . unPaymentItem
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentItem where
  fromJSVal = return . fmap PaymentItem . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentItem
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentItem where
  typeGType _ = gTypePaymentItem
  {-# INLINE typeGType #-}

noPaymentItem :: Maybe PaymentItem
noPaymentItem = Nothing
{-# INLINE noPaymentItem #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentItem :: GType

-- | Functions for this interface are in "GHCJS.DOM.PaymentMethodChangeEvent" (payment-request).
newtype PaymentMethodChangeEvent = PaymentMethodChangeEvent { unPaymentMethodChangeEvent :: JSVal }

instance Eq PaymentMethodChangeEvent where
  (PaymentMethodChangeEvent a) == (PaymentMethodChangeEvent b) = js_eq a b

instance PToJSVal PaymentMethodChangeEvent where
  pToJSVal = unPaymentMethodChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentMethodChangeEvent where
  pFromJSVal = PaymentMethodChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentMethodChangeEvent where
  toJSVal = return . unPaymentMethodChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentMethodChangeEvent where
  fromJSVal = return . fmap PaymentMethodChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentMethodChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsPaymentRequestUpdateEvent PaymentMethodChangeEvent
instance IsEvent PaymentMethodChangeEvent

instance IsGObject PaymentMethodChangeEvent where
  typeGType _ = gTypePaymentMethodChangeEvent
  {-# INLINE typeGType #-}

noPaymentMethodChangeEvent :: Maybe PaymentMethodChangeEvent
noPaymentMethodChangeEvent = Nothing
{-# INLINE noPaymentMethodChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PaymentMethodChangeEvent\"])" gTypePaymentMethodChangeEvent :: GType

-- | Dictionary PaymentMethodChangeEventInit (payment-request)
newtype PaymentMethodChangeEventInit = PaymentMethodChangeEventInit { unPaymentMethodChangeEventInit :: JSVal }

instance Eq PaymentMethodChangeEventInit where
  (PaymentMethodChangeEventInit a) == (PaymentMethodChangeEventInit b) = js_eq a b

instance PToJSVal PaymentMethodChangeEventInit where
  pToJSVal = unPaymentMethodChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentMethodChangeEventInit where
  pFromJSVal = PaymentMethodChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentMethodChangeEventInit where
  toJSVal = return . unPaymentMethodChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentMethodChangeEventInit where
  fromJSVal = return . fmap PaymentMethodChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentMethodChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsPaymentRequestUpdateEventInit PaymentMethodChangeEventInit
instance IsEventInit PaymentMethodChangeEventInit

instance IsGObject PaymentMethodChangeEventInit where
  typeGType _ = gTypePaymentMethodChangeEventInit
  {-# INLINE typeGType #-}

noPaymentMethodChangeEventInit :: Maybe PaymentMethodChangeEventInit
noPaymentMethodChangeEventInit = Nothing
{-# INLINE noPaymentMethodChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentMethodChangeEventInit :: GType

-- | Dictionary PaymentMethodData (payment-request)
newtype PaymentMethodData = PaymentMethodData { unPaymentMethodData :: JSVal }

instance Eq PaymentMethodData where
  (PaymentMethodData a) == (PaymentMethodData b) = js_eq a b

instance PToJSVal PaymentMethodData where
  pToJSVal = unPaymentMethodData
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentMethodData where
  pFromJSVal = PaymentMethodData
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentMethodData where
  toJSVal = return . unPaymentMethodData
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentMethodData where
  fromJSVal = return . fmap PaymentMethodData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentMethodData
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentMethodData where
  typeGType _ = gTypePaymentMethodData
  {-# INLINE typeGType #-}

noPaymentMethodData :: Maybe PaymentMethodData
noPaymentMethodData = Nothing
{-# INLINE noPaymentMethodData #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentMethodData :: GType

-- | Dictionary PaymentOptions (payment-request)
newtype PaymentOptions = PaymentOptions { unPaymentOptions :: JSVal }

instance Eq PaymentOptions where
  (PaymentOptions a) == (PaymentOptions b) = js_eq a b

instance PToJSVal PaymentOptions where
  pToJSVal = unPaymentOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentOptions where
  pFromJSVal = PaymentOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentOptions where
  toJSVal = return . unPaymentOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentOptions where
  fromJSVal = return . fmap PaymentOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentOptions where
  typeGType _ = gTypePaymentOptions
  {-# INLINE typeGType #-}

noPaymentOptions :: Maybe PaymentOptions
noPaymentOptions = Nothing
{-# INLINE noPaymentOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PaymentRequest" (payment-request).
newtype PaymentRequest = PaymentRequest { unPaymentRequest :: JSVal }

instance Eq PaymentRequest where
  (PaymentRequest a) == (PaymentRequest b) = js_eq a b

instance PToJSVal PaymentRequest where
  pToJSVal = unPaymentRequest
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentRequest where
  pFromJSVal = PaymentRequest
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentRequest where
  toJSVal = return . unPaymentRequest
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentRequest where
  fromJSVal = return . fmap PaymentRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentRequest
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget PaymentRequest

instance IsGObject PaymentRequest where
  typeGType _ = gTypePaymentRequest
  {-# INLINE typeGType #-}

noPaymentRequest :: Maybe PaymentRequest
noPaymentRequest = Nothing
{-# INLINE noPaymentRequest #-}

foreign import javascript unsafe "(() => globalThis[\"PaymentRequest\"])" gTypePaymentRequest :: GType

-- | Functions for this interface are in "GHCJS.DOM.PaymentRequestUpdateEvent" (payment-request).
newtype PaymentRequestUpdateEvent = PaymentRequestUpdateEvent { unPaymentRequestUpdateEvent :: JSVal }

instance Eq PaymentRequestUpdateEvent where
  (PaymentRequestUpdateEvent a) == (PaymentRequestUpdateEvent b) = js_eq a b

instance PToJSVal PaymentRequestUpdateEvent where
  pToJSVal = unPaymentRequestUpdateEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentRequestUpdateEvent where
  pFromJSVal = PaymentRequestUpdateEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentRequestUpdateEvent where
  toJSVal = return . unPaymentRequestUpdateEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentRequestUpdateEvent where
  fromJSVal = return . fmap PaymentRequestUpdateEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentRequestUpdateEvent
  {-# INLINE fromJSValUnchecked #-}

class (IsEvent o, IsGObject o) => IsPaymentRequestUpdateEvent o
toPaymentRequestUpdateEvent :: IsPaymentRequestUpdateEvent o => o -> PaymentRequestUpdateEvent
toPaymentRequestUpdateEvent = PaymentRequestUpdateEvent . coerce

instance IsPaymentRequestUpdateEvent PaymentRequestUpdateEvent
instance IsEvent PaymentRequestUpdateEvent

instance IsGObject PaymentRequestUpdateEvent where
  typeGType _ = gTypePaymentRequestUpdateEvent
  {-# INLINE typeGType #-}

noPaymentRequestUpdateEvent :: Maybe PaymentRequestUpdateEvent
noPaymentRequestUpdateEvent = Nothing
{-# INLINE noPaymentRequestUpdateEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PaymentRequestUpdateEvent\"])" gTypePaymentRequestUpdateEvent :: GType

-- | Dictionary PaymentRequestUpdateEventInit (payment-request)
newtype PaymentRequestUpdateEventInit = PaymentRequestUpdateEventInit { unPaymentRequestUpdateEventInit :: JSVal }

instance Eq PaymentRequestUpdateEventInit where
  (PaymentRequestUpdateEventInit a) == (PaymentRequestUpdateEventInit b) = js_eq a b

instance PToJSVal PaymentRequestUpdateEventInit where
  pToJSVal = unPaymentRequestUpdateEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentRequestUpdateEventInit where
  pFromJSVal = PaymentRequestUpdateEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentRequestUpdateEventInit where
  toJSVal = return . unPaymentRequestUpdateEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentRequestUpdateEventInit where
  fromJSVal = return . fmap PaymentRequestUpdateEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentRequestUpdateEventInit
  {-# INLINE fromJSValUnchecked #-}

class (IsEventInit o, IsGObject o) => IsPaymentRequestUpdateEventInit o
toPaymentRequestUpdateEventInit :: IsPaymentRequestUpdateEventInit o => o -> PaymentRequestUpdateEventInit
toPaymentRequestUpdateEventInit = PaymentRequestUpdateEventInit . coerce

instance IsPaymentRequestUpdateEventInit PaymentRequestUpdateEventInit
instance IsEventInit PaymentRequestUpdateEventInit

instance IsGObject PaymentRequestUpdateEventInit where
  typeGType _ = gTypePaymentRequestUpdateEventInit
  {-# INLINE typeGType #-}

noPaymentRequestUpdateEventInit :: Maybe PaymentRequestUpdateEventInit
noPaymentRequestUpdateEventInit = Nothing
{-# INLINE noPaymentRequestUpdateEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentRequestUpdateEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PaymentResponse" (payment-request).
newtype PaymentResponse = PaymentResponse { unPaymentResponse :: JSVal }

instance Eq PaymentResponse where
  (PaymentResponse a) == (PaymentResponse b) = js_eq a b

instance PToJSVal PaymentResponse where
  pToJSVal = unPaymentResponse
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentResponse where
  pFromJSVal = PaymentResponse
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentResponse where
  toJSVal = return . unPaymentResponse
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentResponse where
  fromJSVal = return . fmap PaymentResponse . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentResponse
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget PaymentResponse

instance IsGObject PaymentResponse where
  typeGType _ = gTypePaymentResponse
  {-# INLINE typeGType #-}

noPaymentResponse :: Maybe PaymentResponse
noPaymentResponse = Nothing
{-# INLINE noPaymentResponse #-}

foreign import javascript unsafe "(() => globalThis[\"PaymentResponse\"])" gTypePaymentResponse :: GType

-- | Dictionary PaymentShippingOption (payment-request)
newtype PaymentShippingOption = PaymentShippingOption { unPaymentShippingOption :: JSVal }

instance Eq PaymentShippingOption where
  (PaymentShippingOption a) == (PaymentShippingOption b) = js_eq a b

instance PToJSVal PaymentShippingOption where
  pToJSVal = unPaymentShippingOption
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentShippingOption where
  pFromJSVal = PaymentShippingOption
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentShippingOption where
  toJSVal = return . unPaymentShippingOption
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentShippingOption where
  fromJSVal = return . fmap PaymentShippingOption . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentShippingOption
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentShippingOption where
  typeGType _ = gTypePaymentShippingOption
  {-# INLINE typeGType #-}

noPaymentShippingOption :: Maybe PaymentShippingOption
noPaymentShippingOption = Nothing
{-# INLINE noPaymentShippingOption #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentShippingOption :: GType

-- | Dictionary PaymentValidationErrors (payment-request)
newtype PaymentValidationErrors = PaymentValidationErrors { unPaymentValidationErrors :: JSVal }

instance Eq PaymentValidationErrors where
  (PaymentValidationErrors a) == (PaymentValidationErrors b) = js_eq a b

instance PToJSVal PaymentValidationErrors where
  pToJSVal = unPaymentValidationErrors
  {-# INLINE pToJSVal #-}

instance PFromJSVal PaymentValidationErrors where
  pFromJSVal = PaymentValidationErrors
  {-# INLINE pFromJSVal #-}

instance ToJSVal PaymentValidationErrors where
  toJSVal = return . unPaymentValidationErrors
  {-# INLINE toJSVal #-}

instance FromJSVal PaymentValidationErrors where
  fromJSVal = return . fmap PaymentValidationErrors . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PaymentValidationErrors
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PaymentValidationErrors where
  typeGType _ = gTypePaymentValidationErrors
  {-# INLINE typeGType #-}

noPaymentValidationErrors :: Maybe PaymentValidationErrors
noPaymentValidationErrors = Nothing
{-# INLINE noPaymentValidationErrors #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePaymentValidationErrors :: GType

-- | Functions for this interface are in "GHCJS.DOM.Performance" (hr-time-3).
newtype Performance = Performance { unPerformance :: JSVal }

instance Eq Performance where
  (Performance a) == (Performance b) = js_eq a b

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 = return . fmap Performance . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Performance
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget Performance

instance IsGObject Performance where
  typeGType _ = gTypePerformance
  {-# INLINE typeGType #-}

noPerformance :: Maybe Performance
noPerformance = Nothing
{-# INLINE noPerformance #-}

foreign import javascript unsafe "(() => globalThis[\"Performance\"])" gTypePerformance :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceEntry" (performance-timeline).
newtype PerformanceEntry = PerformanceEntry { unPerformanceEntry :: JSVal }

instance Eq PerformanceEntry where
  (PerformanceEntry a) == (PerformanceEntry b) = js_eq a b

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 = return . fmap PerformanceEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceEntry
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPerformanceEntry o
toPerformanceEntry :: IsPerformanceEntry o => o -> PerformanceEntry
toPerformanceEntry = PerformanceEntry . coerce

instance IsPerformanceEntry PerformanceEntry

instance IsGObject PerformanceEntry where
  typeGType _ = gTypePerformanceEntry
  {-# INLINE typeGType #-}

noPerformanceEntry :: Maybe PerformanceEntry
noPerformanceEntry = Nothing
{-# INLINE noPerformanceEntry #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceEntry\"])" gTypePerformanceEntry :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceEventTiming" (event-timing).
newtype PerformanceEventTiming = PerformanceEventTiming { unPerformanceEventTiming :: JSVal }

instance Eq PerformanceEventTiming where
  (PerformanceEventTiming a) == (PerformanceEventTiming b) = js_eq a b

instance PToJSVal PerformanceEventTiming where
  pToJSVal = unPerformanceEventTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceEventTiming where
  pFromJSVal = PerformanceEventTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceEventTiming where
  toJSVal = return . unPerformanceEventTiming
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceEventTiming where
  fromJSVal = return . fmap PerformanceEventTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceEventTiming
  {-# INLINE fromJSValUnchecked #-}

instance IsPerformanceEntry PerformanceEventTiming

instance IsGObject PerformanceEventTiming where
  typeGType _ = gTypePerformanceEventTiming
  {-# INLINE typeGType #-}

noPerformanceEventTiming :: Maybe PerformanceEventTiming
noPerformanceEventTiming = Nothing
{-# INLINE noPerformanceEventTiming #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceEventTiming\"])" gTypePerformanceEventTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceMark" (user-timing).
newtype PerformanceMark = PerformanceMark { unPerformanceMark :: JSVal }

instance Eq PerformanceMark where
  (PerformanceMark a) == (PerformanceMark b) = js_eq a b

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 = return . fmap PerformanceMark . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceMark
  {-# INLINE fromJSValUnchecked #-}

instance IsPerformanceEntry PerformanceMark

instance IsGObject PerformanceMark where
  typeGType _ = gTypePerformanceMark
  {-# INLINE typeGType #-}

noPerformanceMark :: Maybe PerformanceMark
noPerformanceMark = Nothing
{-# INLINE noPerformanceMark #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceMark\"])" gTypePerformanceMark :: GType

-- | Dictionary PerformanceMarkOptions (user-timing)
newtype PerformanceMarkOptions = PerformanceMarkOptions { unPerformanceMarkOptions :: JSVal }

instance Eq PerformanceMarkOptions where
  (PerformanceMarkOptions a) == (PerformanceMarkOptions b) = js_eq a b

instance PToJSVal PerformanceMarkOptions where
  pToJSVal = unPerformanceMarkOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceMarkOptions where
  pFromJSVal = PerformanceMarkOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceMarkOptions where
  toJSVal = return . unPerformanceMarkOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceMarkOptions where
  fromJSVal = return . fmap PerformanceMarkOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceMarkOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceMarkOptions where
  typeGType _ = gTypePerformanceMarkOptions
  {-# INLINE typeGType #-}

noPerformanceMarkOptions :: Maybe PerformanceMarkOptions
noPerformanceMarkOptions = Nothing
{-# INLINE noPerformanceMarkOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePerformanceMarkOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceMeasure" (user-timing).
newtype PerformanceMeasure = PerformanceMeasure { unPerformanceMeasure :: JSVal }

instance Eq PerformanceMeasure where
  (PerformanceMeasure a) == (PerformanceMeasure b) = js_eq a b

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 = return . fmap PerformanceMeasure . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceMeasure
  {-# INLINE fromJSValUnchecked #-}

instance IsPerformanceEntry PerformanceMeasure

instance IsGObject PerformanceMeasure where
  typeGType _ = gTypePerformanceMeasure
  {-# INLINE typeGType #-}

noPerformanceMeasure :: Maybe PerformanceMeasure
noPerformanceMeasure = Nothing
{-# INLINE noPerformanceMeasure #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceMeasure\"])" gTypePerformanceMeasure :: GType

-- | Dictionary PerformanceMeasureOptions (user-timing)
newtype PerformanceMeasureOptions = PerformanceMeasureOptions { unPerformanceMeasureOptions :: JSVal }

instance Eq PerformanceMeasureOptions where
  (PerformanceMeasureOptions a) == (PerformanceMeasureOptions b) = js_eq a b

instance PToJSVal PerformanceMeasureOptions where
  pToJSVal = unPerformanceMeasureOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceMeasureOptions where
  pFromJSVal = PerformanceMeasureOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceMeasureOptions where
  toJSVal = return . unPerformanceMeasureOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceMeasureOptions where
  fromJSVal = return . fmap PerformanceMeasureOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceMeasureOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceMeasureOptions where
  typeGType _ = gTypePerformanceMeasureOptions
  {-# INLINE typeGType #-}

noPerformanceMeasureOptions :: Maybe PerformanceMeasureOptions
noPerformanceMeasureOptions = Nothing
{-# INLINE noPerformanceMeasureOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePerformanceMeasureOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceNavigation" (navigation-timing-2).
newtype PerformanceNavigation = PerformanceNavigation { unPerformanceNavigation :: JSVal }

instance Eq PerformanceNavigation where
  (PerformanceNavigation a) == (PerformanceNavigation b) = js_eq a b

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 = return . fmap PerformanceNavigation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceNavigation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceNavigation where
  typeGType _ = gTypePerformanceNavigation
  {-# INLINE typeGType #-}

noPerformanceNavigation :: Maybe PerformanceNavigation
noPerformanceNavigation = Nothing
{-# INLINE noPerformanceNavigation #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceNavigation\"])" gTypePerformanceNavigation :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceNavigationTiming" (navigation-timing-2).
newtype PerformanceNavigationTiming = PerformanceNavigationTiming { unPerformanceNavigationTiming :: JSVal }

instance Eq PerformanceNavigationTiming where
  (PerformanceNavigationTiming a) == (PerformanceNavigationTiming b) = js_eq a b

instance PToJSVal PerformanceNavigationTiming where
  pToJSVal = unPerformanceNavigationTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceNavigationTiming where
  pFromJSVal = PerformanceNavigationTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceNavigationTiming where
  toJSVal = return . unPerformanceNavigationTiming
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceNavigationTiming where
  fromJSVal = return . fmap PerformanceNavigationTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceNavigationTiming
  {-# INLINE fromJSValUnchecked #-}

instance IsPerformanceResourceTiming PerformanceNavigationTiming
instance IsPerformanceEntry PerformanceNavigationTiming

instance IsGObject PerformanceNavigationTiming where
  typeGType _ = gTypePerformanceNavigationTiming
  {-# INLINE typeGType #-}

noPerformanceNavigationTiming :: Maybe PerformanceNavigationTiming
noPerformanceNavigationTiming = Nothing
{-# INLINE noPerformanceNavigationTiming #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceNavigationTiming\"])" gTypePerformanceNavigationTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceObserver" (performance-timeline).
newtype PerformanceObserver = PerformanceObserver { unPerformanceObserver :: JSVal }

instance Eq PerformanceObserver where
  (PerformanceObserver a) == (PerformanceObserver b) = js_eq a b

instance PToJSVal PerformanceObserver where
  pToJSVal = unPerformanceObserver
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceObserver where
  pFromJSVal = PerformanceObserver
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceObserver where
  toJSVal = return . unPerformanceObserver
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceObserver where
  fromJSVal = return . fmap PerformanceObserver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceObserver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceObserver where
  typeGType _ = gTypePerformanceObserver
  {-# INLINE typeGType #-}

noPerformanceObserver :: Maybe PerformanceObserver
noPerformanceObserver = Nothing
{-# INLINE noPerformanceObserver #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceObserver\"])" gTypePerformanceObserver :: GType

-- | Dictionary PerformanceObserverCallbackOptions (performance-timeline)
newtype PerformanceObserverCallbackOptions = PerformanceObserverCallbackOptions { unPerformanceObserverCallbackOptions :: JSVal }

instance Eq PerformanceObserverCallbackOptions where
  (PerformanceObserverCallbackOptions a) == (PerformanceObserverCallbackOptions b) = js_eq a b

instance PToJSVal PerformanceObserverCallbackOptions where
  pToJSVal = unPerformanceObserverCallbackOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceObserverCallbackOptions where
  pFromJSVal = PerformanceObserverCallbackOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceObserverCallbackOptions where
  toJSVal = return . unPerformanceObserverCallbackOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceObserverCallbackOptions where
  fromJSVal = return . fmap PerformanceObserverCallbackOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceObserverCallbackOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceObserverCallbackOptions where
  typeGType _ = gTypePerformanceObserverCallbackOptions
  {-# INLINE typeGType #-}

noPerformanceObserverCallbackOptions :: Maybe PerformanceObserverCallbackOptions
noPerformanceObserverCallbackOptions = Nothing
{-# INLINE noPerformanceObserverCallbackOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePerformanceObserverCallbackOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceObserverEntryList" (performance-timeline).
newtype PerformanceObserverEntryList = PerformanceObserverEntryList { unPerformanceObserverEntryList :: JSVal }

instance Eq PerformanceObserverEntryList where
  (PerformanceObserverEntryList a) == (PerformanceObserverEntryList b) = js_eq a b

instance PToJSVal PerformanceObserverEntryList where
  pToJSVal = unPerformanceObserverEntryList
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceObserverEntryList where
  pFromJSVal = PerformanceObserverEntryList
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceObserverEntryList where
  toJSVal = return . unPerformanceObserverEntryList
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceObserverEntryList where
  fromJSVal = return . fmap PerformanceObserverEntryList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceObserverEntryList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceObserverEntryList where
  typeGType _ = gTypePerformanceObserverEntryList
  {-# INLINE typeGType #-}

noPerformanceObserverEntryList :: Maybe PerformanceObserverEntryList
noPerformanceObserverEntryList = Nothing
{-# INLINE noPerformanceObserverEntryList #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceObserverEntryList\"])" gTypePerformanceObserverEntryList :: GType

-- | Dictionary PerformanceObserverInit (performance-timeline)
newtype PerformanceObserverInit = PerformanceObserverInit { unPerformanceObserverInit :: JSVal }

instance Eq PerformanceObserverInit where
  (PerformanceObserverInit a) == (PerformanceObserverInit b) = js_eq a b

instance PToJSVal PerformanceObserverInit where
  pToJSVal = unPerformanceObserverInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceObserverInit where
  pFromJSVal = PerformanceObserverInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceObserverInit where
  toJSVal = return . unPerformanceObserverInit
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceObserverInit where
  fromJSVal = return . fmap PerformanceObserverInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceObserverInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceObserverInit where
  typeGType _ = gTypePerformanceObserverInit
  {-# INLINE typeGType #-}

noPerformanceObserverInit :: Maybe PerformanceObserverInit
noPerformanceObserverInit = Nothing
{-# INLINE noPerformanceObserverInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePerformanceObserverInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformancePaintTiming" (paint-timing).
newtype PerformancePaintTiming = PerformancePaintTiming { unPerformancePaintTiming :: JSVal }

instance Eq PerformancePaintTiming where
  (PerformancePaintTiming a) == (PerformancePaintTiming b) = js_eq a b

instance PToJSVal PerformancePaintTiming where
  pToJSVal = unPerformancePaintTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformancePaintTiming where
  pFromJSVal = PerformancePaintTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformancePaintTiming where
  toJSVal = return . unPerformancePaintTiming
  {-# INLINE toJSVal #-}

instance FromJSVal PerformancePaintTiming where
  fromJSVal = return . fmap PerformancePaintTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformancePaintTiming
  {-# INLINE fromJSValUnchecked #-}

instance IsPaintTimingMixin PerformancePaintTiming
instance IsPerformanceEntry PerformancePaintTiming

instance IsGObject PerformancePaintTiming where
  typeGType _ = gTypePerformancePaintTiming
  {-# INLINE typeGType #-}

noPerformancePaintTiming :: Maybe PerformancePaintTiming
noPerformancePaintTiming = Nothing
{-# INLINE noPerformancePaintTiming #-}

foreign import javascript unsafe "(() => globalThis[\"PerformancePaintTiming\"])" gTypePerformancePaintTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceResourceTiming" (resource-timing).
newtype PerformanceResourceTiming = PerformanceResourceTiming { unPerformanceResourceTiming :: JSVal }

instance Eq PerformanceResourceTiming where
  (PerformanceResourceTiming a) == (PerformanceResourceTiming b) = js_eq a b

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 = return . fmap PerformanceResourceTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceResourceTiming
  {-# INLINE fromJSValUnchecked #-}

class (IsPerformanceEntry o, IsGObject o) => IsPerformanceResourceTiming o
toPerformanceResourceTiming :: IsPerformanceResourceTiming o => o -> PerformanceResourceTiming
toPerformanceResourceTiming = PerformanceResourceTiming . coerce

instance IsPerformanceResourceTiming PerformanceResourceTiming
instance IsPerformanceEntry PerformanceResourceTiming

instance IsGObject PerformanceResourceTiming where
  typeGType _ = gTypePerformanceResourceTiming
  {-# INLINE typeGType #-}

noPerformanceResourceTiming :: Maybe PerformanceResourceTiming
noPerformanceResourceTiming = Nothing
{-# INLINE noPerformanceResourceTiming #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceResourceTiming\"])" gTypePerformanceResourceTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceServerTiming" (server-timing).
newtype PerformanceServerTiming = PerformanceServerTiming { unPerformanceServerTiming :: JSVal }

instance Eq PerformanceServerTiming where
  (PerformanceServerTiming a) == (PerformanceServerTiming b) = js_eq a b

instance PToJSVal PerformanceServerTiming where
  pToJSVal = unPerformanceServerTiming
  {-# INLINE pToJSVal #-}

instance PFromJSVal PerformanceServerTiming where
  pFromJSVal = PerformanceServerTiming
  {-# INLINE pFromJSVal #-}

instance ToJSVal PerformanceServerTiming where
  toJSVal = return . unPerformanceServerTiming
  {-# INLINE toJSVal #-}

instance FromJSVal PerformanceServerTiming where
  fromJSVal = return . fmap PerformanceServerTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceServerTiming
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceServerTiming where
  typeGType _ = gTypePerformanceServerTiming
  {-# INLINE typeGType #-}

noPerformanceServerTiming :: Maybe PerformanceServerTiming
noPerformanceServerTiming = Nothing
{-# INLINE noPerformanceServerTiming #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceServerTiming\"])" gTypePerformanceServerTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.PerformanceTiming" (navigation-timing-2).
newtype PerformanceTiming = PerformanceTiming { unPerformanceTiming :: JSVal }

instance Eq PerformanceTiming where
  (PerformanceTiming a) == (PerformanceTiming b) = js_eq a b

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 = return . fmap PerformanceTiming . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PerformanceTiming
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PerformanceTiming where
  typeGType _ = gTypePerformanceTiming
  {-# INLINE typeGType #-}

noPerformanceTiming :: Maybe PerformanceTiming
noPerformanceTiming = Nothing
{-# INLINE noPerformanceTiming #-}

foreign import javascript unsafe "(() => globalThis[\"PerformanceTiming\"])" gTypePerformanceTiming :: GType

-- | Functions for this interface are in "GHCJS.DOM.PeriodicWave" (webaudio-1.1).
newtype PeriodicWave = PeriodicWave { unPeriodicWave :: JSVal }

instance Eq PeriodicWave where
  (PeriodicWave a) == (PeriodicWave b) = js_eq a b

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 = return . fmap PeriodicWave . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PeriodicWave
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PeriodicWave where
  typeGType _ = gTypePeriodicWave
  {-# INLINE typeGType #-}

noPeriodicWave :: Maybe PeriodicWave
noPeriodicWave = Nothing
{-# INLINE noPeriodicWave #-}

foreign import javascript unsafe "(() => globalThis[\"PeriodicWave\"])" gTypePeriodicWave :: GType

-- | Dictionary PeriodicWaveConstraints (webaudio-1.1)
newtype PeriodicWaveConstraints = PeriodicWaveConstraints { unPeriodicWaveConstraints :: JSVal }

instance Eq PeriodicWaveConstraints where
  (PeriodicWaveConstraints a) == (PeriodicWaveConstraints b) = js_eq a b

instance PToJSVal PeriodicWaveConstraints where
  pToJSVal = unPeriodicWaveConstraints
  {-# INLINE pToJSVal #-}

instance PFromJSVal PeriodicWaveConstraints where
  pFromJSVal = PeriodicWaveConstraints
  {-# INLINE pFromJSVal #-}

instance ToJSVal PeriodicWaveConstraints where
  toJSVal = return . unPeriodicWaveConstraints
  {-# INLINE toJSVal #-}

instance FromJSVal PeriodicWaveConstraints where
  fromJSVal = return . fmap PeriodicWaveConstraints . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PeriodicWaveConstraints
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPeriodicWaveConstraints o
toPeriodicWaveConstraints :: IsPeriodicWaveConstraints o => o -> PeriodicWaveConstraints
toPeriodicWaveConstraints = PeriodicWaveConstraints . coerce

instance IsPeriodicWaveConstraints PeriodicWaveConstraints

instance IsGObject PeriodicWaveConstraints where
  typeGType _ = gTypePeriodicWaveConstraints
  {-# INLINE typeGType #-}

noPeriodicWaveConstraints :: Maybe PeriodicWaveConstraints
noPeriodicWaveConstraints = Nothing
{-# INLINE noPeriodicWaveConstraints #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePeriodicWaveConstraints :: GType

-- | Dictionary PeriodicWaveOptions (webaudio-1.1)
newtype PeriodicWaveOptions = PeriodicWaveOptions { unPeriodicWaveOptions :: JSVal }

instance Eq PeriodicWaveOptions where
  (PeriodicWaveOptions a) == (PeriodicWaveOptions b) = js_eq a b

instance PToJSVal PeriodicWaveOptions where
  pToJSVal = unPeriodicWaveOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PeriodicWaveOptions where
  pFromJSVal = PeriodicWaveOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PeriodicWaveOptions where
  toJSVal = return . unPeriodicWaveOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PeriodicWaveOptions where
  fromJSVal = return . fmap PeriodicWaveOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PeriodicWaveOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsPeriodicWaveConstraints PeriodicWaveOptions

instance IsGObject PeriodicWaveOptions where
  typeGType _ = gTypePeriodicWaveOptions
  {-# INLINE typeGType #-}

noPeriodicWaveOptions :: Maybe PeriodicWaveOptions
noPeriodicWaveOptions = Nothing
{-# INLINE noPeriodicWaveOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePeriodicWaveOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PermissionStatus" (permissions).
newtype PermissionStatus = PermissionStatus { unPermissionStatus :: JSVal }

instance Eq PermissionStatus where
  (PermissionStatus a) == (PermissionStatus b) = js_eq a b

instance PToJSVal PermissionStatus where
  pToJSVal = unPermissionStatus
  {-# INLINE pToJSVal #-}

instance PFromJSVal PermissionStatus where
  pFromJSVal = PermissionStatus
  {-# INLINE pFromJSVal #-}

instance ToJSVal PermissionStatus where
  toJSVal = return . unPermissionStatus
  {-# INLINE toJSVal #-}

instance FromJSVal PermissionStatus where
  fromJSVal = return . fmap PermissionStatus . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PermissionStatus
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget PermissionStatus

instance IsGObject PermissionStatus where
  typeGType _ = gTypePermissionStatus
  {-# INLINE typeGType #-}

noPermissionStatus :: Maybe PermissionStatus
noPermissionStatus = Nothing
{-# INLINE noPermissionStatus #-}

foreign import javascript unsafe "(() => globalThis[\"PermissionStatus\"])" gTypePermissionStatus :: GType

-- | Functions for this interface are in "GHCJS.DOM.Permissions" (permissions).
newtype Permissions = Permissions { unPermissions :: JSVal }

instance Eq Permissions where
  (Permissions a) == (Permissions b) = js_eq a b

instance PToJSVal Permissions where
  pToJSVal = unPermissions
  {-# INLINE pToJSVal #-}

instance PFromJSVal Permissions where
  pFromJSVal = Permissions
  {-# INLINE pFromJSVal #-}

instance ToJSVal Permissions where
  toJSVal = return . unPermissions
  {-# INLINE toJSVal #-}

instance FromJSVal Permissions where
  fromJSVal = return . fmap Permissions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Permissions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Permissions where
  typeGType _ = gTypePermissions
  {-# INLINE typeGType #-}

noPermissions :: Maybe Permissions
noPermissions = Nothing
{-# INLINE noPermissions #-}

foreign import javascript unsafe "(() => globalThis[\"Permissions\"])" gTypePermissions :: GType

-- | Dictionary PhotoCapabilities (image-capture)
newtype PhotoCapabilities = PhotoCapabilities { unPhotoCapabilities :: JSVal }

instance Eq PhotoCapabilities where
  (PhotoCapabilities a) == (PhotoCapabilities b) = js_eq a b

instance PToJSVal PhotoCapabilities where
  pToJSVal = unPhotoCapabilities
  {-# INLINE pToJSVal #-}

instance PFromJSVal PhotoCapabilities where
  pFromJSVal = PhotoCapabilities
  {-# INLINE pFromJSVal #-}

instance ToJSVal PhotoCapabilities where
  toJSVal = return . unPhotoCapabilities
  {-# INLINE toJSVal #-}

instance FromJSVal PhotoCapabilities where
  fromJSVal = return . fmap PhotoCapabilities . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PhotoCapabilities
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PhotoCapabilities where
  typeGType _ = gTypePhotoCapabilities
  {-# INLINE typeGType #-}

noPhotoCapabilities :: Maybe PhotoCapabilities
noPhotoCapabilities = Nothing
{-# INLINE noPhotoCapabilities #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePhotoCapabilities :: GType

-- | Dictionary PhotoSettings (image-capture)
newtype PhotoSettings = PhotoSettings { unPhotoSettings :: JSVal }

instance Eq PhotoSettings where
  (PhotoSettings a) == (PhotoSettings b) = js_eq a b

instance PToJSVal PhotoSettings where
  pToJSVal = unPhotoSettings
  {-# INLINE pToJSVal #-}

instance PFromJSVal PhotoSettings where
  pFromJSVal = PhotoSettings
  {-# INLINE pFromJSVal #-}

instance ToJSVal PhotoSettings where
  toJSVal = return . unPhotoSettings
  {-# INLINE toJSVal #-}

instance FromJSVal PhotoSettings where
  fromJSVal = return . fmap PhotoSettings . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PhotoSettings
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PhotoSettings where
  typeGType _ = gTypePhotoSettings
  {-# INLINE typeGType #-}

noPhotoSettings :: Maybe PhotoSettings
noPhotoSettings = Nothing
{-# INLINE noPhotoSettings #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePhotoSettings :: GType

-- | Functions for this interface are in "GHCJS.DOM.PictureInPictureEvent" (picture-in-picture).
newtype PictureInPictureEvent = PictureInPictureEvent { unPictureInPictureEvent :: JSVal }

instance Eq PictureInPictureEvent where
  (PictureInPictureEvent a) == (PictureInPictureEvent b) = js_eq a b

instance PToJSVal PictureInPictureEvent where
  pToJSVal = unPictureInPictureEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PictureInPictureEvent where
  pFromJSVal = PictureInPictureEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PictureInPictureEvent where
  toJSVal = return . unPictureInPictureEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PictureInPictureEvent where
  fromJSVal = return . fmap PictureInPictureEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PictureInPictureEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent PictureInPictureEvent

instance IsGObject PictureInPictureEvent where
  typeGType _ = gTypePictureInPictureEvent
  {-# INLINE typeGType #-}

noPictureInPictureEvent :: Maybe PictureInPictureEvent
noPictureInPictureEvent = Nothing
{-# INLINE noPictureInPictureEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PictureInPictureEvent\"])" gTypePictureInPictureEvent :: GType

-- | Dictionary PictureInPictureEventInit (picture-in-picture)
newtype PictureInPictureEventInit = PictureInPictureEventInit { unPictureInPictureEventInit :: JSVal }

instance Eq PictureInPictureEventInit where
  (PictureInPictureEventInit a) == (PictureInPictureEventInit b) = js_eq a b

instance PToJSVal PictureInPictureEventInit where
  pToJSVal = unPictureInPictureEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PictureInPictureEventInit where
  pFromJSVal = PictureInPictureEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PictureInPictureEventInit where
  toJSVal = return . unPictureInPictureEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PictureInPictureEventInit where
  fromJSVal = return . fmap PictureInPictureEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PictureInPictureEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit PictureInPictureEventInit

instance IsGObject PictureInPictureEventInit where
  typeGType _ = gTypePictureInPictureEventInit
  {-# INLINE typeGType #-}

noPictureInPictureEventInit :: Maybe PictureInPictureEventInit
noPictureInPictureEventInit = Nothing
{-# INLINE noPictureInPictureEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePictureInPictureEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PictureInPictureWindow" (picture-in-picture).
newtype PictureInPictureWindow = PictureInPictureWindow { unPictureInPictureWindow :: JSVal }

instance Eq PictureInPictureWindow where
  (PictureInPictureWindow a) == (PictureInPictureWindow b) = js_eq a b

instance PToJSVal PictureInPictureWindow where
  pToJSVal = unPictureInPictureWindow
  {-# INLINE pToJSVal #-}

instance PFromJSVal PictureInPictureWindow where
  pFromJSVal = PictureInPictureWindow
  {-# INLINE pFromJSVal #-}

instance ToJSVal PictureInPictureWindow where
  toJSVal = return . unPictureInPictureWindow
  {-# INLINE toJSVal #-}

instance FromJSVal PictureInPictureWindow where
  fromJSVal = return . fmap PictureInPictureWindow . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PictureInPictureWindow
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget PictureInPictureWindow

instance IsGObject PictureInPictureWindow where
  typeGType _ = gTypePictureInPictureWindow
  {-# INLINE typeGType #-}

noPictureInPictureWindow :: Maybe PictureInPictureWindow
noPictureInPictureWindow = Nothing
{-# INLINE noPictureInPictureWindow #-}

foreign import javascript unsafe "(() => globalThis[\"PictureInPictureWindow\"])" gTypePictureInPictureWindow :: GType

-- | Dictionary PlaneLayout (webcodecs)
newtype PlaneLayout = PlaneLayout { unPlaneLayout :: JSVal }

instance Eq PlaneLayout where
  (PlaneLayout a) == (PlaneLayout b) = js_eq a b

instance PToJSVal PlaneLayout where
  pToJSVal = unPlaneLayout
  {-# INLINE pToJSVal #-}

instance PFromJSVal PlaneLayout where
  pFromJSVal = PlaneLayout
  {-# INLINE pFromJSVal #-}

instance ToJSVal PlaneLayout where
  toJSVal = return . unPlaneLayout
  {-# INLINE toJSVal #-}

instance FromJSVal PlaneLayout where
  fromJSVal = return . fmap PlaneLayout . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PlaneLayout
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PlaneLayout where
  typeGType _ = gTypePlaneLayout
  {-# INLINE typeGType #-}

noPlaneLayout :: Maybe PlaneLayout
noPlaneLayout = Nothing
{-# INLINE noPlaneLayout #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePlaneLayout :: GType

-- | Functions for this interface are in "GHCJS.DOM.Plugin" (html).
newtype Plugin = Plugin { unPlugin :: JSVal }

instance Eq Plugin where
  (Plugin a) == (Plugin b) = js_eq a b

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 = return . fmap Plugin . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Plugin
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Plugin where
  typeGType _ = gTypePlugin
  {-# INLINE typeGType #-}

noPlugin :: Maybe Plugin
noPlugin = Nothing
{-# INLINE noPlugin #-}

foreign import javascript unsafe "(() => globalThis[\"Plugin\"])" gTypePlugin :: GType

-- | Functions for this interface are in "GHCJS.DOM.PluginArray" (html).
newtype PluginArray = PluginArray { unPluginArray :: JSVal }

instance Eq PluginArray where
  (PluginArray a) == (PluginArray b) = js_eq a b

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 = return . fmap PluginArray . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PluginArray
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PluginArray where
  typeGType _ = gTypePluginArray
  {-# INLINE typeGType #-}

noPluginArray :: Maybe PluginArray
noPluginArray = Nothing
{-# INLINE noPluginArray #-}

foreign import javascript unsafe "(() => globalThis[\"PluginArray\"])" gTypePluginArray :: GType

-- | Dictionary Point2D (image-capture)
newtype Point2D = Point2D { unPoint2D :: JSVal }

instance Eq Point2D where
  (Point2D a) == (Point2D b) = js_eq a b

instance PToJSVal Point2D where
  pToJSVal = unPoint2D
  {-# INLINE pToJSVal #-}

instance PFromJSVal Point2D where
  pFromJSVal = Point2D
  {-# INLINE pFromJSVal #-}

instance ToJSVal Point2D where
  toJSVal = return . unPoint2D
  {-# INLINE toJSVal #-}

instance FromJSVal Point2D where
  fromJSVal = return . fmap Point2D . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Point2D
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Point2D where
  typeGType _ = gTypePoint2D
  {-# INLINE typeGType #-}

noPoint2D :: Maybe Point2D
noPoint2D = Nothing
{-# INLINE noPoint2D #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePoint2D :: GType

-- | Functions for this interface are in "GHCJS.DOM.PointerEvent" (pointerevents4).
newtype PointerEvent = PointerEvent { unPointerEvent :: JSVal }

instance Eq PointerEvent where
  (PointerEvent a) == (PointerEvent b) = js_eq a b

instance PToJSVal PointerEvent where
  pToJSVal = unPointerEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PointerEvent where
  pFromJSVal = PointerEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PointerEvent where
  toJSVal = return . unPointerEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PointerEvent where
  fromJSVal = return . fmap PointerEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PointerEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsMouseEvent PointerEvent
instance IsUIEvent PointerEvent
instance IsEvent PointerEvent

instance IsGObject PointerEvent where
  typeGType _ = gTypePointerEvent
  {-# INLINE typeGType #-}

noPointerEvent :: Maybe PointerEvent
noPointerEvent = Nothing
{-# INLINE noPointerEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PointerEvent\"])" gTypePointerEvent :: GType

-- | Dictionary PointerEventInit (pointerevents4)
newtype PointerEventInit = PointerEventInit { unPointerEventInit :: JSVal }

instance Eq PointerEventInit where
  (PointerEventInit a) == (PointerEventInit b) = js_eq a b

instance PToJSVal PointerEventInit where
  pToJSVal = unPointerEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PointerEventInit where
  pFromJSVal = PointerEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PointerEventInit where
  toJSVal = return . unPointerEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PointerEventInit where
  fromJSVal = return . fmap PointerEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PointerEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsMouseEventInit PointerEventInit
instance IsEventModifierInit PointerEventInit
instance IsUIEventInit PointerEventInit
instance IsEventInit PointerEventInit

instance IsGObject PointerEventInit where
  typeGType _ = gTypePointerEventInit
  {-# INLINE typeGType #-}

noPointerEventInit :: Maybe PointerEventInit
noPointerEventInit = Nothing
{-# INLINE noPointerEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePointerEventInit :: GType

-- | Dictionary PointerLockOptions (pointerlock-2)
newtype PointerLockOptions = PointerLockOptions { unPointerLockOptions :: JSVal }

instance Eq PointerLockOptions where
  (PointerLockOptions a) == (PointerLockOptions b) = js_eq a b

instance PToJSVal PointerLockOptions where
  pToJSVal = unPointerLockOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PointerLockOptions where
  pFromJSVal = PointerLockOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PointerLockOptions where
  toJSVal = return . unPointerLockOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PointerLockOptions where
  fromJSVal = return . fmap PointerLockOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PointerLockOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PointerLockOptions where
  typeGType _ = gTypePointerLockOptions
  {-# INLINE typeGType #-}

noPointerLockOptions :: Maybe PointerLockOptions
noPointerLockOptions = Nothing
{-# INLINE noPointerLockOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePointerLockOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.PopStateEvent" (html).
newtype PopStateEvent = PopStateEvent { unPopStateEvent :: JSVal }

instance Eq PopStateEvent where
  (PopStateEvent a) == (PopStateEvent b) = js_eq a b

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 = return . fmap PopStateEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PopStateEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent PopStateEvent

instance IsGObject PopStateEvent where
  typeGType _ = gTypePopStateEvent
  {-# INLINE typeGType #-}

noPopStateEvent :: Maybe PopStateEvent
noPopStateEvent = Nothing
{-# INLINE noPopStateEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PopStateEvent\"])" gTypePopStateEvent :: GType

-- | Dictionary PopStateEventInit (html)
newtype PopStateEventInit = PopStateEventInit { unPopStateEventInit :: JSVal }

instance Eq PopStateEventInit where
  (PopStateEventInit a) == (PopStateEventInit b) = js_eq a b

instance PToJSVal PopStateEventInit where
  pToJSVal = unPopStateEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PopStateEventInit where
  pFromJSVal = PopStateEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PopStateEventInit where
  toJSVal = return . unPopStateEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PopStateEventInit where
  fromJSVal = return . fmap PopStateEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PopStateEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit PopStateEventInit

instance IsGObject PopStateEventInit where
  typeGType _ = gTypePopStateEventInit
  {-# INLINE typeGType #-}

noPopStateEventInit :: Maybe PopStateEventInit
noPopStateEventInit = Nothing
{-# INLINE noPopStateEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePopStateEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PopoverTargetAttributes" (html).
newtype PopoverTargetAttributes = PopoverTargetAttributes { unPopoverTargetAttributes :: JSVal }

instance Eq PopoverTargetAttributes where
  (PopoverTargetAttributes a) == (PopoverTargetAttributes b) = js_eq a b

instance PToJSVal PopoverTargetAttributes where
  pToJSVal = unPopoverTargetAttributes
  {-# INLINE pToJSVal #-}

instance PFromJSVal PopoverTargetAttributes where
  pFromJSVal = PopoverTargetAttributes
  {-# INLINE pFromJSVal #-}

instance ToJSVal PopoverTargetAttributes where
  toJSVal = return . unPopoverTargetAttributes
  {-# INLINE toJSVal #-}

instance FromJSVal PopoverTargetAttributes where
  fromJSVal = return . fmap PopoverTargetAttributes . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PopoverTargetAttributes
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPopoverTargetAttributes o
toPopoverTargetAttributes :: IsPopoverTargetAttributes o => o -> PopoverTargetAttributes
toPopoverTargetAttributes = PopoverTargetAttributes . coerce

instance IsPopoverTargetAttributes PopoverTargetAttributes

instance IsGObject PopoverTargetAttributes where
  typeGType _ = gTypePopoverTargetAttributes
  {-# INLINE typeGType #-}

noPopoverTargetAttributes :: Maybe PopoverTargetAttributes
noPopoverTargetAttributes = Nothing
{-# INLINE noPopoverTargetAttributes #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePopoverTargetAttributes :: GType

-- | Dictionary PositionOptions (geolocation)
newtype PositionOptions = PositionOptions { unPositionOptions :: JSVal }

instance Eq PositionOptions where
  (PositionOptions a) == (PositionOptions b) = js_eq a b

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 = return . fmap PositionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PositionOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PositionOptions where
  typeGType _ = gTypePositionOptions
  {-# INLINE typeGType #-}

noPositionOptions :: Maybe PositionOptions
noPositionOptions = Nothing
{-# INLINE noPositionOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePositionOptions :: GType

-- | Dictionary PrivateToken (trust-token-api)
newtype PrivateToken = PrivateToken { unPrivateToken :: JSVal }

instance Eq PrivateToken where
  (PrivateToken a) == (PrivateToken b) = js_eq a b

instance PToJSVal PrivateToken where
  pToJSVal = unPrivateToken
  {-# INLINE pToJSVal #-}

instance PFromJSVal PrivateToken where
  pFromJSVal = PrivateToken
  {-# INLINE pFromJSVal #-}

instance ToJSVal PrivateToken where
  toJSVal = return . unPrivateToken
  {-# INLINE toJSVal #-}

instance FromJSVal PrivateToken where
  fromJSVal = return . fmap PrivateToken . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PrivateToken
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PrivateToken where
  typeGType _ = gTypePrivateToken
  {-# INLINE typeGType #-}

noPrivateToken :: Maybe PrivateToken
noPrivateToken = Nothing
{-# INLINE noPrivateToken #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePrivateToken :: GType

-- | Functions for this interface are in "GHCJS.DOM.ProcessingInstruction" (dom).
newtype ProcessingInstruction = ProcessingInstruction { unProcessingInstruction :: JSVal }

instance Eq ProcessingInstruction where
  (ProcessingInstruction a) == (ProcessingInstruction b) = js_eq a b

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 = return . fmap ProcessingInstruction . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ProcessingInstruction
  {-# INLINE fromJSValUnchecked #-}

instance IsLinkStyle ProcessingInstruction
instance IsCharacterData ProcessingInstruction
instance IsChildNode ProcessingInstruction
instance IsNonDocumentTypeChildNode ProcessingInstruction
instance IsNode ProcessingInstruction
instance IsEventTarget ProcessingInstruction

instance IsGObject ProcessingInstruction where
  typeGType _ = gTypeProcessingInstruction
  {-# INLINE typeGType #-}

noProcessingInstruction :: Maybe ProcessingInstruction
noProcessingInstruction = Nothing
{-# INLINE noProcessingInstruction #-}

foreign import javascript unsafe "(() => globalThis[\"ProcessingInstruction\"])" gTypeProcessingInstruction :: GType

-- | Functions for this interface are in "GHCJS.DOM.ProgressEvent" (xhr).
newtype ProgressEvent = ProgressEvent { unProgressEvent :: JSVal }

instance Eq ProgressEvent where
  (ProgressEvent a) == (ProgressEvent b) = js_eq a b

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 = return . fmap ProgressEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ProgressEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent ProgressEvent

instance IsGObject ProgressEvent where
  typeGType _ = gTypeProgressEvent
  {-# INLINE typeGType #-}

noProgressEvent :: Maybe ProgressEvent
noProgressEvent = Nothing
{-# INLINE noProgressEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ProgressEvent\"])" gTypeProgressEvent :: GType

-- | Dictionary ProgressEventInit (xhr)
newtype ProgressEventInit = ProgressEventInit { unProgressEventInit :: JSVal }

instance Eq ProgressEventInit where
  (ProgressEventInit a) == (ProgressEventInit b) = js_eq a b

instance PToJSVal ProgressEventInit where
  pToJSVal = unProgressEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ProgressEventInit where
  pFromJSVal = ProgressEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ProgressEventInit where
  toJSVal = return . unProgressEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ProgressEventInit where
  fromJSVal = return . fmap ProgressEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ProgressEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit ProgressEventInit

instance IsGObject ProgressEventInit where
  typeGType _ = gTypeProgressEventInit
  {-# INLINE typeGType #-}

noProgressEventInit :: Maybe ProgressEventInit
noProgressEventInit = Nothing
{-# INLINE noProgressEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeProgressEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PromiseRejectionEvent" (html).
newtype PromiseRejectionEvent = PromiseRejectionEvent { unPromiseRejectionEvent :: JSVal }

instance Eq PromiseRejectionEvent where
  (PromiseRejectionEvent a) == (PromiseRejectionEvent b) = js_eq a b

instance PToJSVal PromiseRejectionEvent where
  pToJSVal = unPromiseRejectionEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PromiseRejectionEvent where
  pFromJSVal = PromiseRejectionEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PromiseRejectionEvent where
  toJSVal = return . unPromiseRejectionEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PromiseRejectionEvent where
  fromJSVal = return . fmap PromiseRejectionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PromiseRejectionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent PromiseRejectionEvent

instance IsGObject PromiseRejectionEvent where
  typeGType _ = gTypePromiseRejectionEvent
  {-# INLINE typeGType #-}

noPromiseRejectionEvent :: Maybe PromiseRejectionEvent
noPromiseRejectionEvent = Nothing
{-# INLINE noPromiseRejectionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PromiseRejectionEvent\"])" gTypePromiseRejectionEvent :: GType

-- | Dictionary PromiseRejectionEventInit (html)
newtype PromiseRejectionEventInit = PromiseRejectionEventInit { unPromiseRejectionEventInit :: JSVal }

instance Eq PromiseRejectionEventInit where
  (PromiseRejectionEventInit a) == (PromiseRejectionEventInit b) = js_eq a b

instance PToJSVal PromiseRejectionEventInit where
  pToJSVal = unPromiseRejectionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PromiseRejectionEventInit where
  pFromJSVal = PromiseRejectionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PromiseRejectionEventInit where
  toJSVal = return . unPromiseRejectionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PromiseRejectionEventInit where
  fromJSVal = return . fmap PromiseRejectionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PromiseRejectionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit PromiseRejectionEventInit

instance IsGObject PromiseRejectionEventInit where
  typeGType _ = gTypePromiseRejectionEventInit
  {-# INLINE typeGType #-}

noPromiseRejectionEventInit :: Maybe PromiseRejectionEventInit
noPromiseRejectionEventInit = Nothing
{-# INLINE noPromiseRejectionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePromiseRejectionEventInit :: GType

-- | Dictionary PropertyDefinition (css-properties-values-api-1)
newtype PropertyDefinition = PropertyDefinition { unPropertyDefinition :: JSVal }

instance Eq PropertyDefinition where
  (PropertyDefinition a) == (PropertyDefinition b) = js_eq a b

instance PToJSVal PropertyDefinition where
  pToJSVal = unPropertyDefinition
  {-# INLINE pToJSVal #-}

instance PFromJSVal PropertyDefinition where
  pFromJSVal = PropertyDefinition
  {-# INLINE pFromJSVal #-}

instance ToJSVal PropertyDefinition where
  toJSVal = return . unPropertyDefinition
  {-# INLINE toJSVal #-}

instance FromJSVal PropertyDefinition where
  fromJSVal = return . fmap PropertyDefinition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PropertyDefinition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PropertyDefinition where
  typeGType _ = gTypePropertyDefinition
  {-# INLINE typeGType #-}

noPropertyDefinition :: Maybe PropertyDefinition
noPropertyDefinition = Nothing
{-# INLINE noPropertyDefinition #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePropertyDefinition :: GType

-- | Functions for this interface are in "GHCJS.DOM.PublicKeyCredential" (webauthn-4).
newtype PublicKeyCredential = PublicKeyCredential { unPublicKeyCredential :: JSVal }

instance Eq PublicKeyCredential where
  (PublicKeyCredential a) == (PublicKeyCredential b) = js_eq a b

instance PToJSVal PublicKeyCredential where
  pToJSVal = unPublicKeyCredential
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredential where
  pFromJSVal = PublicKeyCredential
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredential where
  toJSVal = return . unPublicKeyCredential
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredential where
  fromJSVal = return . fmap PublicKeyCredential . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredential
  {-# INLINE fromJSValUnchecked #-}

instance IsCredential PublicKeyCredential

instance IsGObject PublicKeyCredential where
  typeGType _ = gTypePublicKeyCredential
  {-# INLINE typeGType #-}

noPublicKeyCredential :: Maybe PublicKeyCredential
noPublicKeyCredential = Nothing
{-# INLINE noPublicKeyCredential #-}

foreign import javascript unsafe "(() => globalThis[\"PublicKeyCredential\"])" gTypePublicKeyCredential :: GType

-- | Dictionary PublicKeyCredentialCreationOptions (webauthn-4)
newtype PublicKeyCredentialCreationOptions = PublicKeyCredentialCreationOptions { unPublicKeyCredentialCreationOptions :: JSVal }

instance Eq PublicKeyCredentialCreationOptions where
  (PublicKeyCredentialCreationOptions a) == (PublicKeyCredentialCreationOptions b) = js_eq a b

instance PToJSVal PublicKeyCredentialCreationOptions where
  pToJSVal = unPublicKeyCredentialCreationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialCreationOptions where
  pFromJSVal = PublicKeyCredentialCreationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialCreationOptions where
  toJSVal = return . unPublicKeyCredentialCreationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialCreationOptions where
  fromJSVal = return . fmap PublicKeyCredentialCreationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialCreationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialCreationOptions where
  typeGType _ = gTypePublicKeyCredentialCreationOptions
  {-# INLINE typeGType #-}

noPublicKeyCredentialCreationOptions :: Maybe PublicKeyCredentialCreationOptions
noPublicKeyCredentialCreationOptions = Nothing
{-# INLINE noPublicKeyCredentialCreationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialCreationOptions :: GType

-- | Dictionary PublicKeyCredentialCreationOptionsJSON (webauthn-4)
newtype PublicKeyCredentialCreationOptionsJSON = PublicKeyCredentialCreationOptionsJSON { unPublicKeyCredentialCreationOptionsJSON :: JSVal }

instance Eq PublicKeyCredentialCreationOptionsJSON where
  (PublicKeyCredentialCreationOptionsJSON a) == (PublicKeyCredentialCreationOptionsJSON b) = js_eq a b

instance PToJSVal PublicKeyCredentialCreationOptionsJSON where
  pToJSVal = unPublicKeyCredentialCreationOptionsJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialCreationOptionsJSON where
  pFromJSVal = PublicKeyCredentialCreationOptionsJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialCreationOptionsJSON where
  toJSVal = return . unPublicKeyCredentialCreationOptionsJSON
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialCreationOptionsJSON where
  fromJSVal = return . fmap PublicKeyCredentialCreationOptionsJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialCreationOptionsJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialCreationOptionsJSON where
  typeGType _ = gTypePublicKeyCredentialCreationOptionsJSON
  {-# INLINE typeGType #-}

noPublicKeyCredentialCreationOptionsJSON :: Maybe PublicKeyCredentialCreationOptionsJSON
noPublicKeyCredentialCreationOptionsJSON = Nothing
{-# INLINE noPublicKeyCredentialCreationOptionsJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialCreationOptionsJSON :: GType

-- | Dictionary PublicKeyCredentialDescriptor (webauthn-4)
newtype PublicKeyCredentialDescriptor = PublicKeyCredentialDescriptor { unPublicKeyCredentialDescriptor :: JSVal }

instance Eq PublicKeyCredentialDescriptor where
  (PublicKeyCredentialDescriptor a) == (PublicKeyCredentialDescriptor b) = js_eq a b

instance PToJSVal PublicKeyCredentialDescriptor where
  pToJSVal = unPublicKeyCredentialDescriptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialDescriptor where
  pFromJSVal = PublicKeyCredentialDescriptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialDescriptor where
  toJSVal = return . unPublicKeyCredentialDescriptor
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialDescriptor where
  fromJSVal = return . fmap PublicKeyCredentialDescriptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialDescriptor
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialDescriptor where
  typeGType _ = gTypePublicKeyCredentialDescriptor
  {-# INLINE typeGType #-}

noPublicKeyCredentialDescriptor :: Maybe PublicKeyCredentialDescriptor
noPublicKeyCredentialDescriptor = Nothing
{-# INLINE noPublicKeyCredentialDescriptor #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialDescriptor :: GType

-- | Dictionary PublicKeyCredentialDescriptorJSON (webauthn-4)
newtype PublicKeyCredentialDescriptorJSON = PublicKeyCredentialDescriptorJSON { unPublicKeyCredentialDescriptorJSON :: JSVal }

instance Eq PublicKeyCredentialDescriptorJSON where
  (PublicKeyCredentialDescriptorJSON a) == (PublicKeyCredentialDescriptorJSON b) = js_eq a b

instance PToJSVal PublicKeyCredentialDescriptorJSON where
  pToJSVal = unPublicKeyCredentialDescriptorJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialDescriptorJSON where
  pFromJSVal = PublicKeyCredentialDescriptorJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialDescriptorJSON where
  toJSVal = return . unPublicKeyCredentialDescriptorJSON
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialDescriptorJSON where
  fromJSVal = return . fmap PublicKeyCredentialDescriptorJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialDescriptorJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialDescriptorJSON where
  typeGType _ = gTypePublicKeyCredentialDescriptorJSON
  {-# INLINE typeGType #-}

noPublicKeyCredentialDescriptorJSON :: Maybe PublicKeyCredentialDescriptorJSON
noPublicKeyCredentialDescriptorJSON = Nothing
{-# INLINE noPublicKeyCredentialDescriptorJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialDescriptorJSON :: GType

-- | Dictionary PublicKeyCredentialEntity (webauthn-4)
newtype PublicKeyCredentialEntity = PublicKeyCredentialEntity { unPublicKeyCredentialEntity :: JSVal }

instance Eq PublicKeyCredentialEntity where
  (PublicKeyCredentialEntity a) == (PublicKeyCredentialEntity b) = js_eq a b

instance PToJSVal PublicKeyCredentialEntity where
  pToJSVal = unPublicKeyCredentialEntity
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialEntity where
  pFromJSVal = PublicKeyCredentialEntity
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialEntity where
  toJSVal = return . unPublicKeyCredentialEntity
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialEntity where
  fromJSVal = return . fmap PublicKeyCredentialEntity . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialEntity
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPublicKeyCredentialEntity o
toPublicKeyCredentialEntity :: IsPublicKeyCredentialEntity o => o -> PublicKeyCredentialEntity
toPublicKeyCredentialEntity = PublicKeyCredentialEntity . coerce

instance IsPublicKeyCredentialEntity PublicKeyCredentialEntity

instance IsGObject PublicKeyCredentialEntity where
  typeGType _ = gTypePublicKeyCredentialEntity
  {-# INLINE typeGType #-}

noPublicKeyCredentialEntity :: Maybe PublicKeyCredentialEntity
noPublicKeyCredentialEntity = Nothing
{-# INLINE noPublicKeyCredentialEntity #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialEntity :: GType

-- | Dictionary PublicKeyCredentialParameters (webauthn-4)
newtype PublicKeyCredentialParameters = PublicKeyCredentialParameters { unPublicKeyCredentialParameters :: JSVal }

instance Eq PublicKeyCredentialParameters where
  (PublicKeyCredentialParameters a) == (PublicKeyCredentialParameters b) = js_eq a b

instance PToJSVal PublicKeyCredentialParameters where
  pToJSVal = unPublicKeyCredentialParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialParameters where
  pFromJSVal = PublicKeyCredentialParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialParameters where
  toJSVal = return . unPublicKeyCredentialParameters
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialParameters where
  fromJSVal = return . fmap PublicKeyCredentialParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialParameters where
  typeGType _ = gTypePublicKeyCredentialParameters
  {-# INLINE typeGType #-}

noPublicKeyCredentialParameters :: Maybe PublicKeyCredentialParameters
noPublicKeyCredentialParameters = Nothing
{-# INLINE noPublicKeyCredentialParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialParameters :: GType

-- | Dictionary PublicKeyCredentialRequestOptions (webauthn-4)
newtype PublicKeyCredentialRequestOptions = PublicKeyCredentialRequestOptions { unPublicKeyCredentialRequestOptions :: JSVal }

instance Eq PublicKeyCredentialRequestOptions where
  (PublicKeyCredentialRequestOptions a) == (PublicKeyCredentialRequestOptions b) = js_eq a b

instance PToJSVal PublicKeyCredentialRequestOptions where
  pToJSVal = unPublicKeyCredentialRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialRequestOptions where
  pFromJSVal = PublicKeyCredentialRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialRequestOptions where
  toJSVal = return . unPublicKeyCredentialRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialRequestOptions where
  fromJSVal = return . fmap PublicKeyCredentialRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialRequestOptions where
  typeGType _ = gTypePublicKeyCredentialRequestOptions
  {-# INLINE typeGType #-}

noPublicKeyCredentialRequestOptions :: Maybe PublicKeyCredentialRequestOptions
noPublicKeyCredentialRequestOptions = Nothing
{-# INLINE noPublicKeyCredentialRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialRequestOptions :: GType

-- | Dictionary PublicKeyCredentialRequestOptionsJSON (webauthn-4)
newtype PublicKeyCredentialRequestOptionsJSON = PublicKeyCredentialRequestOptionsJSON { unPublicKeyCredentialRequestOptionsJSON :: JSVal }

instance Eq PublicKeyCredentialRequestOptionsJSON where
  (PublicKeyCredentialRequestOptionsJSON a) == (PublicKeyCredentialRequestOptionsJSON b) = js_eq a b

instance PToJSVal PublicKeyCredentialRequestOptionsJSON where
  pToJSVal = unPublicKeyCredentialRequestOptionsJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialRequestOptionsJSON where
  pFromJSVal = PublicKeyCredentialRequestOptionsJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialRequestOptionsJSON where
  toJSVal = return . unPublicKeyCredentialRequestOptionsJSON
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialRequestOptionsJSON where
  fromJSVal = return . fmap PublicKeyCredentialRequestOptionsJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialRequestOptionsJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialRequestOptionsJSON where
  typeGType _ = gTypePublicKeyCredentialRequestOptionsJSON
  {-# INLINE typeGType #-}

noPublicKeyCredentialRequestOptionsJSON :: Maybe PublicKeyCredentialRequestOptionsJSON
noPublicKeyCredentialRequestOptionsJSON = Nothing
{-# INLINE noPublicKeyCredentialRequestOptionsJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialRequestOptionsJSON :: GType

-- | Dictionary PublicKeyCredentialRpEntity (webauthn-4)
newtype PublicKeyCredentialRpEntity = PublicKeyCredentialRpEntity { unPublicKeyCredentialRpEntity :: JSVal }

instance Eq PublicKeyCredentialRpEntity where
  (PublicKeyCredentialRpEntity a) == (PublicKeyCredentialRpEntity b) = js_eq a b

instance PToJSVal PublicKeyCredentialRpEntity where
  pToJSVal = unPublicKeyCredentialRpEntity
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialRpEntity where
  pFromJSVal = PublicKeyCredentialRpEntity
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialRpEntity where
  toJSVal = return . unPublicKeyCredentialRpEntity
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialRpEntity where
  fromJSVal = return . fmap PublicKeyCredentialRpEntity . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialRpEntity
  {-# INLINE fromJSValUnchecked #-}

instance IsPublicKeyCredentialEntity PublicKeyCredentialRpEntity

instance IsGObject PublicKeyCredentialRpEntity where
  typeGType _ = gTypePublicKeyCredentialRpEntity
  {-# INLINE typeGType #-}

noPublicKeyCredentialRpEntity :: Maybe PublicKeyCredentialRpEntity
noPublicKeyCredentialRpEntity = Nothing
{-# INLINE noPublicKeyCredentialRpEntity #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialRpEntity :: GType

-- | Dictionary PublicKeyCredentialUserEntity (webauthn-4)
newtype PublicKeyCredentialUserEntity = PublicKeyCredentialUserEntity { unPublicKeyCredentialUserEntity :: JSVal }

instance Eq PublicKeyCredentialUserEntity where
  (PublicKeyCredentialUserEntity a) == (PublicKeyCredentialUserEntity b) = js_eq a b

instance PToJSVal PublicKeyCredentialUserEntity where
  pToJSVal = unPublicKeyCredentialUserEntity
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialUserEntity where
  pFromJSVal = PublicKeyCredentialUserEntity
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialUserEntity where
  toJSVal = return . unPublicKeyCredentialUserEntity
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialUserEntity where
  fromJSVal = return . fmap PublicKeyCredentialUserEntity . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialUserEntity
  {-# INLINE fromJSValUnchecked #-}

instance IsPublicKeyCredentialEntity PublicKeyCredentialUserEntity

instance IsGObject PublicKeyCredentialUserEntity where
  typeGType _ = gTypePublicKeyCredentialUserEntity
  {-# INLINE typeGType #-}

noPublicKeyCredentialUserEntity :: Maybe PublicKeyCredentialUserEntity
noPublicKeyCredentialUserEntity = Nothing
{-# INLINE noPublicKeyCredentialUserEntity #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialUserEntity :: GType

-- | Dictionary PublicKeyCredentialUserEntityJSON (webauthn-4)
newtype PublicKeyCredentialUserEntityJSON = PublicKeyCredentialUserEntityJSON { unPublicKeyCredentialUserEntityJSON :: JSVal }

instance Eq PublicKeyCredentialUserEntityJSON where
  (PublicKeyCredentialUserEntityJSON a) == (PublicKeyCredentialUserEntityJSON b) = js_eq a b

instance PToJSVal PublicKeyCredentialUserEntityJSON where
  pToJSVal = unPublicKeyCredentialUserEntityJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal PublicKeyCredentialUserEntityJSON where
  pFromJSVal = PublicKeyCredentialUserEntityJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal PublicKeyCredentialUserEntityJSON where
  toJSVal = return . unPublicKeyCredentialUserEntityJSON
  {-# INLINE toJSVal #-}

instance FromJSVal PublicKeyCredentialUserEntityJSON where
  fromJSVal = return . fmap PublicKeyCredentialUserEntityJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PublicKeyCredentialUserEntityJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PublicKeyCredentialUserEntityJSON where
  typeGType _ = gTypePublicKeyCredentialUserEntityJSON
  {-# INLINE typeGType #-}

noPublicKeyCredentialUserEntityJSON :: Maybe PublicKeyCredentialUserEntityJSON
noPublicKeyCredentialUserEntityJSON = Nothing
{-# INLINE noPublicKeyCredentialUserEntityJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePublicKeyCredentialUserEntityJSON :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushEvent" (push-api).
newtype PushEvent = PushEvent { unPushEvent :: JSVal }

instance Eq PushEvent where
  (PushEvent a) == (PushEvent b) = js_eq a b

instance PToJSVal PushEvent where
  pToJSVal = unPushEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushEvent where
  pFromJSVal = PushEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushEvent where
  toJSVal = return . unPushEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PushEvent where
  fromJSVal = return . fmap PushEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent PushEvent
instance IsEvent PushEvent

instance IsGObject PushEvent where
  typeGType _ = gTypePushEvent
  {-# INLINE typeGType #-}

noPushEvent :: Maybe PushEvent
noPushEvent = Nothing
{-# INLINE noPushEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PushEvent\"])" gTypePushEvent :: GType

-- | Dictionary PushEventInit (push-api)
newtype PushEventInit = PushEventInit { unPushEventInit :: JSVal }

instance Eq PushEventInit where
  (PushEventInit a) == (PushEventInit b) = js_eq a b

instance PToJSVal PushEventInit where
  pToJSVal = unPushEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushEventInit where
  pFromJSVal = PushEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushEventInit where
  toJSVal = return . unPushEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PushEventInit where
  fromJSVal = return . fmap PushEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEventInit PushEventInit
instance IsEventInit PushEventInit

instance IsGObject PushEventInit where
  typeGType _ = gTypePushEventInit
  {-# INLINE typeGType #-}

noPushEventInit :: Maybe PushEventInit
noPushEventInit = Nothing
{-# INLINE noPushEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePushEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushManager" (push-api).
newtype PushManager = PushManager { unPushManager :: JSVal }

instance Eq PushManager where
  (PushManager a) == (PushManager b) = js_eq a b

instance PToJSVal PushManager where
  pToJSVal = unPushManager
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushManager where
  pFromJSVal = PushManager
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushManager where
  toJSVal = return . unPushManager
  {-# INLINE toJSVal #-}

instance FromJSVal PushManager where
  fromJSVal = return . fmap PushManager . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushManager
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushManager where
  typeGType _ = gTypePushManager
  {-# INLINE typeGType #-}

noPushManager :: Maybe PushManager
noPushManager = Nothing
{-# INLINE noPushManager #-}

foreign import javascript unsafe "(() => globalThis[\"PushManager\"])" gTypePushManager :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushManagerAttribute" (push-api).
newtype PushManagerAttribute = PushManagerAttribute { unPushManagerAttribute :: JSVal }

instance Eq PushManagerAttribute where
  (PushManagerAttribute a) == (PushManagerAttribute b) = js_eq a b

instance PToJSVal PushManagerAttribute where
  pToJSVal = unPushManagerAttribute
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushManagerAttribute where
  pFromJSVal = PushManagerAttribute
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushManagerAttribute where
  toJSVal = return . unPushManagerAttribute
  {-# INLINE toJSVal #-}

instance FromJSVal PushManagerAttribute where
  fromJSVal = return . fmap PushManagerAttribute . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushManagerAttribute
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsPushManagerAttribute o
toPushManagerAttribute :: IsPushManagerAttribute o => o -> PushManagerAttribute
toPushManagerAttribute = PushManagerAttribute . coerce

instance IsPushManagerAttribute PushManagerAttribute

instance IsGObject PushManagerAttribute where
  typeGType _ = gTypePushManagerAttribute
  {-# INLINE typeGType #-}

noPushManagerAttribute :: Maybe PushManagerAttribute
noPushManagerAttribute = Nothing
{-# INLINE noPushManagerAttribute #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePushManagerAttribute :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushMessageData" (push-api).
newtype PushMessageData = PushMessageData { unPushMessageData :: JSVal }

instance Eq PushMessageData where
  (PushMessageData a) == (PushMessageData b) = js_eq a b

instance PToJSVal PushMessageData where
  pToJSVal = unPushMessageData
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushMessageData where
  pFromJSVal = PushMessageData
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushMessageData where
  toJSVal = return . unPushMessageData
  {-# INLINE toJSVal #-}

instance FromJSVal PushMessageData where
  fromJSVal = return . fmap PushMessageData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushMessageData
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushMessageData where
  typeGType _ = gTypePushMessageData
  {-# INLINE typeGType #-}

noPushMessageData :: Maybe PushMessageData
noPushMessageData = Nothing
{-# INLINE noPushMessageData #-}

foreign import javascript unsafe "(() => globalThis[\"PushMessageData\"])" gTypePushMessageData :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushSubscription" (push-api).
newtype PushSubscription = PushSubscription { unPushSubscription :: JSVal }

instance Eq PushSubscription where
  (PushSubscription a) == (PushSubscription b) = js_eq a b

instance PToJSVal PushSubscription where
  pToJSVal = unPushSubscription
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscription where
  pFromJSVal = PushSubscription
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscription where
  toJSVal = return . unPushSubscription
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscription where
  fromJSVal = return . fmap PushSubscription . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscription
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushSubscription where
  typeGType _ = gTypePushSubscription
  {-# INLINE typeGType #-}

noPushSubscription :: Maybe PushSubscription
noPushSubscription = Nothing
{-# INLINE noPushSubscription #-}

foreign import javascript unsafe "(() => globalThis[\"PushSubscription\"])" gTypePushSubscription :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushSubscriptionChangeEvent" (push-api).
newtype PushSubscriptionChangeEvent = PushSubscriptionChangeEvent { unPushSubscriptionChangeEvent :: JSVal }

instance Eq PushSubscriptionChangeEvent where
  (PushSubscriptionChangeEvent a) == (PushSubscriptionChangeEvent b) = js_eq a b

instance PToJSVal PushSubscriptionChangeEvent where
  pToJSVal = unPushSubscriptionChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscriptionChangeEvent where
  pFromJSVal = PushSubscriptionChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscriptionChangeEvent where
  toJSVal = return . unPushSubscriptionChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscriptionChangeEvent where
  fromJSVal = return . fmap PushSubscriptionChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscriptionChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEvent PushSubscriptionChangeEvent
instance IsEvent PushSubscriptionChangeEvent

instance IsGObject PushSubscriptionChangeEvent where
  typeGType _ = gTypePushSubscriptionChangeEvent
  {-# INLINE typeGType #-}

noPushSubscriptionChangeEvent :: Maybe PushSubscriptionChangeEvent
noPushSubscriptionChangeEvent = Nothing
{-# INLINE noPushSubscriptionChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"PushSubscriptionChangeEvent\"])" gTypePushSubscriptionChangeEvent :: GType

-- | Dictionary PushSubscriptionChangeEventInit (push-api)
newtype PushSubscriptionChangeEventInit = PushSubscriptionChangeEventInit { unPushSubscriptionChangeEventInit :: JSVal }

instance Eq PushSubscriptionChangeEventInit where
  (PushSubscriptionChangeEventInit a) == (PushSubscriptionChangeEventInit b) = js_eq a b

instance PToJSVal PushSubscriptionChangeEventInit where
  pToJSVal = unPushSubscriptionChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscriptionChangeEventInit where
  pFromJSVal = PushSubscriptionChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscriptionChangeEventInit where
  toJSVal = return . unPushSubscriptionChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscriptionChangeEventInit where
  fromJSVal = return . fmap PushSubscriptionChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscriptionChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsExtendableEventInit PushSubscriptionChangeEventInit
instance IsEventInit PushSubscriptionChangeEventInit

instance IsGObject PushSubscriptionChangeEventInit where
  typeGType _ = gTypePushSubscriptionChangeEventInit
  {-# INLINE typeGType #-}

noPushSubscriptionChangeEventInit :: Maybe PushSubscriptionChangeEventInit
noPushSubscriptionChangeEventInit = Nothing
{-# INLINE noPushSubscriptionChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePushSubscriptionChangeEventInit :: GType

-- | Dictionary PushSubscriptionJSON (push-api)
newtype PushSubscriptionJSON = PushSubscriptionJSON { unPushSubscriptionJSON :: JSVal }

instance Eq PushSubscriptionJSON where
  (PushSubscriptionJSON a) == (PushSubscriptionJSON b) = js_eq a b

instance PToJSVal PushSubscriptionJSON where
  pToJSVal = unPushSubscriptionJSON
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscriptionJSON where
  pFromJSVal = PushSubscriptionJSON
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscriptionJSON where
  toJSVal = return . unPushSubscriptionJSON
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscriptionJSON where
  fromJSVal = return . fmap PushSubscriptionJSON . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscriptionJSON
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushSubscriptionJSON where
  typeGType _ = gTypePushSubscriptionJSON
  {-# INLINE typeGType #-}

noPushSubscriptionJSON :: Maybe PushSubscriptionJSON
noPushSubscriptionJSON = Nothing
{-# INLINE noPushSubscriptionJSON #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePushSubscriptionJSON :: GType

-- | Dictionary PushSubscriptionKeys (push-api)
newtype PushSubscriptionKeys = PushSubscriptionKeys { unPushSubscriptionKeys :: JSVal }

instance Eq PushSubscriptionKeys where
  (PushSubscriptionKeys a) == (PushSubscriptionKeys b) = js_eq a b

instance PToJSVal PushSubscriptionKeys where
  pToJSVal = unPushSubscriptionKeys
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscriptionKeys where
  pFromJSVal = PushSubscriptionKeys
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscriptionKeys where
  toJSVal = return . unPushSubscriptionKeys
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscriptionKeys where
  fromJSVal = return . fmap PushSubscriptionKeys . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscriptionKeys
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushSubscriptionKeys where
  typeGType _ = gTypePushSubscriptionKeys
  {-# INLINE typeGType #-}

noPushSubscriptionKeys :: Maybe PushSubscriptionKeys
noPushSubscriptionKeys = Nothing
{-# INLINE noPushSubscriptionKeys #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePushSubscriptionKeys :: GType

-- | Functions for this interface are in "GHCJS.DOM.PushSubscriptionOptions" (push-api).
newtype PushSubscriptionOptions = PushSubscriptionOptions { unPushSubscriptionOptions :: JSVal }

instance Eq PushSubscriptionOptions where
  (PushSubscriptionOptions a) == (PushSubscriptionOptions b) = js_eq a b

instance PToJSVal PushSubscriptionOptions where
  pToJSVal = unPushSubscriptionOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscriptionOptions where
  pFromJSVal = PushSubscriptionOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscriptionOptions where
  toJSVal = return . unPushSubscriptionOptions
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscriptionOptions where
  fromJSVal = return . fmap PushSubscriptionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscriptionOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushSubscriptionOptions where
  typeGType _ = gTypePushSubscriptionOptions
  {-# INLINE typeGType #-}

noPushSubscriptionOptions :: Maybe PushSubscriptionOptions
noPushSubscriptionOptions = Nothing
{-# INLINE noPushSubscriptionOptions #-}

foreign import javascript unsafe "(() => globalThis[\"PushSubscriptionOptions\"])" gTypePushSubscriptionOptions :: GType

-- | Dictionary PushSubscriptionOptionsInit (push-api)
newtype PushSubscriptionOptionsInit = PushSubscriptionOptionsInit { unPushSubscriptionOptionsInit :: JSVal }

instance Eq PushSubscriptionOptionsInit where
  (PushSubscriptionOptionsInit a) == (PushSubscriptionOptionsInit b) = js_eq a b

instance PToJSVal PushSubscriptionOptionsInit where
  pToJSVal = unPushSubscriptionOptionsInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal PushSubscriptionOptionsInit where
  pFromJSVal = PushSubscriptionOptionsInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal PushSubscriptionOptionsInit where
  toJSVal = return . unPushSubscriptionOptionsInit
  {-# INLINE toJSVal #-}

instance FromJSVal PushSubscriptionOptionsInit where
  fromJSVal = return . fmap PushSubscriptionOptionsInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . PushSubscriptionOptionsInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject PushSubscriptionOptionsInit where
  typeGType _ = gTypePushSubscriptionOptionsInit
  {-# INLINE typeGType #-}

noPushSubscriptionOptionsInit :: Maybe PushSubscriptionOptionsInit
noPushSubscriptionOptionsInit = Nothing
{-# INLINE noPushSubscriptionOptionsInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypePushSubscriptionOptionsInit :: GType

-- | Dictionary QueuingStrategy (streams)
newtype QueuingStrategy = QueuingStrategy { unQueuingStrategy :: JSVal }

instance Eq QueuingStrategy where
  (QueuingStrategy a) == (QueuingStrategy b) = js_eq a b

instance PToJSVal QueuingStrategy where
  pToJSVal = unQueuingStrategy
  {-# INLINE pToJSVal #-}

instance PFromJSVal QueuingStrategy where
  pFromJSVal = QueuingStrategy
  {-# INLINE pFromJSVal #-}

instance ToJSVal QueuingStrategy where
  toJSVal = return . unQueuingStrategy
  {-# INLINE toJSVal #-}

instance FromJSVal QueuingStrategy where
  fromJSVal = return . fmap QueuingStrategy . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . QueuingStrategy
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject QueuingStrategy where
  typeGType _ = gTypeQueuingStrategy
  {-# INLINE typeGType #-}

noQueuingStrategy :: Maybe QueuingStrategy
noQueuingStrategy = Nothing
{-# INLINE noQueuingStrategy #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeQueuingStrategy :: GType

-- | Dictionary QueuingStrategyInit (streams)
newtype QueuingStrategyInit = QueuingStrategyInit { unQueuingStrategyInit :: JSVal }

instance Eq QueuingStrategyInit where
  (QueuingStrategyInit a) == (QueuingStrategyInit b) = js_eq a b

instance PToJSVal QueuingStrategyInit where
  pToJSVal = unQueuingStrategyInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal QueuingStrategyInit where
  pFromJSVal = QueuingStrategyInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal QueuingStrategyInit where
  toJSVal = return . unQueuingStrategyInit
  {-# INLINE toJSVal #-}

instance FromJSVal QueuingStrategyInit where
  fromJSVal = return . fmap QueuingStrategyInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . QueuingStrategyInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject QueuingStrategyInit where
  typeGType _ = gTypeQueuingStrategyInit
  {-# INLINE typeGType #-}

noQueuingStrategyInit :: Maybe QueuingStrategyInit
noQueuingStrategyInit = Nothing
{-# INLINE noQueuingStrategyInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeQueuingStrategyInit :: GType

-- | Dictionary RTCAnswerOptions (webrtc)
newtype RTCAnswerOptions = RTCAnswerOptions { unRTCAnswerOptions :: JSVal }

instance Eq RTCAnswerOptions where
  (RTCAnswerOptions a) == (RTCAnswerOptions b) = js_eq a b

instance PToJSVal RTCAnswerOptions where
  pToJSVal = unRTCAnswerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCAnswerOptions where
  pFromJSVal = RTCAnswerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCAnswerOptions where
  toJSVal = return . unRTCAnswerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RTCAnswerOptions where
  fromJSVal = return . fmap RTCAnswerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCAnswerOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCOfferAnswerOptions RTCAnswerOptions

instance IsGObject RTCAnswerOptions where
  typeGType _ = gTypeRTCAnswerOptions
  {-# INLINE typeGType #-}

noRTCAnswerOptions :: Maybe RTCAnswerOptions
noRTCAnswerOptions = Nothing
{-# INLINE noRTCAnswerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCAnswerOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCCertificate" (webrtc).
newtype RTCCertificate = RTCCertificate { unRTCCertificate :: JSVal }

instance Eq RTCCertificate where
  (RTCCertificate a) == (RTCCertificate b) = js_eq a b

instance PToJSVal RTCCertificate where
  pToJSVal = unRTCCertificate
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCCertificate where
  pFromJSVal = RTCCertificate
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCCertificate where
  toJSVal = return . unRTCCertificate
  {-# INLINE toJSVal #-}

instance FromJSVal RTCCertificate where
  fromJSVal = return . fmap RTCCertificate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCCertificate
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCCertificate where
  typeGType _ = gTypeRTCCertificate
  {-# INLINE typeGType #-}

noRTCCertificate :: Maybe RTCCertificate
noRTCCertificate = Nothing
{-# INLINE noRTCCertificate #-}

foreign import javascript unsafe "(() => globalThis[\"RTCCertificate\"])" gTypeRTCCertificate :: GType

-- | Dictionary RTCConfiguration (webrtc)
newtype RTCConfiguration = RTCConfiguration { unRTCConfiguration :: JSVal }

instance Eq RTCConfiguration where
  (RTCConfiguration a) == (RTCConfiguration b) = js_eq a b

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 = return . fmap RTCConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCConfiguration where
  typeGType _ = gTypeRTCConfiguration
  {-# INLINE typeGType #-}

noRTCConfiguration :: Maybe RTCConfiguration
noRTCConfiguration = Nothing
{-# INLINE noRTCConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCDTMFSender" (webrtc).
newtype RTCDTMFSender = RTCDTMFSender { unRTCDTMFSender :: JSVal }

instance Eq RTCDTMFSender where
  (RTCDTMFSender a) == (RTCDTMFSender b) = js_eq a b

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 = return . fmap RTCDTMFSender . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDTMFSender
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCDTMFSender

instance IsGObject RTCDTMFSender where
  typeGType _ = gTypeRTCDTMFSender
  {-# INLINE typeGType #-}

noRTCDTMFSender :: Maybe RTCDTMFSender
noRTCDTMFSender = Nothing
{-# INLINE noRTCDTMFSender #-}

foreign import javascript unsafe "(() => globalThis[\"RTCDTMFSender\"])" gTypeRTCDTMFSender :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCDTMFToneChangeEvent" (webrtc).
newtype RTCDTMFToneChangeEvent = RTCDTMFToneChangeEvent { unRTCDTMFToneChangeEvent :: JSVal }

instance Eq RTCDTMFToneChangeEvent where
  (RTCDTMFToneChangeEvent a) == (RTCDTMFToneChangeEvent b) = js_eq a b

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 = return . fmap RTCDTMFToneChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDTMFToneChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCDTMFToneChangeEvent

instance IsGObject RTCDTMFToneChangeEvent where
  typeGType _ = gTypeRTCDTMFToneChangeEvent
  {-# INLINE typeGType #-}

noRTCDTMFToneChangeEvent :: Maybe RTCDTMFToneChangeEvent
noRTCDTMFToneChangeEvent = Nothing
{-# INLINE noRTCDTMFToneChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCDTMFToneChangeEvent\"])" gTypeRTCDTMFToneChangeEvent :: GType

-- | Dictionary RTCDTMFToneChangeEventInit (webrtc)
newtype RTCDTMFToneChangeEventInit = RTCDTMFToneChangeEventInit { unRTCDTMFToneChangeEventInit :: JSVal }

instance Eq RTCDTMFToneChangeEventInit where
  (RTCDTMFToneChangeEventInit a) == (RTCDTMFToneChangeEventInit b) = js_eq a b

instance PToJSVal RTCDTMFToneChangeEventInit where
  pToJSVal = unRTCDTMFToneChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCDTMFToneChangeEventInit where
  pFromJSVal = RTCDTMFToneChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCDTMFToneChangeEventInit where
  toJSVal = return . unRTCDTMFToneChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCDTMFToneChangeEventInit where
  fromJSVal = return . fmap RTCDTMFToneChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDTMFToneChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit RTCDTMFToneChangeEventInit

instance IsGObject RTCDTMFToneChangeEventInit where
  typeGType _ = gTypeRTCDTMFToneChangeEventInit
  {-# INLINE typeGType #-}

noRTCDTMFToneChangeEventInit :: Maybe RTCDTMFToneChangeEventInit
noRTCDTMFToneChangeEventInit = Nothing
{-# INLINE noRTCDTMFToneChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCDTMFToneChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCDataChannel" (webrtc).
newtype RTCDataChannel = RTCDataChannel { unRTCDataChannel :: JSVal }

instance Eq RTCDataChannel where
  (RTCDataChannel a) == (RTCDataChannel b) = js_eq a b

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 = return . fmap RTCDataChannel . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDataChannel
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCDataChannel

instance IsGObject RTCDataChannel where
  typeGType _ = gTypeRTCDataChannel
  {-# INLINE typeGType #-}

noRTCDataChannel :: Maybe RTCDataChannel
noRTCDataChannel = Nothing
{-# INLINE noRTCDataChannel #-}

foreign import javascript unsafe "(() => globalThis[\"RTCDataChannel\"])" gTypeRTCDataChannel :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCDataChannelEvent" (webrtc).
newtype RTCDataChannelEvent = RTCDataChannelEvent { unRTCDataChannelEvent :: JSVal }

instance Eq RTCDataChannelEvent where
  (RTCDataChannelEvent a) == (RTCDataChannelEvent b) = js_eq a b

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 = return . fmap RTCDataChannelEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDataChannelEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCDataChannelEvent

instance IsGObject RTCDataChannelEvent where
  typeGType _ = gTypeRTCDataChannelEvent
  {-# INLINE typeGType #-}

noRTCDataChannelEvent :: Maybe RTCDataChannelEvent
noRTCDataChannelEvent = Nothing
{-# INLINE noRTCDataChannelEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCDataChannelEvent\"])" gTypeRTCDataChannelEvent :: GType

-- | Dictionary RTCDataChannelEventInit (webrtc)
newtype RTCDataChannelEventInit = RTCDataChannelEventInit { unRTCDataChannelEventInit :: JSVal }

instance Eq RTCDataChannelEventInit where
  (RTCDataChannelEventInit a) == (RTCDataChannelEventInit b) = js_eq a b

instance PToJSVal RTCDataChannelEventInit where
  pToJSVal = unRTCDataChannelEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCDataChannelEventInit where
  pFromJSVal = RTCDataChannelEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCDataChannelEventInit where
  toJSVal = return . unRTCDataChannelEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCDataChannelEventInit where
  fromJSVal = return . fmap RTCDataChannelEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDataChannelEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit RTCDataChannelEventInit

instance IsGObject RTCDataChannelEventInit where
  typeGType _ = gTypeRTCDataChannelEventInit
  {-# INLINE typeGType #-}

noRTCDataChannelEventInit :: Maybe RTCDataChannelEventInit
noRTCDataChannelEventInit = Nothing
{-# INLINE noRTCDataChannelEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCDataChannelEventInit :: GType

-- | Dictionary RTCDataChannelInit (webrtc)
newtype RTCDataChannelInit = RTCDataChannelInit { unRTCDataChannelInit :: JSVal }

instance Eq RTCDataChannelInit where
  (RTCDataChannelInit a) == (RTCDataChannelInit b) = js_eq a b

instance PToJSVal RTCDataChannelInit where
  pToJSVal = unRTCDataChannelInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCDataChannelInit where
  pFromJSVal = RTCDataChannelInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCDataChannelInit where
  toJSVal = return . unRTCDataChannelInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCDataChannelInit where
  fromJSVal = return . fmap RTCDataChannelInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDataChannelInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCDataChannelInit where
  typeGType _ = gTypeRTCDataChannelInit
  {-# INLINE typeGType #-}

noRTCDataChannelInit :: Maybe RTCDataChannelInit
noRTCDataChannelInit = Nothing
{-# INLINE noRTCDataChannelInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCDataChannelInit :: GType

-- | Dictionary RTCDtlsFingerprint (webrtc)
newtype RTCDtlsFingerprint = RTCDtlsFingerprint { unRTCDtlsFingerprint :: JSVal }

instance Eq RTCDtlsFingerprint where
  (RTCDtlsFingerprint a) == (RTCDtlsFingerprint b) = js_eq a b

instance PToJSVal RTCDtlsFingerprint where
  pToJSVal = unRTCDtlsFingerprint
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCDtlsFingerprint where
  pFromJSVal = RTCDtlsFingerprint
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCDtlsFingerprint where
  toJSVal = return . unRTCDtlsFingerprint
  {-# INLINE toJSVal #-}

instance FromJSVal RTCDtlsFingerprint where
  fromJSVal = return . fmap RTCDtlsFingerprint . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDtlsFingerprint
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCDtlsFingerprint where
  typeGType _ = gTypeRTCDtlsFingerprint
  {-# INLINE typeGType #-}

noRTCDtlsFingerprint :: Maybe RTCDtlsFingerprint
noRTCDtlsFingerprint = Nothing
{-# INLINE noRTCDtlsFingerprint #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCDtlsFingerprint :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCDtlsTransport" (webrtc).
newtype RTCDtlsTransport = RTCDtlsTransport { unRTCDtlsTransport :: JSVal }

instance Eq RTCDtlsTransport where
  (RTCDtlsTransport a) == (RTCDtlsTransport b) = js_eq a b

instance PToJSVal RTCDtlsTransport where
  pToJSVal = unRTCDtlsTransport
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCDtlsTransport where
  pFromJSVal = RTCDtlsTransport
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCDtlsTransport where
  toJSVal = return . unRTCDtlsTransport
  {-# INLINE toJSVal #-}

instance FromJSVal RTCDtlsTransport where
  fromJSVal = return . fmap RTCDtlsTransport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCDtlsTransport
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCDtlsTransport

instance IsGObject RTCDtlsTransport where
  typeGType _ = gTypeRTCDtlsTransport
  {-# INLINE typeGType #-}

noRTCDtlsTransport :: Maybe RTCDtlsTransport
noRTCDtlsTransport = Nothing
{-# INLINE noRTCDtlsTransport #-}

foreign import javascript unsafe "(() => globalThis[\"RTCDtlsTransport\"])" gTypeRTCDtlsTransport :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCEncodedAudioFrame" (webrtc-encoded-transform).
newtype RTCEncodedAudioFrame = RTCEncodedAudioFrame { unRTCEncodedAudioFrame :: JSVal }

instance Eq RTCEncodedAudioFrame where
  (RTCEncodedAudioFrame a) == (RTCEncodedAudioFrame b) = js_eq a b

instance PToJSVal RTCEncodedAudioFrame where
  pToJSVal = unRTCEncodedAudioFrame
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedAudioFrame where
  pFromJSVal = RTCEncodedAudioFrame
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedAudioFrame where
  toJSVal = return . unRTCEncodedAudioFrame
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedAudioFrame where
  fromJSVal = return . fmap RTCEncodedAudioFrame . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedAudioFrame
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCEncodedAudioFrame where
  typeGType _ = gTypeRTCEncodedAudioFrame
  {-# INLINE typeGType #-}

noRTCEncodedAudioFrame :: Maybe RTCEncodedAudioFrame
noRTCEncodedAudioFrame = Nothing
{-# INLINE noRTCEncodedAudioFrame #-}

foreign import javascript unsafe "(() => globalThis[\"RTCEncodedAudioFrame\"])" gTypeRTCEncodedAudioFrame :: GType

-- | Dictionary RTCEncodedAudioFrameMetadata (webrtc-encoded-transform)
newtype RTCEncodedAudioFrameMetadata = RTCEncodedAudioFrameMetadata { unRTCEncodedAudioFrameMetadata :: JSVal }

instance Eq RTCEncodedAudioFrameMetadata where
  (RTCEncodedAudioFrameMetadata a) == (RTCEncodedAudioFrameMetadata b) = js_eq a b

instance PToJSVal RTCEncodedAudioFrameMetadata where
  pToJSVal = unRTCEncodedAudioFrameMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedAudioFrameMetadata where
  pFromJSVal = RTCEncodedAudioFrameMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedAudioFrameMetadata where
  toJSVal = return . unRTCEncodedAudioFrameMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedAudioFrameMetadata where
  fromJSVal = return . fmap RTCEncodedAudioFrameMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedAudioFrameMetadata
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCEncodedFrameMetadata RTCEncodedAudioFrameMetadata

instance IsGObject RTCEncodedAudioFrameMetadata where
  typeGType _ = gTypeRTCEncodedAudioFrameMetadata
  {-# INLINE typeGType #-}

noRTCEncodedAudioFrameMetadata :: Maybe RTCEncodedAudioFrameMetadata
noRTCEncodedAudioFrameMetadata = Nothing
{-# INLINE noRTCEncodedAudioFrameMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCEncodedAudioFrameMetadata :: GType

-- | Dictionary RTCEncodedAudioFrameOptions (webrtc-encoded-transform)
newtype RTCEncodedAudioFrameOptions = RTCEncodedAudioFrameOptions { unRTCEncodedAudioFrameOptions :: JSVal }

instance Eq RTCEncodedAudioFrameOptions where
  (RTCEncodedAudioFrameOptions a) == (RTCEncodedAudioFrameOptions b) = js_eq a b

instance PToJSVal RTCEncodedAudioFrameOptions where
  pToJSVal = unRTCEncodedAudioFrameOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedAudioFrameOptions where
  pFromJSVal = RTCEncodedAudioFrameOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedAudioFrameOptions where
  toJSVal = return . unRTCEncodedAudioFrameOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedAudioFrameOptions where
  fromJSVal = return . fmap RTCEncodedAudioFrameOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedAudioFrameOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCEncodedAudioFrameOptions where
  typeGType _ = gTypeRTCEncodedAudioFrameOptions
  {-# INLINE typeGType #-}

noRTCEncodedAudioFrameOptions :: Maybe RTCEncodedAudioFrameOptions
noRTCEncodedAudioFrameOptions = Nothing
{-# INLINE noRTCEncodedAudioFrameOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCEncodedAudioFrameOptions :: GType

-- | Dictionary RTCEncodedFrameMetadata (webrtc-encoded-transform)
newtype RTCEncodedFrameMetadata = RTCEncodedFrameMetadata { unRTCEncodedFrameMetadata :: JSVal }

instance Eq RTCEncodedFrameMetadata where
  (RTCEncodedFrameMetadata a) == (RTCEncodedFrameMetadata b) = js_eq a b

instance PToJSVal RTCEncodedFrameMetadata where
  pToJSVal = unRTCEncodedFrameMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedFrameMetadata where
  pFromJSVal = RTCEncodedFrameMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedFrameMetadata where
  toJSVal = return . unRTCEncodedFrameMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedFrameMetadata where
  fromJSVal = return . fmap RTCEncodedFrameMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedFrameMetadata
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCEncodedFrameMetadata o
toRTCEncodedFrameMetadata :: IsRTCEncodedFrameMetadata o => o -> RTCEncodedFrameMetadata
toRTCEncodedFrameMetadata = RTCEncodedFrameMetadata . coerce

instance IsRTCEncodedFrameMetadata RTCEncodedFrameMetadata

instance IsGObject RTCEncodedFrameMetadata where
  typeGType _ = gTypeRTCEncodedFrameMetadata
  {-# INLINE typeGType #-}

noRTCEncodedFrameMetadata :: Maybe RTCEncodedFrameMetadata
noRTCEncodedFrameMetadata = Nothing
{-# INLINE noRTCEncodedFrameMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCEncodedFrameMetadata :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCEncodedVideoFrame" (webrtc-encoded-transform).
newtype RTCEncodedVideoFrame = RTCEncodedVideoFrame { unRTCEncodedVideoFrame :: JSVal }

instance Eq RTCEncodedVideoFrame where
  (RTCEncodedVideoFrame a) == (RTCEncodedVideoFrame b) = js_eq a b

instance PToJSVal RTCEncodedVideoFrame where
  pToJSVal = unRTCEncodedVideoFrame
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedVideoFrame where
  pFromJSVal = RTCEncodedVideoFrame
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedVideoFrame where
  toJSVal = return . unRTCEncodedVideoFrame
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedVideoFrame where
  fromJSVal = return . fmap RTCEncodedVideoFrame . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedVideoFrame
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCEncodedVideoFrame where
  typeGType _ = gTypeRTCEncodedVideoFrame
  {-# INLINE typeGType #-}

noRTCEncodedVideoFrame :: Maybe RTCEncodedVideoFrame
noRTCEncodedVideoFrame = Nothing
{-# INLINE noRTCEncodedVideoFrame #-}

foreign import javascript unsafe "(() => globalThis[\"RTCEncodedVideoFrame\"])" gTypeRTCEncodedVideoFrame :: GType

-- | Dictionary RTCEncodedVideoFrameMetadata (webrtc-encoded-transform)
newtype RTCEncodedVideoFrameMetadata = RTCEncodedVideoFrameMetadata { unRTCEncodedVideoFrameMetadata :: JSVal }

instance Eq RTCEncodedVideoFrameMetadata where
  (RTCEncodedVideoFrameMetadata a) == (RTCEncodedVideoFrameMetadata b) = js_eq a b

instance PToJSVal RTCEncodedVideoFrameMetadata where
  pToJSVal = unRTCEncodedVideoFrameMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedVideoFrameMetadata where
  pFromJSVal = RTCEncodedVideoFrameMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedVideoFrameMetadata where
  toJSVal = return . unRTCEncodedVideoFrameMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedVideoFrameMetadata where
  fromJSVal = return . fmap RTCEncodedVideoFrameMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedVideoFrameMetadata
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCEncodedFrameMetadata RTCEncodedVideoFrameMetadata

instance IsGObject RTCEncodedVideoFrameMetadata where
  typeGType _ = gTypeRTCEncodedVideoFrameMetadata
  {-# INLINE typeGType #-}

noRTCEncodedVideoFrameMetadata :: Maybe RTCEncodedVideoFrameMetadata
noRTCEncodedVideoFrameMetadata = Nothing
{-# INLINE noRTCEncodedVideoFrameMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCEncodedVideoFrameMetadata :: GType

-- | Dictionary RTCEncodedVideoFrameOptions (webrtc-encoded-transform)
newtype RTCEncodedVideoFrameOptions = RTCEncodedVideoFrameOptions { unRTCEncodedVideoFrameOptions :: JSVal }

instance Eq RTCEncodedVideoFrameOptions where
  (RTCEncodedVideoFrameOptions a) == (RTCEncodedVideoFrameOptions b) = js_eq a b

instance PToJSVal RTCEncodedVideoFrameOptions where
  pToJSVal = unRTCEncodedVideoFrameOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCEncodedVideoFrameOptions where
  pFromJSVal = RTCEncodedVideoFrameOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCEncodedVideoFrameOptions where
  toJSVal = return . unRTCEncodedVideoFrameOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RTCEncodedVideoFrameOptions where
  fromJSVal = return . fmap RTCEncodedVideoFrameOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCEncodedVideoFrameOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCEncodedVideoFrameOptions where
  typeGType _ = gTypeRTCEncodedVideoFrameOptions
  {-# INLINE typeGType #-}

noRTCEncodedVideoFrameOptions :: Maybe RTCEncodedVideoFrameOptions
noRTCEncodedVideoFrameOptions = Nothing
{-# INLINE noRTCEncodedVideoFrameOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCEncodedVideoFrameOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCError" (webrtc).
newtype RTCError = RTCError { unRTCError :: JSVal }

instance Eq RTCError where
  (RTCError a) == (RTCError b) = js_eq a b

instance PToJSVal RTCError where
  pToJSVal = unRTCError
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCError where
  pFromJSVal = RTCError
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCError where
  toJSVal = return . unRTCError
  {-# INLINE toJSVal #-}

instance FromJSVal RTCError where
  fromJSVal = return . fmap RTCError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCError
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMException RTCError

instance IsGObject RTCError where
  typeGType _ = gTypeRTCError
  {-# INLINE typeGType #-}

noRTCError :: Maybe RTCError
noRTCError = Nothing
{-# INLINE noRTCError #-}

foreign import javascript unsafe "(() => globalThis[\"RTCError\"])" gTypeRTCError :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCErrorEvent" (webrtc).
newtype RTCErrorEvent = RTCErrorEvent { unRTCErrorEvent :: JSVal }

instance Eq RTCErrorEvent where
  (RTCErrorEvent a) == (RTCErrorEvent b) = js_eq a b

instance PToJSVal RTCErrorEvent where
  pToJSVal = unRTCErrorEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCErrorEvent where
  pFromJSVal = RTCErrorEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCErrorEvent where
  toJSVal = return . unRTCErrorEvent
  {-# INLINE toJSVal #-}

instance FromJSVal RTCErrorEvent where
  fromJSVal = return . fmap RTCErrorEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCErrorEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCErrorEvent

instance IsGObject RTCErrorEvent where
  typeGType _ = gTypeRTCErrorEvent
  {-# INLINE typeGType #-}

noRTCErrorEvent :: Maybe RTCErrorEvent
noRTCErrorEvent = Nothing
{-# INLINE noRTCErrorEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCErrorEvent\"])" gTypeRTCErrorEvent :: GType

-- | Dictionary RTCErrorEventInit (webrtc)
newtype RTCErrorEventInit = RTCErrorEventInit { unRTCErrorEventInit :: JSVal }

instance Eq RTCErrorEventInit where
  (RTCErrorEventInit a) == (RTCErrorEventInit b) = js_eq a b

instance PToJSVal RTCErrorEventInit where
  pToJSVal = unRTCErrorEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCErrorEventInit where
  pFromJSVal = RTCErrorEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCErrorEventInit where
  toJSVal = return . unRTCErrorEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCErrorEventInit where
  fromJSVal = return . fmap RTCErrorEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCErrorEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit RTCErrorEventInit

instance IsGObject RTCErrorEventInit where
  typeGType _ = gTypeRTCErrorEventInit
  {-# INLINE typeGType #-}

noRTCErrorEventInit :: Maybe RTCErrorEventInit
noRTCErrorEventInit = Nothing
{-# INLINE noRTCErrorEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCErrorEventInit :: GType

-- | Dictionary RTCErrorInit (webrtc)
newtype RTCErrorInit = RTCErrorInit { unRTCErrorInit :: JSVal }

instance Eq RTCErrorInit where
  (RTCErrorInit a) == (RTCErrorInit b) = js_eq a b

instance PToJSVal RTCErrorInit where
  pToJSVal = unRTCErrorInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCErrorInit where
  pFromJSVal = RTCErrorInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCErrorInit where
  toJSVal = return . unRTCErrorInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCErrorInit where
  fromJSVal = return . fmap RTCErrorInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCErrorInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCErrorInit where
  typeGType _ = gTypeRTCErrorInit
  {-# INLINE typeGType #-}

noRTCErrorInit :: Maybe RTCErrorInit
noRTCErrorInit = Nothing
{-# INLINE noRTCErrorInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCErrorInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCIceCandidate" (webrtc).
newtype RTCIceCandidate = RTCIceCandidate { unRTCIceCandidate :: JSVal }

instance Eq RTCIceCandidate where
  (RTCIceCandidate a) == (RTCIceCandidate b) = js_eq a b

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 = return . fmap RTCIceCandidate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCIceCandidate
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCIceCandidate where
  typeGType _ = gTypeRTCIceCandidate
  {-# INLINE typeGType #-}

noRTCIceCandidate :: Maybe RTCIceCandidate
noRTCIceCandidate = Nothing
{-# INLINE noRTCIceCandidate #-}

foreign import javascript unsafe "(() => globalThis[\"RTCIceCandidate\"])" gTypeRTCIceCandidate :: GType

-- | Dictionary RTCIceCandidateInit (webrtc)
newtype RTCIceCandidateInit = RTCIceCandidateInit { unRTCIceCandidateInit :: JSVal }

instance Eq RTCIceCandidateInit where
  (RTCIceCandidateInit a) == (RTCIceCandidateInit b) = js_eq a b

instance PToJSVal RTCIceCandidateInit where
  pToJSVal = unRTCIceCandidateInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCIceCandidateInit where
  pFromJSVal = RTCIceCandidateInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCIceCandidateInit where
  toJSVal = return . unRTCIceCandidateInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCIceCandidateInit where
  fromJSVal = return . fmap RTCIceCandidateInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCIceCandidateInit
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCIceCandidateInit o
toRTCIceCandidateInit :: IsRTCIceCandidateInit o => o -> RTCIceCandidateInit
toRTCIceCandidateInit = RTCIceCandidateInit . coerce

instance IsRTCIceCandidateInit RTCIceCandidateInit

instance IsGObject RTCIceCandidateInit where
  typeGType _ = gTypeRTCIceCandidateInit
  {-# INLINE typeGType #-}

noRTCIceCandidateInit :: Maybe RTCIceCandidateInit
noRTCIceCandidateInit = Nothing
{-# INLINE noRTCIceCandidateInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCIceCandidateInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCIceCandidatePair" (webrtc).
newtype RTCIceCandidatePair = RTCIceCandidatePair { unRTCIceCandidatePair :: JSVal }

instance Eq RTCIceCandidatePair where
  (RTCIceCandidatePair a) == (RTCIceCandidatePair b) = js_eq a b

instance PToJSVal RTCIceCandidatePair where
  pToJSVal = unRTCIceCandidatePair
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCIceCandidatePair where
  pFromJSVal = RTCIceCandidatePair
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCIceCandidatePair where
  toJSVal = return . unRTCIceCandidatePair
  {-# INLINE toJSVal #-}

instance FromJSVal RTCIceCandidatePair where
  fromJSVal = return . fmap RTCIceCandidatePair . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCIceCandidatePair
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCIceCandidatePair where
  typeGType _ = gTypeRTCIceCandidatePair
  {-# INLINE typeGType #-}

noRTCIceCandidatePair :: Maybe RTCIceCandidatePair
noRTCIceCandidatePair = Nothing
{-# INLINE noRTCIceCandidatePair #-}

foreign import javascript unsafe "(() => globalThis[\"RTCIceCandidatePair\"])" gTypeRTCIceCandidatePair :: GType

-- | Dictionary RTCIceServer (webrtc)
newtype RTCIceServer = RTCIceServer { unRTCIceServer :: JSVal }

instance Eq RTCIceServer where
  (RTCIceServer a) == (RTCIceServer b) = js_eq a b

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 = return . fmap RTCIceServer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCIceServer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCIceServer where
  typeGType _ = gTypeRTCIceServer
  {-# INLINE typeGType #-}

noRTCIceServer :: Maybe RTCIceServer
noRTCIceServer = Nothing
{-# INLINE noRTCIceServer #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCIceServer :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCIceTransport" (webrtc).
newtype RTCIceTransport = RTCIceTransport { unRTCIceTransport :: JSVal }

instance Eq RTCIceTransport where
  (RTCIceTransport a) == (RTCIceTransport b) = js_eq a b

instance PToJSVal RTCIceTransport where
  pToJSVal = unRTCIceTransport
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCIceTransport where
  pFromJSVal = RTCIceTransport
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCIceTransport where
  toJSVal = return . unRTCIceTransport
  {-# INLINE toJSVal #-}

instance FromJSVal RTCIceTransport where
  fromJSVal = return . fmap RTCIceTransport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCIceTransport
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCIceTransport

instance IsGObject RTCIceTransport where
  typeGType _ = gTypeRTCIceTransport
  {-# INLINE typeGType #-}

noRTCIceTransport :: Maybe RTCIceTransport
noRTCIceTransport = Nothing
{-# INLINE noRTCIceTransport #-}

foreign import javascript unsafe "(() => globalThis[\"RTCIceTransport\"])" gTypeRTCIceTransport :: GType

-- | Dictionary RTCLocalIceCandidateInit (webrtc)
newtype RTCLocalIceCandidateInit = RTCLocalIceCandidateInit { unRTCLocalIceCandidateInit :: JSVal }

instance Eq RTCLocalIceCandidateInit where
  (RTCLocalIceCandidateInit a) == (RTCLocalIceCandidateInit b) = js_eq a b

instance PToJSVal RTCLocalIceCandidateInit where
  pToJSVal = unRTCLocalIceCandidateInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCLocalIceCandidateInit where
  pFromJSVal = RTCLocalIceCandidateInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCLocalIceCandidateInit where
  toJSVal = return . unRTCLocalIceCandidateInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCLocalIceCandidateInit where
  fromJSVal = return . fmap RTCLocalIceCandidateInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCLocalIceCandidateInit
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCIceCandidateInit RTCLocalIceCandidateInit

instance IsGObject RTCLocalIceCandidateInit where
  typeGType _ = gTypeRTCLocalIceCandidateInit
  {-# INLINE typeGType #-}

noRTCLocalIceCandidateInit :: Maybe RTCLocalIceCandidateInit
noRTCLocalIceCandidateInit = Nothing
{-# INLINE noRTCLocalIceCandidateInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCLocalIceCandidateInit :: GType

-- | Dictionary RTCLocalSessionDescriptionInit (webrtc)
newtype RTCLocalSessionDescriptionInit = RTCLocalSessionDescriptionInit { unRTCLocalSessionDescriptionInit :: JSVal }

instance Eq RTCLocalSessionDescriptionInit where
  (RTCLocalSessionDescriptionInit a) == (RTCLocalSessionDescriptionInit b) = js_eq a b

instance PToJSVal RTCLocalSessionDescriptionInit where
  pToJSVal = unRTCLocalSessionDescriptionInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCLocalSessionDescriptionInit where
  pFromJSVal = RTCLocalSessionDescriptionInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCLocalSessionDescriptionInit where
  toJSVal = return . unRTCLocalSessionDescriptionInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCLocalSessionDescriptionInit where
  fromJSVal = return . fmap RTCLocalSessionDescriptionInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCLocalSessionDescriptionInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCLocalSessionDescriptionInit where
  typeGType _ = gTypeRTCLocalSessionDescriptionInit
  {-# INLINE typeGType #-}

noRTCLocalSessionDescriptionInit :: Maybe RTCLocalSessionDescriptionInit
noRTCLocalSessionDescriptionInit = Nothing
{-# INLINE noRTCLocalSessionDescriptionInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCLocalSessionDescriptionInit :: GType

-- | Dictionary RTCOfferAnswerOptions (webrtc)
newtype RTCOfferAnswerOptions = RTCOfferAnswerOptions { unRTCOfferAnswerOptions :: JSVal }

instance Eq RTCOfferAnswerOptions where
  (RTCOfferAnswerOptions a) == (RTCOfferAnswerOptions b) = js_eq a b

instance PToJSVal RTCOfferAnswerOptions where
  pToJSVal = unRTCOfferAnswerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCOfferAnswerOptions where
  pFromJSVal = RTCOfferAnswerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCOfferAnswerOptions where
  toJSVal = return . unRTCOfferAnswerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RTCOfferAnswerOptions where
  fromJSVal = return . fmap RTCOfferAnswerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCOfferAnswerOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCOfferAnswerOptions o
toRTCOfferAnswerOptions :: IsRTCOfferAnswerOptions o => o -> RTCOfferAnswerOptions
toRTCOfferAnswerOptions = RTCOfferAnswerOptions . coerce

instance IsRTCOfferAnswerOptions RTCOfferAnswerOptions

instance IsGObject RTCOfferAnswerOptions where
  typeGType _ = gTypeRTCOfferAnswerOptions
  {-# INLINE typeGType #-}

noRTCOfferAnswerOptions :: Maybe RTCOfferAnswerOptions
noRTCOfferAnswerOptions = Nothing
{-# INLINE noRTCOfferAnswerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCOfferAnswerOptions :: GType

-- | Dictionary RTCOfferOptions (webrtc)
newtype RTCOfferOptions = RTCOfferOptions { unRTCOfferOptions :: JSVal }

instance Eq RTCOfferOptions where
  (RTCOfferOptions a) == (RTCOfferOptions b) = js_eq a b

instance PToJSVal RTCOfferOptions where
  pToJSVal = unRTCOfferOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCOfferOptions where
  pFromJSVal = RTCOfferOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCOfferOptions where
  toJSVal = return . unRTCOfferOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RTCOfferOptions where
  fromJSVal = return . fmap RTCOfferOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCOfferOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCOfferAnswerOptions RTCOfferOptions

instance IsGObject RTCOfferOptions where
  typeGType _ = gTypeRTCOfferOptions
  {-# INLINE typeGType #-}

noRTCOfferOptions :: Maybe RTCOfferOptions
noRTCOfferOptions = Nothing
{-# INLINE noRTCOfferOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCOfferOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCPeerConnection" (webrtc).
newtype RTCPeerConnection = RTCPeerConnection { unRTCPeerConnection :: JSVal }

instance Eq RTCPeerConnection where
  (RTCPeerConnection a) == (RTCPeerConnection b) = js_eq a b

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 = return . fmap RTCPeerConnection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCPeerConnection
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCPeerConnection

instance IsGObject RTCPeerConnection where
  typeGType _ = gTypeRTCPeerConnection
  {-# INLINE typeGType #-}

noRTCPeerConnection :: Maybe RTCPeerConnection
noRTCPeerConnection = Nothing
{-# INLINE noRTCPeerConnection #-}

foreign import javascript unsafe "(() => globalThis[\"RTCPeerConnection\"])" gTypeRTCPeerConnection :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCPeerConnectionIceErrorEvent" (webrtc).
newtype RTCPeerConnectionIceErrorEvent = RTCPeerConnectionIceErrorEvent { unRTCPeerConnectionIceErrorEvent :: JSVal }

instance Eq RTCPeerConnectionIceErrorEvent where
  (RTCPeerConnectionIceErrorEvent a) == (RTCPeerConnectionIceErrorEvent b) = js_eq a b

instance PToJSVal RTCPeerConnectionIceErrorEvent where
  pToJSVal = unRTCPeerConnectionIceErrorEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCPeerConnectionIceErrorEvent where
  pFromJSVal = RTCPeerConnectionIceErrorEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCPeerConnectionIceErrorEvent where
  toJSVal = return . unRTCPeerConnectionIceErrorEvent
  {-# INLINE toJSVal #-}

instance FromJSVal RTCPeerConnectionIceErrorEvent where
  fromJSVal = return . fmap RTCPeerConnectionIceErrorEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCPeerConnectionIceErrorEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCPeerConnectionIceErrorEvent

instance IsGObject RTCPeerConnectionIceErrorEvent where
  typeGType _ = gTypeRTCPeerConnectionIceErrorEvent
  {-# INLINE typeGType #-}

noRTCPeerConnectionIceErrorEvent :: Maybe RTCPeerConnectionIceErrorEvent
noRTCPeerConnectionIceErrorEvent = Nothing
{-# INLINE noRTCPeerConnectionIceErrorEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCPeerConnectionIceErrorEvent\"])" gTypeRTCPeerConnectionIceErrorEvent :: GType

-- | Dictionary RTCPeerConnectionIceErrorEventInit (webrtc)
newtype RTCPeerConnectionIceErrorEventInit = RTCPeerConnectionIceErrorEventInit { unRTCPeerConnectionIceErrorEventInit :: JSVal }

instance Eq RTCPeerConnectionIceErrorEventInit where
  (RTCPeerConnectionIceErrorEventInit a) == (RTCPeerConnectionIceErrorEventInit b) = js_eq a b

instance PToJSVal RTCPeerConnectionIceErrorEventInit where
  pToJSVal = unRTCPeerConnectionIceErrorEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCPeerConnectionIceErrorEventInit where
  pFromJSVal = RTCPeerConnectionIceErrorEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCPeerConnectionIceErrorEventInit where
  toJSVal = return . unRTCPeerConnectionIceErrorEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCPeerConnectionIceErrorEventInit where
  fromJSVal = return . fmap RTCPeerConnectionIceErrorEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCPeerConnectionIceErrorEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit RTCPeerConnectionIceErrorEventInit

instance IsGObject RTCPeerConnectionIceErrorEventInit where
  typeGType _ = gTypeRTCPeerConnectionIceErrorEventInit
  {-# INLINE typeGType #-}

noRTCPeerConnectionIceErrorEventInit :: Maybe RTCPeerConnectionIceErrorEventInit
noRTCPeerConnectionIceErrorEventInit = Nothing
{-# INLINE noRTCPeerConnectionIceErrorEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCPeerConnectionIceErrorEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCPeerConnectionIceEvent" (webrtc).
newtype RTCPeerConnectionIceEvent = RTCPeerConnectionIceEvent { unRTCPeerConnectionIceEvent :: JSVal }

instance Eq RTCPeerConnectionIceEvent where
  (RTCPeerConnectionIceEvent a) == (RTCPeerConnectionIceEvent b) = js_eq a b

instance PToJSVal RTCPeerConnectionIceEvent where
  pToJSVal = unRTCPeerConnectionIceEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCPeerConnectionIceEvent where
  pFromJSVal = RTCPeerConnectionIceEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCPeerConnectionIceEvent where
  toJSVal = return . unRTCPeerConnectionIceEvent
  {-# INLINE toJSVal #-}

instance FromJSVal RTCPeerConnectionIceEvent where
  fromJSVal = return . fmap RTCPeerConnectionIceEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCPeerConnectionIceEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCPeerConnectionIceEvent

instance IsGObject RTCPeerConnectionIceEvent where
  typeGType _ = gTypeRTCPeerConnectionIceEvent
  {-# INLINE typeGType #-}

noRTCPeerConnectionIceEvent :: Maybe RTCPeerConnectionIceEvent
noRTCPeerConnectionIceEvent = Nothing
{-# INLINE noRTCPeerConnectionIceEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCPeerConnectionIceEvent\"])" gTypeRTCPeerConnectionIceEvent :: GType

-- | Dictionary RTCPeerConnectionIceEventInit (webrtc)
newtype RTCPeerConnectionIceEventInit = RTCPeerConnectionIceEventInit { unRTCPeerConnectionIceEventInit :: JSVal }

instance Eq RTCPeerConnectionIceEventInit where
  (RTCPeerConnectionIceEventInit a) == (RTCPeerConnectionIceEventInit b) = js_eq a b

instance PToJSVal RTCPeerConnectionIceEventInit where
  pToJSVal = unRTCPeerConnectionIceEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCPeerConnectionIceEventInit where
  pFromJSVal = RTCPeerConnectionIceEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCPeerConnectionIceEventInit where
  toJSVal = return . unRTCPeerConnectionIceEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCPeerConnectionIceEventInit where
  fromJSVal = return . fmap RTCPeerConnectionIceEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCPeerConnectionIceEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit RTCPeerConnectionIceEventInit

instance IsGObject RTCPeerConnectionIceEventInit where
  typeGType _ = gTypeRTCPeerConnectionIceEventInit
  {-# INLINE typeGType #-}

noRTCPeerConnectionIceEventInit :: Maybe RTCPeerConnectionIceEventInit
noRTCPeerConnectionIceEventInit = Nothing
{-# INLINE noRTCPeerConnectionIceEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCPeerConnectionIceEventInit :: GType

-- | Dictionary RTCRtcpParameters (webrtc)
newtype RTCRtcpParameters = RTCRtcpParameters { unRTCRtcpParameters :: JSVal }

instance Eq RTCRtcpParameters where
  (RTCRtcpParameters a) == (RTCRtcpParameters b) = js_eq a b

instance PToJSVal RTCRtcpParameters where
  pToJSVal = unRTCRtcpParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtcpParameters where
  pFromJSVal = RTCRtcpParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtcpParameters where
  toJSVal = return . unRTCRtcpParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtcpParameters where
  fromJSVal = return . fmap RTCRtcpParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtcpParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtcpParameters where
  typeGType _ = gTypeRTCRtcpParameters
  {-# INLINE typeGType #-}

noRTCRtcpParameters :: Maybe RTCRtcpParameters
noRTCRtcpParameters = Nothing
{-# INLINE noRTCRtcpParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtcpParameters :: GType

-- | Dictionary RTCRtpCapabilities (webrtc)
newtype RTCRtpCapabilities = RTCRtpCapabilities { unRTCRtpCapabilities :: JSVal }

instance Eq RTCRtpCapabilities where
  (RTCRtpCapabilities a) == (RTCRtpCapabilities b) = js_eq a b

instance PToJSVal RTCRtpCapabilities where
  pToJSVal = unRTCRtpCapabilities
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpCapabilities where
  pFromJSVal = RTCRtpCapabilities
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpCapabilities where
  toJSVal = return . unRTCRtpCapabilities
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpCapabilities where
  fromJSVal = return . fmap RTCRtpCapabilities . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpCapabilities
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpCapabilities where
  typeGType _ = gTypeRTCRtpCapabilities
  {-# INLINE typeGType #-}

noRTCRtpCapabilities :: Maybe RTCRtpCapabilities
noRTCRtpCapabilities = Nothing
{-# INLINE noRTCRtpCapabilities #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpCapabilities :: GType

-- | Dictionary RTCRtpCodec (webrtc)
newtype RTCRtpCodec = RTCRtpCodec { unRTCRtpCodec :: JSVal }

instance Eq RTCRtpCodec where
  (RTCRtpCodec a) == (RTCRtpCodec b) = js_eq a b

instance PToJSVal RTCRtpCodec where
  pToJSVal = unRTCRtpCodec
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpCodec where
  pFromJSVal = RTCRtpCodec
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpCodec where
  toJSVal = return . unRTCRtpCodec
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpCodec where
  fromJSVal = return . fmap RTCRtpCodec . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpCodec
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCRtpCodec o
toRTCRtpCodec :: IsRTCRtpCodec o => o -> RTCRtpCodec
toRTCRtpCodec = RTCRtpCodec . coerce

instance IsRTCRtpCodec RTCRtpCodec

instance IsGObject RTCRtpCodec where
  typeGType _ = gTypeRTCRtpCodec
  {-# INLINE typeGType #-}

noRTCRtpCodec :: Maybe RTCRtpCodec
noRTCRtpCodec = Nothing
{-# INLINE noRTCRtpCodec #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpCodec :: GType

-- | Dictionary RTCRtpCodecParameters (webrtc)
newtype RTCRtpCodecParameters = RTCRtpCodecParameters { unRTCRtpCodecParameters :: JSVal }

instance Eq RTCRtpCodecParameters where
  (RTCRtpCodecParameters a) == (RTCRtpCodecParameters b) = js_eq a b

instance PToJSVal RTCRtpCodecParameters where
  pToJSVal = unRTCRtpCodecParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpCodecParameters where
  pFromJSVal = RTCRtpCodecParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpCodecParameters where
  toJSVal = return . unRTCRtpCodecParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpCodecParameters where
  fromJSVal = return . fmap RTCRtpCodecParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpCodecParameters
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCRtpCodec RTCRtpCodecParameters

instance IsGObject RTCRtpCodecParameters where
  typeGType _ = gTypeRTCRtpCodecParameters
  {-# INLINE typeGType #-}

noRTCRtpCodecParameters :: Maybe RTCRtpCodecParameters
noRTCRtpCodecParameters = Nothing
{-# INLINE noRTCRtpCodecParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpCodecParameters :: GType

-- | Dictionary RTCRtpCodingParameters (webrtc)
newtype RTCRtpCodingParameters = RTCRtpCodingParameters { unRTCRtpCodingParameters :: JSVal }

instance Eq RTCRtpCodingParameters where
  (RTCRtpCodingParameters a) == (RTCRtpCodingParameters b) = js_eq a b

instance PToJSVal RTCRtpCodingParameters where
  pToJSVal = unRTCRtpCodingParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpCodingParameters where
  pFromJSVal = RTCRtpCodingParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpCodingParameters where
  toJSVal = return . unRTCRtpCodingParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpCodingParameters where
  fromJSVal = return . fmap RTCRtpCodingParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpCodingParameters
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCRtpCodingParameters o
toRTCRtpCodingParameters :: IsRTCRtpCodingParameters o => o -> RTCRtpCodingParameters
toRTCRtpCodingParameters = RTCRtpCodingParameters . coerce

instance IsRTCRtpCodingParameters RTCRtpCodingParameters

instance IsGObject RTCRtpCodingParameters where
  typeGType _ = gTypeRTCRtpCodingParameters
  {-# INLINE typeGType #-}

noRTCRtpCodingParameters :: Maybe RTCRtpCodingParameters
noRTCRtpCodingParameters = Nothing
{-# INLINE noRTCRtpCodingParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpCodingParameters :: GType

-- | Dictionary RTCRtpContributingSource (webrtc)
newtype RTCRtpContributingSource = RTCRtpContributingSource { unRTCRtpContributingSource :: JSVal }

instance Eq RTCRtpContributingSource where
  (RTCRtpContributingSource a) == (RTCRtpContributingSource b) = js_eq a b

instance PToJSVal RTCRtpContributingSource where
  pToJSVal = unRTCRtpContributingSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpContributingSource where
  pFromJSVal = RTCRtpContributingSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpContributingSource where
  toJSVal = return . unRTCRtpContributingSource
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpContributingSource where
  fromJSVal = return . fmap RTCRtpContributingSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpContributingSource
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCRtpContributingSource o
toRTCRtpContributingSource :: IsRTCRtpContributingSource o => o -> RTCRtpContributingSource
toRTCRtpContributingSource = RTCRtpContributingSource . coerce

instance IsRTCRtpContributingSource RTCRtpContributingSource

instance IsGObject RTCRtpContributingSource where
  typeGType _ = gTypeRTCRtpContributingSource
  {-# INLINE typeGType #-}

noRTCRtpContributingSource :: Maybe RTCRtpContributingSource
noRTCRtpContributingSource = Nothing
{-# INLINE noRTCRtpContributingSource #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpContributingSource :: GType

-- | Dictionary RTCRtpEncodingParameters (webrtc)
newtype RTCRtpEncodingParameters = RTCRtpEncodingParameters { unRTCRtpEncodingParameters :: JSVal }

instance Eq RTCRtpEncodingParameters where
  (RTCRtpEncodingParameters a) == (RTCRtpEncodingParameters b) = js_eq a b

instance PToJSVal RTCRtpEncodingParameters where
  pToJSVal = unRTCRtpEncodingParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpEncodingParameters where
  pFromJSVal = RTCRtpEncodingParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpEncodingParameters where
  toJSVal = return . unRTCRtpEncodingParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpEncodingParameters where
  fromJSVal = return . fmap RTCRtpEncodingParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpEncodingParameters
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCRtpCodingParameters RTCRtpEncodingParameters

instance IsGObject RTCRtpEncodingParameters where
  typeGType _ = gTypeRTCRtpEncodingParameters
  {-# INLINE typeGType #-}

noRTCRtpEncodingParameters :: Maybe RTCRtpEncodingParameters
noRTCRtpEncodingParameters = Nothing
{-# INLINE noRTCRtpEncodingParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpEncodingParameters :: GType

-- | Dictionary RTCRtpHeaderExtensionCapability (webrtc)
newtype RTCRtpHeaderExtensionCapability = RTCRtpHeaderExtensionCapability { unRTCRtpHeaderExtensionCapability :: JSVal }

instance Eq RTCRtpHeaderExtensionCapability where
  (RTCRtpHeaderExtensionCapability a) == (RTCRtpHeaderExtensionCapability b) = js_eq a b

instance PToJSVal RTCRtpHeaderExtensionCapability where
  pToJSVal = unRTCRtpHeaderExtensionCapability
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpHeaderExtensionCapability where
  pFromJSVal = RTCRtpHeaderExtensionCapability
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpHeaderExtensionCapability where
  toJSVal = return . unRTCRtpHeaderExtensionCapability
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpHeaderExtensionCapability where
  fromJSVal = return . fmap RTCRtpHeaderExtensionCapability . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpHeaderExtensionCapability
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpHeaderExtensionCapability where
  typeGType _ = gTypeRTCRtpHeaderExtensionCapability
  {-# INLINE typeGType #-}

noRTCRtpHeaderExtensionCapability :: Maybe RTCRtpHeaderExtensionCapability
noRTCRtpHeaderExtensionCapability = Nothing
{-# INLINE noRTCRtpHeaderExtensionCapability #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpHeaderExtensionCapability :: GType

-- | Dictionary RTCRtpHeaderExtensionParameters (webrtc)
newtype RTCRtpHeaderExtensionParameters = RTCRtpHeaderExtensionParameters { unRTCRtpHeaderExtensionParameters :: JSVal }

instance Eq RTCRtpHeaderExtensionParameters where
  (RTCRtpHeaderExtensionParameters a) == (RTCRtpHeaderExtensionParameters b) = js_eq a b

instance PToJSVal RTCRtpHeaderExtensionParameters where
  pToJSVal = unRTCRtpHeaderExtensionParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpHeaderExtensionParameters where
  pFromJSVal = RTCRtpHeaderExtensionParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpHeaderExtensionParameters where
  toJSVal = return . unRTCRtpHeaderExtensionParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpHeaderExtensionParameters where
  fromJSVal = return . fmap RTCRtpHeaderExtensionParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpHeaderExtensionParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpHeaderExtensionParameters where
  typeGType _ = gTypeRTCRtpHeaderExtensionParameters
  {-# INLINE typeGType #-}

noRTCRtpHeaderExtensionParameters :: Maybe RTCRtpHeaderExtensionParameters
noRTCRtpHeaderExtensionParameters = Nothing
{-# INLINE noRTCRtpHeaderExtensionParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpHeaderExtensionParameters :: GType

-- | Dictionary RTCRtpParameters (webrtc)
newtype RTCRtpParameters = RTCRtpParameters { unRTCRtpParameters :: JSVal }

instance Eq RTCRtpParameters where
  (RTCRtpParameters a) == (RTCRtpParameters b) = js_eq a b

instance PToJSVal RTCRtpParameters where
  pToJSVal = unRTCRtpParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpParameters where
  pFromJSVal = RTCRtpParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpParameters where
  toJSVal = return . unRTCRtpParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpParameters where
  fromJSVal = return . fmap RTCRtpParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpParameters
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsRTCRtpParameters o
toRTCRtpParameters :: IsRTCRtpParameters o => o -> RTCRtpParameters
toRTCRtpParameters = RTCRtpParameters . coerce

instance IsRTCRtpParameters RTCRtpParameters

instance IsGObject RTCRtpParameters where
  typeGType _ = gTypeRTCRtpParameters
  {-# INLINE typeGType #-}

noRTCRtpParameters :: Maybe RTCRtpParameters
noRTCRtpParameters = Nothing
{-# INLINE noRTCRtpParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpParameters :: GType

-- | Dictionary RTCRtpReceiveParameters (webrtc)
newtype RTCRtpReceiveParameters = RTCRtpReceiveParameters { unRTCRtpReceiveParameters :: JSVal }

instance Eq RTCRtpReceiveParameters where
  (RTCRtpReceiveParameters a) == (RTCRtpReceiveParameters b) = js_eq a b

instance PToJSVal RTCRtpReceiveParameters where
  pToJSVal = unRTCRtpReceiveParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpReceiveParameters where
  pFromJSVal = RTCRtpReceiveParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpReceiveParameters where
  toJSVal = return . unRTCRtpReceiveParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpReceiveParameters where
  fromJSVal = return . fmap RTCRtpReceiveParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpReceiveParameters
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCRtpParameters RTCRtpReceiveParameters

instance IsGObject RTCRtpReceiveParameters where
  typeGType _ = gTypeRTCRtpReceiveParameters
  {-# INLINE typeGType #-}

noRTCRtpReceiveParameters :: Maybe RTCRtpReceiveParameters
noRTCRtpReceiveParameters = Nothing
{-# INLINE noRTCRtpReceiveParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpReceiveParameters :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpReceiver" (webrtc).
newtype RTCRtpReceiver = RTCRtpReceiver { unRTCRtpReceiver :: JSVal }

instance Eq RTCRtpReceiver where
  (RTCRtpReceiver a) == (RTCRtpReceiver b) = js_eq a b

instance PToJSVal RTCRtpReceiver where
  pToJSVal = unRTCRtpReceiver
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpReceiver where
  pFromJSVal = RTCRtpReceiver
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpReceiver where
  toJSVal = return . unRTCRtpReceiver
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpReceiver where
  fromJSVal = return . fmap RTCRtpReceiver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpReceiver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpReceiver where
  typeGType _ = gTypeRTCRtpReceiver
  {-# INLINE typeGType #-}

noRTCRtpReceiver :: Maybe RTCRtpReceiver
noRTCRtpReceiver = Nothing
{-# INLINE noRTCRtpReceiver #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpReceiver\"])" gTypeRTCRtpReceiver :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpSFrameDecryptor" (webrtc-encoded-transform).
newtype RTCRtpSFrameDecryptor = RTCRtpSFrameDecryptor { unRTCRtpSFrameDecryptor :: JSVal }

instance Eq RTCRtpSFrameDecryptor where
  (RTCRtpSFrameDecryptor a) == (RTCRtpSFrameDecryptor b) = js_eq a b

instance PToJSVal RTCRtpSFrameDecryptor where
  pToJSVal = unRTCRtpSFrameDecryptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpSFrameDecryptor where
  pFromJSVal = RTCRtpSFrameDecryptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpSFrameDecryptor where
  toJSVal = return . unRTCRtpSFrameDecryptor
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpSFrameDecryptor where
  fromJSVal = return . fmap RTCRtpSFrameDecryptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpSFrameDecryptor
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCRtpSFrameDecryptor

instance IsGObject RTCRtpSFrameDecryptor where
  typeGType _ = gTypeRTCRtpSFrameDecryptor
  {-# INLINE typeGType #-}

noRTCRtpSFrameDecryptor :: Maybe RTCRtpSFrameDecryptor
noRTCRtpSFrameDecryptor = Nothing
{-# INLINE noRTCRtpSFrameDecryptor #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpSFrameDecryptor\"])" gTypeRTCRtpSFrameDecryptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpSFrameEncryptor" (webrtc-encoded-transform).
newtype RTCRtpSFrameEncryptor = RTCRtpSFrameEncryptor { unRTCRtpSFrameEncryptor :: JSVal }

instance Eq RTCRtpSFrameEncryptor where
  (RTCRtpSFrameEncryptor a) == (RTCRtpSFrameEncryptor b) = js_eq a b

instance PToJSVal RTCRtpSFrameEncryptor where
  pToJSVal = unRTCRtpSFrameEncryptor
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpSFrameEncryptor where
  pFromJSVal = RTCRtpSFrameEncryptor
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpSFrameEncryptor where
  toJSVal = return . unRTCRtpSFrameEncryptor
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpSFrameEncryptor where
  fromJSVal = return . fmap RTCRtpSFrameEncryptor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpSFrameEncryptor
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpSFrameEncryptor where
  typeGType _ = gTypeRTCRtpSFrameEncryptor
  {-# INLINE typeGType #-}

noRTCRtpSFrameEncryptor :: Maybe RTCRtpSFrameEncryptor
noRTCRtpSFrameEncryptor = Nothing
{-# INLINE noRTCRtpSFrameEncryptor #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpSFrameEncryptor\"])" gTypeRTCRtpSFrameEncryptor :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpScriptTransform" (webrtc-encoded-transform).
newtype RTCRtpScriptTransform = RTCRtpScriptTransform { unRTCRtpScriptTransform :: JSVal }

instance Eq RTCRtpScriptTransform where
  (RTCRtpScriptTransform a) == (RTCRtpScriptTransform b) = js_eq a b

instance PToJSVal RTCRtpScriptTransform where
  pToJSVal = unRTCRtpScriptTransform
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpScriptTransform where
  pFromJSVal = RTCRtpScriptTransform
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpScriptTransform where
  toJSVal = return . unRTCRtpScriptTransform
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpScriptTransform where
  fromJSVal = return . fmap RTCRtpScriptTransform . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpScriptTransform
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpScriptTransform where
  typeGType _ = gTypeRTCRtpScriptTransform
  {-# INLINE typeGType #-}

noRTCRtpScriptTransform :: Maybe RTCRtpScriptTransform
noRTCRtpScriptTransform = Nothing
{-# INLINE noRTCRtpScriptTransform #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpScriptTransform\"])" gTypeRTCRtpScriptTransform :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpScriptTransformer" (webrtc-encoded-transform).
newtype RTCRtpScriptTransformer = RTCRtpScriptTransformer { unRTCRtpScriptTransformer :: JSVal }

instance Eq RTCRtpScriptTransformer where
  (RTCRtpScriptTransformer a) == (RTCRtpScriptTransformer b) = js_eq a b

instance PToJSVal RTCRtpScriptTransformer where
  pToJSVal = unRTCRtpScriptTransformer
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpScriptTransformer where
  pFromJSVal = RTCRtpScriptTransformer
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpScriptTransformer where
  toJSVal = return . unRTCRtpScriptTransformer
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpScriptTransformer where
  fromJSVal = return . fmap RTCRtpScriptTransformer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpScriptTransformer
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCRtpScriptTransformer

instance IsGObject RTCRtpScriptTransformer where
  typeGType _ = gTypeRTCRtpScriptTransformer
  {-# INLINE typeGType #-}

noRTCRtpScriptTransformer :: Maybe RTCRtpScriptTransformer
noRTCRtpScriptTransformer = Nothing
{-# INLINE noRTCRtpScriptTransformer #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpScriptTransformer\"])" gTypeRTCRtpScriptTransformer :: GType

-- | Dictionary RTCRtpSendParameters (webrtc)
newtype RTCRtpSendParameters = RTCRtpSendParameters { unRTCRtpSendParameters :: JSVal }

instance Eq RTCRtpSendParameters where
  (RTCRtpSendParameters a) == (RTCRtpSendParameters b) = js_eq a b

instance PToJSVal RTCRtpSendParameters where
  pToJSVal = unRTCRtpSendParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpSendParameters where
  pFromJSVal = RTCRtpSendParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpSendParameters where
  toJSVal = return . unRTCRtpSendParameters
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpSendParameters where
  fromJSVal = return . fmap RTCRtpSendParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpSendParameters
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCRtpParameters RTCRtpSendParameters

instance IsGObject RTCRtpSendParameters where
  typeGType _ = gTypeRTCRtpSendParameters
  {-# INLINE typeGType #-}

noRTCRtpSendParameters :: Maybe RTCRtpSendParameters
noRTCRtpSendParameters = Nothing
{-# INLINE noRTCRtpSendParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpSendParameters :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpSender" (webrtc).
newtype RTCRtpSender = RTCRtpSender { unRTCRtpSender :: JSVal }

instance Eq RTCRtpSender where
  (RTCRtpSender a) == (RTCRtpSender b) = js_eq a b

instance PToJSVal RTCRtpSender where
  pToJSVal = unRTCRtpSender
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpSender where
  pFromJSVal = RTCRtpSender
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpSender where
  toJSVal = return . unRTCRtpSender
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpSender where
  fromJSVal = return . fmap RTCRtpSender . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpSender
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpSender where
  typeGType _ = gTypeRTCRtpSender
  {-# INLINE typeGType #-}

noRTCRtpSender :: Maybe RTCRtpSender
noRTCRtpSender = Nothing
{-# INLINE noRTCRtpSender #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpSender\"])" gTypeRTCRtpSender :: GType

-- | Dictionary RTCRtpSynchronizationSource (webrtc)
newtype RTCRtpSynchronizationSource = RTCRtpSynchronizationSource { unRTCRtpSynchronizationSource :: JSVal }

instance Eq RTCRtpSynchronizationSource where
  (RTCRtpSynchronizationSource a) == (RTCRtpSynchronizationSource b) = js_eq a b

instance PToJSVal RTCRtpSynchronizationSource where
  pToJSVal = unRTCRtpSynchronizationSource
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpSynchronizationSource where
  pFromJSVal = RTCRtpSynchronizationSource
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpSynchronizationSource where
  toJSVal = return . unRTCRtpSynchronizationSource
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpSynchronizationSource where
  fromJSVal = return . fmap RTCRtpSynchronizationSource . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpSynchronizationSource
  {-# INLINE fromJSValUnchecked #-}

instance IsRTCRtpContributingSource RTCRtpSynchronizationSource

instance IsGObject RTCRtpSynchronizationSource where
  typeGType _ = gTypeRTCRtpSynchronizationSource
  {-# INLINE typeGType #-}

noRTCRtpSynchronizationSource :: Maybe RTCRtpSynchronizationSource
noRTCRtpSynchronizationSource = Nothing
{-# INLINE noRTCRtpSynchronizationSource #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpSynchronizationSource :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCRtpTransceiver" (webrtc).
newtype RTCRtpTransceiver = RTCRtpTransceiver { unRTCRtpTransceiver :: JSVal }

instance Eq RTCRtpTransceiver where
  (RTCRtpTransceiver a) == (RTCRtpTransceiver b) = js_eq a b

instance PToJSVal RTCRtpTransceiver where
  pToJSVal = unRTCRtpTransceiver
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpTransceiver where
  pFromJSVal = RTCRtpTransceiver
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpTransceiver where
  toJSVal = return . unRTCRtpTransceiver
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpTransceiver where
  fromJSVal = return . fmap RTCRtpTransceiver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpTransceiver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpTransceiver where
  typeGType _ = gTypeRTCRtpTransceiver
  {-# INLINE typeGType #-}

noRTCRtpTransceiver :: Maybe RTCRtpTransceiver
noRTCRtpTransceiver = Nothing
{-# INLINE noRTCRtpTransceiver #-}

foreign import javascript unsafe "(() => globalThis[\"RTCRtpTransceiver\"])" gTypeRTCRtpTransceiver :: GType

-- | Dictionary RTCRtpTransceiverInit (webrtc)
newtype RTCRtpTransceiverInit = RTCRtpTransceiverInit { unRTCRtpTransceiverInit :: JSVal }

instance Eq RTCRtpTransceiverInit where
  (RTCRtpTransceiverInit a) == (RTCRtpTransceiverInit b) = js_eq a b

instance PToJSVal RTCRtpTransceiverInit where
  pToJSVal = unRTCRtpTransceiverInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCRtpTransceiverInit where
  pFromJSVal = RTCRtpTransceiverInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCRtpTransceiverInit where
  toJSVal = return . unRTCRtpTransceiverInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCRtpTransceiverInit where
  fromJSVal = return . fmap RTCRtpTransceiverInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCRtpTransceiverInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCRtpTransceiverInit where
  typeGType _ = gTypeRTCRtpTransceiverInit
  {-# INLINE typeGType #-}

noRTCRtpTransceiverInit :: Maybe RTCRtpTransceiverInit
noRTCRtpTransceiverInit = Nothing
{-# INLINE noRTCRtpTransceiverInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCRtpTransceiverInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCSctpTransport" (webrtc).
newtype RTCSctpTransport = RTCSctpTransport { unRTCSctpTransport :: JSVal }

instance Eq RTCSctpTransport where
  (RTCSctpTransport a) == (RTCSctpTransport b) = js_eq a b

instance PToJSVal RTCSctpTransport where
  pToJSVal = unRTCSctpTransport
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCSctpTransport where
  pFromJSVal = RTCSctpTransport
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCSctpTransport where
  toJSVal = return . unRTCSctpTransport
  {-# INLINE toJSVal #-}

instance FromJSVal RTCSctpTransport where
  fromJSVal = return . fmap RTCSctpTransport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCSctpTransport
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RTCSctpTransport

instance IsGObject RTCSctpTransport where
  typeGType _ = gTypeRTCSctpTransport
  {-# INLINE typeGType #-}

noRTCSctpTransport :: Maybe RTCSctpTransport
noRTCSctpTransport = Nothing
{-# INLINE noRTCSctpTransport #-}

foreign import javascript unsafe "(() => globalThis[\"RTCSctpTransport\"])" gTypeRTCSctpTransport :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCSessionDescription" (webrtc).
newtype RTCSessionDescription = RTCSessionDescription { unRTCSessionDescription :: JSVal }

instance Eq RTCSessionDescription where
  (RTCSessionDescription a) == (RTCSessionDescription b) = js_eq a b

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 = return . fmap RTCSessionDescription . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCSessionDescription
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCSessionDescription where
  typeGType _ = gTypeRTCSessionDescription
  {-# INLINE typeGType #-}

noRTCSessionDescription :: Maybe RTCSessionDescription
noRTCSessionDescription = Nothing
{-# INLINE noRTCSessionDescription #-}

foreign import javascript unsafe "(() => globalThis[\"RTCSessionDescription\"])" gTypeRTCSessionDescription :: GType

-- | Dictionary RTCSessionDescriptionInit (webrtc)
newtype RTCSessionDescriptionInit = RTCSessionDescriptionInit { unRTCSessionDescriptionInit :: JSVal }

instance Eq RTCSessionDescriptionInit where
  (RTCSessionDescriptionInit a) == (RTCSessionDescriptionInit b) = js_eq a b

instance PToJSVal RTCSessionDescriptionInit where
  pToJSVal = unRTCSessionDescriptionInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCSessionDescriptionInit where
  pFromJSVal = RTCSessionDescriptionInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCSessionDescriptionInit where
  toJSVal = return . unRTCSessionDescriptionInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCSessionDescriptionInit where
  fromJSVal = return . fmap RTCSessionDescriptionInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCSessionDescriptionInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCSessionDescriptionInit where
  typeGType _ = gTypeRTCSessionDescriptionInit
  {-# INLINE typeGType #-}

noRTCSessionDescriptionInit :: Maybe RTCSessionDescriptionInit
noRTCSessionDescriptionInit = Nothing
{-# INLINE noRTCSessionDescriptionInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCSessionDescriptionInit :: GType

-- | Dictionary RTCSetParameterOptions (webrtc)
newtype RTCSetParameterOptions = RTCSetParameterOptions { unRTCSetParameterOptions :: JSVal }

instance Eq RTCSetParameterOptions where
  (RTCSetParameterOptions a) == (RTCSetParameterOptions b) = js_eq a b

instance PToJSVal RTCSetParameterOptions where
  pToJSVal = unRTCSetParameterOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCSetParameterOptions where
  pFromJSVal = RTCSetParameterOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCSetParameterOptions where
  toJSVal = return . unRTCSetParameterOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RTCSetParameterOptions where
  fromJSVal = return . fmap RTCSetParameterOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCSetParameterOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCSetParameterOptions where
  typeGType _ = gTypeRTCSetParameterOptions
  {-# INLINE typeGType #-}

noRTCSetParameterOptions :: Maybe RTCSetParameterOptions
noRTCSetParameterOptions = Nothing
{-# INLINE noRTCSetParameterOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCSetParameterOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCStatsReport" (webrtc).
newtype RTCStatsReport = RTCStatsReport { unRTCStatsReport :: JSVal }

instance Eq RTCStatsReport where
  (RTCStatsReport a) == (RTCStatsReport b) = js_eq a b

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 = return . fmap RTCStatsReport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCStatsReport
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RTCStatsReport where
  typeGType _ = gTypeRTCStatsReport
  {-# INLINE typeGType #-}

noRTCStatsReport :: Maybe RTCStatsReport
noRTCStatsReport = Nothing
{-# INLINE noRTCStatsReport #-}

foreign import javascript unsafe "(() => globalThis[\"RTCStatsReport\"])" gTypeRTCStatsReport :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCTrackEvent" (webrtc).
newtype RTCTrackEvent = RTCTrackEvent { unRTCTrackEvent :: JSVal }

instance Eq RTCTrackEvent where
  (RTCTrackEvent a) == (RTCTrackEvent b) = js_eq a b

instance PToJSVal RTCTrackEvent where
  pToJSVal = unRTCTrackEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCTrackEvent where
  pFromJSVal = RTCTrackEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCTrackEvent where
  toJSVal = return . unRTCTrackEvent
  {-# INLINE toJSVal #-}

instance FromJSVal RTCTrackEvent where
  fromJSVal = return . fmap RTCTrackEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCTrackEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCTrackEvent

instance IsGObject RTCTrackEvent where
  typeGType _ = gTypeRTCTrackEvent
  {-# INLINE typeGType #-}

noRTCTrackEvent :: Maybe RTCTrackEvent
noRTCTrackEvent = Nothing
{-# INLINE noRTCTrackEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCTrackEvent\"])" gTypeRTCTrackEvent :: GType

-- | Dictionary RTCTrackEventInit (webrtc)
newtype RTCTrackEventInit = RTCTrackEventInit { unRTCTrackEventInit :: JSVal }

instance Eq RTCTrackEventInit where
  (RTCTrackEventInit a) == (RTCTrackEventInit b) = js_eq a b

instance PToJSVal RTCTrackEventInit where
  pToJSVal = unRTCTrackEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCTrackEventInit where
  pFromJSVal = RTCTrackEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCTrackEventInit where
  toJSVal = return . unRTCTrackEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal RTCTrackEventInit where
  fromJSVal = return . fmap RTCTrackEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCTrackEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit RTCTrackEventInit

instance IsGObject RTCTrackEventInit where
  typeGType _ = gTypeRTCTrackEventInit
  {-# INLINE typeGType #-}

noRTCTrackEventInit :: Maybe RTCTrackEventInit
noRTCTrackEventInit = Nothing
{-# INLINE noRTCTrackEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRTCTrackEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.RTCTransformEvent" (webrtc-encoded-transform).
newtype RTCTransformEvent = RTCTransformEvent { unRTCTransformEvent :: JSVal }

instance Eq RTCTransformEvent where
  (RTCTransformEvent a) == (RTCTransformEvent b) = js_eq a b

instance PToJSVal RTCTransformEvent where
  pToJSVal = unRTCTransformEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal RTCTransformEvent where
  pFromJSVal = RTCTransformEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal RTCTransformEvent where
  toJSVal = return . unRTCTransformEvent
  {-# INLINE toJSVal #-}

instance FromJSVal RTCTransformEvent where
  fromJSVal = return . fmap RTCTransformEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RTCTransformEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent RTCTransformEvent

instance IsGObject RTCTransformEvent where
  typeGType _ = gTypeRTCTransformEvent
  {-# INLINE typeGType #-}

noRTCTransformEvent :: Maybe RTCTransformEvent
noRTCTransformEvent = Nothing
{-# INLINE noRTCTransformEvent #-}

foreign import javascript unsafe "(() => globalThis[\"RTCTransformEvent\"])" gTypeRTCTransformEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.RadioNodeList" (html).
newtype RadioNodeList = RadioNodeList { unRadioNodeList :: JSVal }

instance Eq RadioNodeList where
  (RadioNodeList a) == (RadioNodeList b) = js_eq a b

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 = return . fmap RadioNodeList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RadioNodeList
  {-# INLINE fromJSValUnchecked #-}

instance IsNodeList RadioNodeList

instance IsGObject RadioNodeList where
  typeGType _ = gTypeRadioNodeList
  {-# INLINE typeGType #-}

noRadioNodeList :: Maybe RadioNodeList
noRadioNodeList = Nothing
{-# INLINE noRadioNodeList #-}

foreign import javascript unsafe "(() => globalThis[\"RadioNodeList\"])" gTypeRadioNodeList :: GType

-- | Functions for this interface are in "GHCJS.DOM.Range" (dom).
newtype Range = Range { unRange :: JSVal }

instance Eq Range where
  (Range a) == (Range b) = js_eq a b

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 = return . fmap Range . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Range
  {-# INLINE fromJSValUnchecked #-}

instance IsAbstractRange Range

instance IsGObject Range where
  typeGType _ = gTypeRange
  {-# INLINE typeGType #-}

noRange :: Maybe Range
noRange = Nothing
{-# INLINE noRange #-}

foreign import javascript unsafe "(() => globalThis[\"Range\"])" gTypeRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableByteStreamController" (streams).
newtype ReadableByteStreamController = ReadableByteStreamController { unReadableByteStreamController :: JSVal }

instance Eq ReadableByteStreamController where
  (ReadableByteStreamController a) == (ReadableByteStreamController b) = js_eq a b

instance PToJSVal ReadableByteStreamController where
  pToJSVal = unReadableByteStreamController
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableByteStreamController where
  pFromJSVal = ReadableByteStreamController
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableByteStreamController where
  toJSVal = return . unReadableByteStreamController
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableByteStreamController where
  fromJSVal = return . fmap ReadableByteStreamController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableByteStreamController
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableByteStreamController where
  typeGType _ = gTypeReadableByteStreamController
  {-# INLINE typeGType #-}

noReadableByteStreamController :: Maybe ReadableByteStreamController
noReadableByteStreamController = Nothing
{-# INLINE noReadableByteStreamController #-}

foreign import javascript unsafe "(() => globalThis[\"ReadableByteStreamController\"])" gTypeReadableByteStreamController :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableStream" (streams).
newtype ReadableStream = ReadableStream { unReadableStream :: JSVal }

instance Eq ReadableStream where
  (ReadableStream a) == (ReadableStream b) = js_eq a b

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 = return . fmap ReadableStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStream
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsReadableStream o
toReadableStream :: IsReadableStream o => o -> ReadableStream
toReadableStream = ReadableStream . coerce

instance IsReadableStream ReadableStream

instance IsGObject ReadableStream where
  typeGType _ = gTypeReadableStream
  {-# INLINE typeGType #-}

noReadableStream :: Maybe ReadableStream
noReadableStream = Nothing
{-# INLINE noReadableStream #-}

foreign import javascript unsafe "(() => globalThis[\"ReadableStream\"])" gTypeReadableStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableStreamBYOBReader" (streams).
newtype ReadableStreamBYOBReader = ReadableStreamBYOBReader { unReadableStreamBYOBReader :: JSVal }

instance Eq ReadableStreamBYOBReader where
  (ReadableStreamBYOBReader a) == (ReadableStreamBYOBReader b) = js_eq a b

instance PToJSVal ReadableStreamBYOBReader where
  pToJSVal = unReadableStreamBYOBReader
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamBYOBReader where
  pFromJSVal = ReadableStreamBYOBReader
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamBYOBReader where
  toJSVal = return . unReadableStreamBYOBReader
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamBYOBReader where
  fromJSVal = return . fmap ReadableStreamBYOBReader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamBYOBReader
  {-# INLINE fromJSValUnchecked #-}

instance IsReadableStreamGenericReader ReadableStreamBYOBReader

instance IsGObject ReadableStreamBYOBReader where
  typeGType _ = gTypeReadableStreamBYOBReader
  {-# INLINE typeGType #-}

noReadableStreamBYOBReader :: Maybe ReadableStreamBYOBReader
noReadableStreamBYOBReader = Nothing
{-# INLINE noReadableStreamBYOBReader #-}

foreign import javascript unsafe "(() => globalThis[\"ReadableStreamBYOBReader\"])" gTypeReadableStreamBYOBReader :: GType

-- | Dictionary ReadableStreamBYOBReaderReadOptions (streams)
newtype ReadableStreamBYOBReaderReadOptions = ReadableStreamBYOBReaderReadOptions { unReadableStreamBYOBReaderReadOptions :: JSVal }

instance Eq ReadableStreamBYOBReaderReadOptions where
  (ReadableStreamBYOBReaderReadOptions a) == (ReadableStreamBYOBReaderReadOptions b) = js_eq a b

instance PToJSVal ReadableStreamBYOBReaderReadOptions where
  pToJSVal = unReadableStreamBYOBReaderReadOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamBYOBReaderReadOptions where
  pFromJSVal = ReadableStreamBYOBReaderReadOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamBYOBReaderReadOptions where
  toJSVal = return . unReadableStreamBYOBReaderReadOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamBYOBReaderReadOptions where
  fromJSVal = return . fmap ReadableStreamBYOBReaderReadOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamBYOBReaderReadOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableStreamBYOBReaderReadOptions where
  typeGType _ = gTypeReadableStreamBYOBReaderReadOptions
  {-# INLINE typeGType #-}

noReadableStreamBYOBReaderReadOptions :: Maybe ReadableStreamBYOBReaderReadOptions
noReadableStreamBYOBReaderReadOptions = Nothing
{-# INLINE noReadableStreamBYOBReaderReadOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReadableStreamBYOBReaderReadOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableStreamBYOBRequest" (streams).
newtype ReadableStreamBYOBRequest = ReadableStreamBYOBRequest { unReadableStreamBYOBRequest :: JSVal }

instance Eq ReadableStreamBYOBRequest where
  (ReadableStreamBYOBRequest a) == (ReadableStreamBYOBRequest b) = js_eq a b

instance PToJSVal ReadableStreamBYOBRequest where
  pToJSVal = unReadableStreamBYOBRequest
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamBYOBRequest where
  pFromJSVal = ReadableStreamBYOBRequest
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamBYOBRequest where
  toJSVal = return . unReadableStreamBYOBRequest
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamBYOBRequest where
  fromJSVal = return . fmap ReadableStreamBYOBRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamBYOBRequest
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableStreamBYOBRequest where
  typeGType _ = gTypeReadableStreamBYOBRequest
  {-# INLINE typeGType #-}

noReadableStreamBYOBRequest :: Maybe ReadableStreamBYOBRequest
noReadableStreamBYOBRequest = Nothing
{-# INLINE noReadableStreamBYOBRequest #-}

foreign import javascript unsafe "(() => globalThis[\"ReadableStreamBYOBRequest\"])" gTypeReadableStreamBYOBRequest :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableStreamDefaultController" (streams).
newtype ReadableStreamDefaultController = ReadableStreamDefaultController { unReadableStreamDefaultController :: JSVal }

instance Eq ReadableStreamDefaultController where
  (ReadableStreamDefaultController a) == (ReadableStreamDefaultController b) = js_eq a b

instance PToJSVal ReadableStreamDefaultController where
  pToJSVal = unReadableStreamDefaultController
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamDefaultController where
  pFromJSVal = ReadableStreamDefaultController
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamDefaultController where
  toJSVal = return . unReadableStreamDefaultController
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamDefaultController where
  fromJSVal = return . fmap ReadableStreamDefaultController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamDefaultController
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableStreamDefaultController where
  typeGType _ = gTypeReadableStreamDefaultController
  {-# INLINE typeGType #-}

noReadableStreamDefaultController :: Maybe ReadableStreamDefaultController
noReadableStreamDefaultController = Nothing
{-# INLINE noReadableStreamDefaultController #-}

foreign import javascript unsafe "(() => globalThis[\"ReadableStreamDefaultController\"])" gTypeReadableStreamDefaultController :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableStreamDefaultReader" (streams).
newtype ReadableStreamDefaultReader = ReadableStreamDefaultReader { unReadableStreamDefaultReader :: JSVal }

instance Eq ReadableStreamDefaultReader where
  (ReadableStreamDefaultReader a) == (ReadableStreamDefaultReader b) = js_eq a b

instance PToJSVal ReadableStreamDefaultReader where
  pToJSVal = unReadableStreamDefaultReader
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamDefaultReader where
  pFromJSVal = ReadableStreamDefaultReader
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamDefaultReader where
  toJSVal = return . unReadableStreamDefaultReader
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamDefaultReader where
  fromJSVal = return . fmap ReadableStreamDefaultReader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamDefaultReader
  {-# INLINE fromJSValUnchecked #-}

instance IsReadableStreamGenericReader ReadableStreamDefaultReader

instance IsGObject ReadableStreamDefaultReader where
  typeGType _ = gTypeReadableStreamDefaultReader
  {-# INLINE typeGType #-}

noReadableStreamDefaultReader :: Maybe ReadableStreamDefaultReader
noReadableStreamDefaultReader = Nothing
{-# INLINE noReadableStreamDefaultReader #-}

foreign import javascript unsafe "(() => globalThis[\"ReadableStreamDefaultReader\"])" gTypeReadableStreamDefaultReader :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReadableStreamGenericReader" (streams).
newtype ReadableStreamGenericReader = ReadableStreamGenericReader { unReadableStreamGenericReader :: JSVal }

instance Eq ReadableStreamGenericReader where
  (ReadableStreamGenericReader a) == (ReadableStreamGenericReader b) = js_eq a b

instance PToJSVal ReadableStreamGenericReader where
  pToJSVal = unReadableStreamGenericReader
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamGenericReader where
  pFromJSVal = ReadableStreamGenericReader
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamGenericReader where
  toJSVal = return . unReadableStreamGenericReader
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamGenericReader where
  fromJSVal = return . fmap ReadableStreamGenericReader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamGenericReader
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsReadableStreamGenericReader o
toReadableStreamGenericReader :: IsReadableStreamGenericReader o => o -> ReadableStreamGenericReader
toReadableStreamGenericReader = ReadableStreamGenericReader . coerce

instance IsReadableStreamGenericReader ReadableStreamGenericReader

instance IsGObject ReadableStreamGenericReader where
  typeGType _ = gTypeReadableStreamGenericReader
  {-# INLINE typeGType #-}

noReadableStreamGenericReader :: Maybe ReadableStreamGenericReader
noReadableStreamGenericReader = Nothing
{-# INLINE noReadableStreamGenericReader #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReadableStreamGenericReader :: GType

-- | Dictionary ReadableStreamGetReaderOptions (streams)
newtype ReadableStreamGetReaderOptions = ReadableStreamGetReaderOptions { unReadableStreamGetReaderOptions :: JSVal }

instance Eq ReadableStreamGetReaderOptions where
  (ReadableStreamGetReaderOptions a) == (ReadableStreamGetReaderOptions b) = js_eq a b

instance PToJSVal ReadableStreamGetReaderOptions where
  pToJSVal = unReadableStreamGetReaderOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamGetReaderOptions where
  pFromJSVal = ReadableStreamGetReaderOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamGetReaderOptions where
  toJSVal = return . unReadableStreamGetReaderOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamGetReaderOptions where
  fromJSVal = return . fmap ReadableStreamGetReaderOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamGetReaderOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableStreamGetReaderOptions where
  typeGType _ = gTypeReadableStreamGetReaderOptions
  {-# INLINE typeGType #-}

noReadableStreamGetReaderOptions :: Maybe ReadableStreamGetReaderOptions
noReadableStreamGetReaderOptions = Nothing
{-# INLINE noReadableStreamGetReaderOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReadableStreamGetReaderOptions :: GType

-- | Dictionary ReadableStreamReadResult (streams)
newtype ReadableStreamReadResult = ReadableStreamReadResult { unReadableStreamReadResult :: JSVal }

instance Eq ReadableStreamReadResult where
  (ReadableStreamReadResult a) == (ReadableStreamReadResult b) = js_eq a b

instance PToJSVal ReadableStreamReadResult where
  pToJSVal = unReadableStreamReadResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableStreamReadResult where
  pFromJSVal = ReadableStreamReadResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableStreamReadResult where
  toJSVal = return . unReadableStreamReadResult
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableStreamReadResult where
  fromJSVal = return . fmap ReadableStreamReadResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableStreamReadResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableStreamReadResult where
  typeGType _ = gTypeReadableStreamReadResult
  {-# INLINE typeGType #-}

noReadableStreamReadResult :: Maybe ReadableStreamReadResult
noReadableStreamReadResult = Nothing
{-# INLINE noReadableStreamReadResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReadableStreamReadResult :: GType

-- | Dictionary ReadableWritablePair (streams)
newtype ReadableWritablePair = ReadableWritablePair { unReadableWritablePair :: JSVal }

instance Eq ReadableWritablePair where
  (ReadableWritablePair a) == (ReadableWritablePair b) = js_eq a b

instance PToJSVal ReadableWritablePair where
  pToJSVal = unReadableWritablePair
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReadableWritablePair where
  pFromJSVal = ReadableWritablePair
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReadableWritablePair where
  toJSVal = return . unReadableWritablePair
  {-# INLINE toJSVal #-}

instance FromJSVal ReadableWritablePair where
  fromJSVal = return . fmap ReadableWritablePair . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReadableWritablePair
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReadableWritablePair where
  typeGType _ = gTypeReadableWritablePair
  {-# INLINE typeGType #-}

noReadableWritablePair :: Maybe ReadableWritablePair
noReadableWritablePair = Nothing
{-# INLINE noReadableWritablePair #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReadableWritablePair :: GType

-- | Dictionary RegistrationOptions (service-workers)
newtype RegistrationOptions = RegistrationOptions { unRegistrationOptions :: JSVal }

instance Eq RegistrationOptions where
  (RegistrationOptions a) == (RegistrationOptions b) = js_eq a b

instance PToJSVal RegistrationOptions where
  pToJSVal = unRegistrationOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal RegistrationOptions where
  pFromJSVal = RegistrationOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal RegistrationOptions where
  toJSVal = return . unRegistrationOptions
  {-# INLINE toJSVal #-}

instance FromJSVal RegistrationOptions where
  fromJSVal = return . fmap RegistrationOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RegistrationOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RegistrationOptions where
  typeGType _ = gTypeRegistrationOptions
  {-# INLINE typeGType #-}

noRegistrationOptions :: Maybe RegistrationOptions
noRegistrationOptions = Nothing
{-# INLINE noRegistrationOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRegistrationOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.RemotePlayback" (remote-playback).
newtype RemotePlayback = RemotePlayback { unRemotePlayback :: JSVal }

instance Eq RemotePlayback where
  (RemotePlayback a) == (RemotePlayback b) = js_eq a b

instance PToJSVal RemotePlayback where
  pToJSVal = unRemotePlayback
  {-# INLINE pToJSVal #-}

instance PFromJSVal RemotePlayback where
  pFromJSVal = RemotePlayback
  {-# INLINE pFromJSVal #-}

instance ToJSVal RemotePlayback where
  toJSVal = return . unRemotePlayback
  {-# INLINE toJSVal #-}

instance FromJSVal RemotePlayback where
  fromJSVal = return . fmap RemotePlayback . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RemotePlayback
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget RemotePlayback

instance IsGObject RemotePlayback where
  typeGType _ = gTypeRemotePlayback
  {-# INLINE typeGType #-}

noRemotePlayback :: Maybe RemotePlayback
noRemotePlayback = Nothing
{-# INLINE noRemotePlayback #-}

foreign import javascript unsafe "(() => globalThis[\"RemotePlayback\"])" gTypeRemotePlayback :: GType

-- | Dictionary Report (reporting-1)
newtype Report = Report { unReport :: JSVal }

instance Eq Report where
  (Report a) == (Report b) = js_eq a b

instance PToJSVal Report where
  pToJSVal = unReport
  {-# INLINE pToJSVal #-}

instance PFromJSVal Report where
  pFromJSVal = Report
  {-# INLINE pFromJSVal #-}

instance ToJSVal Report where
  toJSVal = return . unReport
  {-# INLINE toJSVal #-}

instance FromJSVal Report where
  fromJSVal = return . fmap Report . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Report
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Report where
  typeGType _ = gTypeReport
  {-# INLINE typeGType #-}

noReport :: Maybe Report
noReport = Nothing
{-# INLINE noReport #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReport :: GType

-- | Dictionary ReportBody (reporting-1)
newtype ReportBody = ReportBody { unReportBody :: JSVal }

instance Eq ReportBody where
  (ReportBody a) == (ReportBody b) = js_eq a b

instance PToJSVal ReportBody where
  pToJSVal = unReportBody
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReportBody where
  pFromJSVal = ReportBody
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReportBody where
  toJSVal = return . unReportBody
  {-# INLINE toJSVal #-}

instance FromJSVal ReportBody where
  fromJSVal = return . fmap ReportBody . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReportBody
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReportBody where
  typeGType _ = gTypeReportBody
  {-# INLINE typeGType #-}

noReportBody :: Maybe ReportBody
noReportBody = Nothing
{-# INLINE noReportBody #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReportBody :: GType

-- | Functions for this interface are in "GHCJS.DOM.ReportingObserver" (reporting-1).
newtype ReportingObserver = ReportingObserver { unReportingObserver :: JSVal }

instance Eq ReportingObserver where
  (ReportingObserver a) == (ReportingObserver b) = js_eq a b

instance PToJSVal ReportingObserver where
  pToJSVal = unReportingObserver
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReportingObserver where
  pFromJSVal = ReportingObserver
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReportingObserver where
  toJSVal = return . unReportingObserver
  {-# INLINE toJSVal #-}

instance FromJSVal ReportingObserver where
  fromJSVal = return . fmap ReportingObserver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReportingObserver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReportingObserver where
  typeGType _ = gTypeReportingObserver
  {-# INLINE typeGType #-}

noReportingObserver :: Maybe ReportingObserver
noReportingObserver = Nothing
{-# INLINE noReportingObserver #-}

foreign import javascript unsafe "(() => globalThis[\"ReportingObserver\"])" gTypeReportingObserver :: GType

-- | Dictionary ReportingObserverOptions (reporting-1)
newtype ReportingObserverOptions = ReportingObserverOptions { unReportingObserverOptions :: JSVal }

instance Eq ReportingObserverOptions where
  (ReportingObserverOptions a) == (ReportingObserverOptions b) = js_eq a b

instance PToJSVal ReportingObserverOptions where
  pToJSVal = unReportingObserverOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ReportingObserverOptions where
  pFromJSVal = ReportingObserverOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ReportingObserverOptions where
  toJSVal = return . unReportingObserverOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ReportingObserverOptions where
  fromJSVal = return . fmap ReportingObserverOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ReportingObserverOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ReportingObserverOptions where
  typeGType _ = gTypeReportingObserverOptions
  {-# INLINE typeGType #-}

noReportingObserverOptions :: Maybe ReportingObserverOptions
noReportingObserverOptions = Nothing
{-# INLINE noReportingObserverOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeReportingObserverOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Request" (fetch).
newtype Request = Request { unRequest :: JSVal }

instance Eq Request where
  (Request a) == (Request b) = js_eq a b

instance PToJSVal Request where
  pToJSVal = unRequest
  {-# INLINE pToJSVal #-}

instance PFromJSVal Request where
  pFromJSVal = Request
  {-# INLINE pFromJSVal #-}

instance ToJSVal Request where
  toJSVal = return . unRequest
  {-# INLINE toJSVal #-}

instance FromJSVal Request where
  fromJSVal = return . fmap Request . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Request
  {-# INLINE fromJSValUnchecked #-}

instance IsBody Request

instance IsGObject Request where
  typeGType _ = gTypeRequest
  {-# INLINE typeGType #-}

noRequest :: Maybe Request
noRequest = Nothing
{-# INLINE noRequest #-}

foreign import javascript unsafe "(() => globalThis[\"Request\"])" gTypeRequest :: GType

-- | Dictionary RequestInit (fetch)
newtype RequestInit = RequestInit { unRequestInit :: JSVal }

instance Eq RequestInit where
  (RequestInit a) == (RequestInit b) = js_eq a b

instance PToJSVal RequestInit where
  pToJSVal = unRequestInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal RequestInit where
  pFromJSVal = RequestInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal RequestInit where
  toJSVal = return . unRequestInit
  {-# INLINE toJSVal #-}

instance FromJSVal RequestInit where
  fromJSVal = return . fmap RequestInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RequestInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RequestInit where
  typeGType _ = gTypeRequestInit
  {-# INLINE typeGType #-}

noRequestInit :: Maybe RequestInit
noRequestInit = Nothing
{-# INLINE noRequestInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRequestInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.ResizeObserver" (resize-observer-1).
newtype ResizeObserver = ResizeObserver { unResizeObserver :: JSVal }

instance Eq ResizeObserver where
  (ResizeObserver a) == (ResizeObserver b) = js_eq a b

instance PToJSVal ResizeObserver where
  pToJSVal = unResizeObserver
  {-# INLINE pToJSVal #-}

instance PFromJSVal ResizeObserver where
  pFromJSVal = ResizeObserver
  {-# INLINE pFromJSVal #-}

instance ToJSVal ResizeObserver where
  toJSVal = return . unResizeObserver
  {-# INLINE toJSVal #-}

instance FromJSVal ResizeObserver where
  fromJSVal = return . fmap ResizeObserver . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ResizeObserver
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ResizeObserver where
  typeGType _ = gTypeResizeObserver
  {-# INLINE typeGType #-}

noResizeObserver :: Maybe ResizeObserver
noResizeObserver = Nothing
{-# INLINE noResizeObserver #-}

foreign import javascript unsafe "(() => globalThis[\"ResizeObserver\"])" gTypeResizeObserver :: GType

-- | Functions for this interface are in "GHCJS.DOM.ResizeObserverEntry" (resize-observer-1).
newtype ResizeObserverEntry = ResizeObserverEntry { unResizeObserverEntry :: JSVal }

instance Eq ResizeObserverEntry where
  (ResizeObserverEntry a) == (ResizeObserverEntry b) = js_eq a b

instance PToJSVal ResizeObserverEntry where
  pToJSVal = unResizeObserverEntry
  {-# INLINE pToJSVal #-}

instance PFromJSVal ResizeObserverEntry where
  pFromJSVal = ResizeObserverEntry
  {-# INLINE pFromJSVal #-}

instance ToJSVal ResizeObserverEntry where
  toJSVal = return . unResizeObserverEntry
  {-# INLINE toJSVal #-}

instance FromJSVal ResizeObserverEntry where
  fromJSVal = return . fmap ResizeObserverEntry . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ResizeObserverEntry
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ResizeObserverEntry where
  typeGType _ = gTypeResizeObserverEntry
  {-# INLINE typeGType #-}

noResizeObserverEntry :: Maybe ResizeObserverEntry
noResizeObserverEntry = Nothing
{-# INLINE noResizeObserverEntry #-}

foreign import javascript unsafe "(() => globalThis[\"ResizeObserverEntry\"])" gTypeResizeObserverEntry :: GType

-- | Dictionary ResizeObserverOptions (resize-observer-1)
newtype ResizeObserverOptions = ResizeObserverOptions { unResizeObserverOptions :: JSVal }

instance Eq ResizeObserverOptions where
  (ResizeObserverOptions a) == (ResizeObserverOptions b) = js_eq a b

instance PToJSVal ResizeObserverOptions where
  pToJSVal = unResizeObserverOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ResizeObserverOptions where
  pFromJSVal = ResizeObserverOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ResizeObserverOptions where
  toJSVal = return . unResizeObserverOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ResizeObserverOptions where
  fromJSVal = return . fmap ResizeObserverOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ResizeObserverOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ResizeObserverOptions where
  typeGType _ = gTypeResizeObserverOptions
  {-# INLINE typeGType #-}

noResizeObserverOptions :: Maybe ResizeObserverOptions
noResizeObserverOptions = Nothing
{-# INLINE noResizeObserverOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeResizeObserverOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ResizeObserverSize" (resize-observer-1).
newtype ResizeObserverSize = ResizeObserverSize { unResizeObserverSize :: JSVal }

instance Eq ResizeObserverSize where
  (ResizeObserverSize a) == (ResizeObserverSize b) = js_eq a b

instance PToJSVal ResizeObserverSize where
  pToJSVal = unResizeObserverSize
  {-# INLINE pToJSVal #-}

instance PFromJSVal ResizeObserverSize where
  pFromJSVal = ResizeObserverSize
  {-# INLINE pFromJSVal #-}

instance ToJSVal ResizeObserverSize where
  toJSVal = return . unResizeObserverSize
  {-# INLINE toJSVal #-}

instance FromJSVal ResizeObserverSize where
  fromJSVal = return . fmap ResizeObserverSize . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ResizeObserverSize
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ResizeObserverSize where
  typeGType _ = gTypeResizeObserverSize
  {-# INLINE typeGType #-}

noResizeObserverSize :: Maybe ResizeObserverSize
noResizeObserverSize = Nothing
{-# INLINE noResizeObserverSize #-}

foreign import javascript unsafe "(() => globalThis[\"ResizeObserverSize\"])" gTypeResizeObserverSize :: GType

-- | Functions for this interface are in "GHCJS.DOM.Response" (fetch).
newtype Response = Response { unResponse :: JSVal }

instance Eq Response where
  (Response a) == (Response b) = js_eq a b

instance PToJSVal Response where
  pToJSVal = unResponse
  {-# INLINE pToJSVal #-}

instance PFromJSVal Response where
  pFromJSVal = Response
  {-# INLINE pFromJSVal #-}

instance ToJSVal Response where
  toJSVal = return . unResponse
  {-# INLINE toJSVal #-}

instance FromJSVal Response where
  fromJSVal = return . fmap Response . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Response
  {-# INLINE fromJSValUnchecked #-}

instance IsBody Response

instance IsGObject Response where
  typeGType _ = gTypeResponse
  {-# INLINE typeGType #-}

noResponse :: Maybe Response
noResponse = Nothing
{-# INLINE noResponse #-}

foreign import javascript unsafe "(() => globalThis[\"Response\"])" gTypeResponse :: GType

-- | Dictionary ResponseInit (fetch)
newtype ResponseInit = ResponseInit { unResponseInit :: JSVal }

instance Eq ResponseInit where
  (ResponseInit a) == (ResponseInit b) = js_eq a b

instance PToJSVal ResponseInit where
  pToJSVal = unResponseInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ResponseInit where
  pFromJSVal = ResponseInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ResponseInit where
  toJSVal = return . unResponseInit
  {-# INLINE toJSVal #-}

instance FromJSVal ResponseInit where
  fromJSVal = return . fmap ResponseInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ResponseInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ResponseInit where
  typeGType _ = gTypeResponseInit
  {-# INLINE typeGType #-}

noResponseInit :: Maybe ResponseInit
noResponseInit = Nothing
{-# INLINE noResponseInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeResponseInit :: GType

-- | Dictionary RouterCondition (service-workers)
newtype RouterCondition = RouterCondition { unRouterCondition :: JSVal }

instance Eq RouterCondition where
  (RouterCondition a) == (RouterCondition b) = js_eq a b

instance PToJSVal RouterCondition where
  pToJSVal = unRouterCondition
  {-# INLINE pToJSVal #-}

instance PFromJSVal RouterCondition where
  pFromJSVal = RouterCondition
  {-# INLINE pFromJSVal #-}

instance ToJSVal RouterCondition where
  toJSVal = return . unRouterCondition
  {-# INLINE toJSVal #-}

instance FromJSVal RouterCondition where
  fromJSVal = return . fmap RouterCondition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RouterCondition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RouterCondition where
  typeGType _ = gTypeRouterCondition
  {-# INLINE typeGType #-}

noRouterCondition :: Maybe RouterCondition
noRouterCondition = Nothing
{-# INLINE noRouterCondition #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRouterCondition :: GType

-- | Dictionary RouterRule (service-workers)
newtype RouterRule = RouterRule { unRouterRule :: JSVal }

instance Eq RouterRule where
  (RouterRule a) == (RouterRule b) = js_eq a b

instance PToJSVal RouterRule where
  pToJSVal = unRouterRule
  {-# INLINE pToJSVal #-}

instance PFromJSVal RouterRule where
  pFromJSVal = RouterRule
  {-# INLINE pFromJSVal #-}

instance ToJSVal RouterRule where
  toJSVal = return . unRouterRule
  {-# INLINE toJSVal #-}

instance FromJSVal RouterRule where
  fromJSVal = return . fmap RouterRule . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RouterRule
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RouterRule where
  typeGType _ = gTypeRouterRule
  {-# INLINE typeGType #-}

noRouterRule :: Maybe RouterRule
noRouterRule = Nothing
{-# INLINE noRouterRule #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRouterRule :: GType

-- | Dictionary RouterSourceDict (service-workers)
newtype RouterSourceDict = RouterSourceDict { unRouterSourceDict :: JSVal }

instance Eq RouterSourceDict where
  (RouterSourceDict a) == (RouterSourceDict b) = js_eq a b

instance PToJSVal RouterSourceDict where
  pToJSVal = unRouterSourceDict
  {-# INLINE pToJSVal #-}

instance PFromJSVal RouterSourceDict where
  pFromJSVal = RouterSourceDict
  {-# INLINE pFromJSVal #-}

instance ToJSVal RouterSourceDict where
  toJSVal = return . unRouterSourceDict
  {-# INLINE toJSVal #-}

instance FromJSVal RouterSourceDict where
  fromJSVal = return . fmap RouterSourceDict . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RouterSourceDict
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RouterSourceDict where
  typeGType _ = gTypeRouterSourceDict
  {-# INLINE typeGType #-}

noRouterSourceDict :: Maybe RouterSourceDict
noRouterSourceDict = Nothing
{-# INLINE noRouterSourceDict #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRouterSourceDict :: GType

-- | Dictionary RsaOtherPrimesInfo (webcrypto-2)
newtype RsaOtherPrimesInfo = RsaOtherPrimesInfo { unRsaOtherPrimesInfo :: JSVal }

instance Eq RsaOtherPrimesInfo where
  (RsaOtherPrimesInfo a) == (RsaOtherPrimesInfo b) = js_eq a b

instance PToJSVal RsaOtherPrimesInfo where
  pToJSVal = unRsaOtherPrimesInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal RsaOtherPrimesInfo where
  pFromJSVal = RsaOtherPrimesInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal RsaOtherPrimesInfo where
  toJSVal = return . unRsaOtherPrimesInfo
  {-# INLINE toJSVal #-}

instance FromJSVal RsaOtherPrimesInfo where
  fromJSVal = return . fmap RsaOtherPrimesInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . RsaOtherPrimesInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject RsaOtherPrimesInfo where
  typeGType _ = gTypeRsaOtherPrimesInfo
  {-# INLINE typeGType #-}

noRsaOtherPrimesInfo :: Maybe RsaOtherPrimesInfo
noRsaOtherPrimesInfo = Nothing
{-# INLINE noRsaOtherPrimesInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeRsaOtherPrimesInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAElement" (SVG2).
newtype SVGAElement = SVGAElement { unSVGAElement :: JSVal }

instance Eq SVGAElement where
  (SVGAElement a) == (SVGAElement b) = js_eq a b

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 = return . fmap SVGAElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAElement
  {-# INLINE fromJSValUnchecked #-}

instance IsHyperlinkElementUtils SVGAElement
instance IsSVGURIReference SVGAElement
instance IsSVGGraphicsElement SVGAElement
instance IsSVGTests SVGAElement
instance IsSVGElement SVGAElement
instance IsElementCSSInlineStyle SVGAElement
instance IsGlobalEventHandlers SVGAElement
instance IsHTMLOrSVGOrMathMLElement SVGAElement
instance IsElement SVGAElement
instance IsARIAMixin SVGAElement
instance IsARIANotifyMixin SVGAElement
instance IsAnimatable SVGAElement
instance IsChildNode SVGAElement
instance IsNonDocumentTypeChildNode SVGAElement
instance IsParentNode SVGAElement
instance IsSlottable SVGAElement
instance IsNode SVGAElement
instance IsEventTarget SVGAElement

instance IsGObject SVGAElement where
  typeGType _ = gTypeSVGAElement
  {-# INLINE typeGType #-}

noSVGAElement :: Maybe SVGAElement
noSVGAElement = Nothing
{-# INLINE noSVGAElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAElement\"])" gTypeSVGAElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAngle" (SVG2).
newtype SVGAngle = SVGAngle { unSVGAngle :: JSVal }

instance Eq SVGAngle where
  (SVGAngle a) == (SVGAngle b) = js_eq a b

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 = return . fmap SVGAngle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAngle
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAngle where
  typeGType _ = gTypeSVGAngle
  {-# INLINE typeGType #-}

noSVGAngle :: Maybe SVGAngle
noSVGAngle = Nothing
{-# INLINE noSVGAngle #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAngle\"])" gTypeSVGAngle :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimateElement" (svg-animations).
newtype SVGAnimateElement = SVGAnimateElement { unSVGAnimateElement :: JSVal }

instance Eq SVGAnimateElement where
  (SVGAnimateElement a) == (SVGAnimateElement b) = js_eq a b

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 = return . fmap SVGAnimateElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimateElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGAnimationElement SVGAnimateElement
instance IsSVGTests SVGAnimateElement
instance IsSVGElement SVGAnimateElement
instance IsElementCSSInlineStyle SVGAnimateElement
instance IsGlobalEventHandlers SVGAnimateElement
instance IsHTMLOrSVGOrMathMLElement SVGAnimateElement
instance IsElement SVGAnimateElement
instance IsARIAMixin SVGAnimateElement
instance IsARIANotifyMixin SVGAnimateElement
instance IsAnimatable SVGAnimateElement
instance IsChildNode SVGAnimateElement
instance IsNonDocumentTypeChildNode SVGAnimateElement
instance IsParentNode SVGAnimateElement
instance IsSlottable SVGAnimateElement
instance IsNode SVGAnimateElement
instance IsEventTarget SVGAnimateElement

instance IsGObject SVGAnimateElement where
  typeGType _ = gTypeSVGAnimateElement
  {-# INLINE typeGType #-}

noSVGAnimateElement :: Maybe SVGAnimateElement
noSVGAnimateElement = Nothing
{-# INLINE noSVGAnimateElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimateElement\"])" gTypeSVGAnimateElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimateMotionElement" (svg-animations).
newtype SVGAnimateMotionElement = SVGAnimateMotionElement { unSVGAnimateMotionElement :: JSVal }

instance Eq SVGAnimateMotionElement where
  (SVGAnimateMotionElement a) == (SVGAnimateMotionElement b) = js_eq a b

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 = return . fmap SVGAnimateMotionElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimateMotionElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGAnimationElement SVGAnimateMotionElement
instance IsSVGTests SVGAnimateMotionElement
instance IsSVGElement SVGAnimateMotionElement
instance IsElementCSSInlineStyle SVGAnimateMotionElement
instance IsGlobalEventHandlers SVGAnimateMotionElement
instance IsHTMLOrSVGOrMathMLElement SVGAnimateMotionElement
instance IsElement SVGAnimateMotionElement
instance IsARIAMixin SVGAnimateMotionElement
instance IsARIANotifyMixin SVGAnimateMotionElement
instance IsAnimatable SVGAnimateMotionElement
instance IsChildNode SVGAnimateMotionElement
instance IsNonDocumentTypeChildNode SVGAnimateMotionElement
instance IsParentNode SVGAnimateMotionElement
instance IsSlottable SVGAnimateMotionElement
instance IsNode SVGAnimateMotionElement
instance IsEventTarget SVGAnimateMotionElement

instance IsGObject SVGAnimateMotionElement where
  typeGType _ = gTypeSVGAnimateMotionElement
  {-# INLINE typeGType #-}

noSVGAnimateMotionElement :: Maybe SVGAnimateMotionElement
noSVGAnimateMotionElement = Nothing
{-# INLINE noSVGAnimateMotionElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimateMotionElement\"])" gTypeSVGAnimateMotionElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimateTransformElement" (svg-animations).
newtype SVGAnimateTransformElement = SVGAnimateTransformElement { unSVGAnimateTransformElement :: JSVal }

instance Eq SVGAnimateTransformElement where
  (SVGAnimateTransformElement a) == (SVGAnimateTransformElement b) = js_eq a b

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 = return . fmap SVGAnimateTransformElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimateTransformElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGAnimationElement SVGAnimateTransformElement
instance IsSVGTests SVGAnimateTransformElement
instance IsSVGElement SVGAnimateTransformElement
instance IsElementCSSInlineStyle SVGAnimateTransformElement
instance IsGlobalEventHandlers SVGAnimateTransformElement
instance IsHTMLOrSVGOrMathMLElement SVGAnimateTransformElement
instance IsElement SVGAnimateTransformElement
instance IsARIAMixin SVGAnimateTransformElement
instance IsARIANotifyMixin SVGAnimateTransformElement
instance IsAnimatable SVGAnimateTransformElement
instance IsChildNode SVGAnimateTransformElement
instance IsNonDocumentTypeChildNode SVGAnimateTransformElement
instance IsParentNode SVGAnimateTransformElement
instance IsSlottable SVGAnimateTransformElement
instance IsNode SVGAnimateTransformElement
instance IsEventTarget SVGAnimateTransformElement

instance IsGObject SVGAnimateTransformElement where
  typeGType _ = gTypeSVGAnimateTransformElement
  {-# INLINE typeGType #-}

noSVGAnimateTransformElement :: Maybe SVGAnimateTransformElement
noSVGAnimateTransformElement = Nothing
{-# INLINE noSVGAnimateTransformElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimateTransformElement\"])" gTypeSVGAnimateTransformElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedAngle" (SVG2).
newtype SVGAnimatedAngle = SVGAnimatedAngle { unSVGAnimatedAngle :: JSVal }

instance Eq SVGAnimatedAngle where
  (SVGAnimatedAngle a) == (SVGAnimatedAngle b) = js_eq a b

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 = return . fmap SVGAnimatedAngle . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedAngle
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedAngle where
  typeGType _ = gTypeSVGAnimatedAngle
  {-# INLINE typeGType #-}

noSVGAnimatedAngle :: Maybe SVGAnimatedAngle
noSVGAnimatedAngle = Nothing
{-# INLINE noSVGAnimatedAngle #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedAngle\"])" gTypeSVGAnimatedAngle :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedBoolean" (SVG2).
newtype SVGAnimatedBoolean = SVGAnimatedBoolean { unSVGAnimatedBoolean :: JSVal }

instance Eq SVGAnimatedBoolean where
  (SVGAnimatedBoolean a) == (SVGAnimatedBoolean b) = js_eq a b

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 = return . fmap SVGAnimatedBoolean . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedBoolean
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedBoolean where
  typeGType _ = gTypeSVGAnimatedBoolean
  {-# INLINE typeGType #-}

noSVGAnimatedBoolean :: Maybe SVGAnimatedBoolean
noSVGAnimatedBoolean = Nothing
{-# INLINE noSVGAnimatedBoolean #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedBoolean\"])" gTypeSVGAnimatedBoolean :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedEnumeration" (SVG2).
newtype SVGAnimatedEnumeration = SVGAnimatedEnumeration { unSVGAnimatedEnumeration :: JSVal }

instance Eq SVGAnimatedEnumeration where
  (SVGAnimatedEnumeration a) == (SVGAnimatedEnumeration b) = js_eq a b

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 = return . fmap SVGAnimatedEnumeration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedEnumeration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedEnumeration where
  typeGType _ = gTypeSVGAnimatedEnumeration
  {-# INLINE typeGType #-}

noSVGAnimatedEnumeration :: Maybe SVGAnimatedEnumeration
noSVGAnimatedEnumeration = Nothing
{-# INLINE noSVGAnimatedEnumeration #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedEnumeration\"])" gTypeSVGAnimatedEnumeration :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedInteger" (SVG2).
newtype SVGAnimatedInteger = SVGAnimatedInteger { unSVGAnimatedInteger :: JSVal }

instance Eq SVGAnimatedInteger where
  (SVGAnimatedInteger a) == (SVGAnimatedInteger b) = js_eq a b

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 = return . fmap SVGAnimatedInteger . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedInteger
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedInteger where
  typeGType _ = gTypeSVGAnimatedInteger
  {-# INLINE typeGType #-}

noSVGAnimatedInteger :: Maybe SVGAnimatedInteger
noSVGAnimatedInteger = Nothing
{-# INLINE noSVGAnimatedInteger #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedInteger\"])" gTypeSVGAnimatedInteger :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedLength" (SVG2).
newtype SVGAnimatedLength = SVGAnimatedLength { unSVGAnimatedLength :: JSVal }

instance Eq SVGAnimatedLength where
  (SVGAnimatedLength a) == (SVGAnimatedLength b) = js_eq a b

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 = return . fmap SVGAnimatedLength . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedLength
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedLength where
  typeGType _ = gTypeSVGAnimatedLength
  {-# INLINE typeGType #-}

noSVGAnimatedLength :: Maybe SVGAnimatedLength
noSVGAnimatedLength = Nothing
{-# INLINE noSVGAnimatedLength #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedLength\"])" gTypeSVGAnimatedLength :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedLengthList" (SVG2).
newtype SVGAnimatedLengthList = SVGAnimatedLengthList { unSVGAnimatedLengthList :: JSVal }

instance Eq SVGAnimatedLengthList where
  (SVGAnimatedLengthList a) == (SVGAnimatedLengthList b) = js_eq a b

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 = return . fmap SVGAnimatedLengthList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedLengthList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedLengthList where
  typeGType _ = gTypeSVGAnimatedLengthList
  {-# INLINE typeGType #-}

noSVGAnimatedLengthList :: Maybe SVGAnimatedLengthList
noSVGAnimatedLengthList = Nothing
{-# INLINE noSVGAnimatedLengthList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedLengthList\"])" gTypeSVGAnimatedLengthList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedNumber" (SVG2).
newtype SVGAnimatedNumber = SVGAnimatedNumber { unSVGAnimatedNumber :: JSVal }

instance Eq SVGAnimatedNumber where
  (SVGAnimatedNumber a) == (SVGAnimatedNumber b) = js_eq a b

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 = return . fmap SVGAnimatedNumber . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedNumber
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedNumber where
  typeGType _ = gTypeSVGAnimatedNumber
  {-# INLINE typeGType #-}

noSVGAnimatedNumber :: Maybe SVGAnimatedNumber
noSVGAnimatedNumber = Nothing
{-# INLINE noSVGAnimatedNumber #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedNumber\"])" gTypeSVGAnimatedNumber :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedNumberList" (SVG2).
newtype SVGAnimatedNumberList = SVGAnimatedNumberList { unSVGAnimatedNumberList :: JSVal }

instance Eq SVGAnimatedNumberList where
  (SVGAnimatedNumberList a) == (SVGAnimatedNumberList b) = js_eq a b

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 = return . fmap SVGAnimatedNumberList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedNumberList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedNumberList where
  typeGType _ = gTypeSVGAnimatedNumberList
  {-# INLINE typeGType #-}

noSVGAnimatedNumberList :: Maybe SVGAnimatedNumberList
noSVGAnimatedNumberList = Nothing
{-# INLINE noSVGAnimatedNumberList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedNumberList\"])" gTypeSVGAnimatedNumberList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedPoints" (SVG2).
newtype SVGAnimatedPoints = SVGAnimatedPoints { unSVGAnimatedPoints :: JSVal }

instance Eq SVGAnimatedPoints where
  (SVGAnimatedPoints a) == (SVGAnimatedPoints b) = js_eq a b

instance PToJSVal SVGAnimatedPoints where
  pToJSVal = unSVGAnimatedPoints
  {-# INLINE pToJSVal #-}

instance PFromJSVal SVGAnimatedPoints where
  pFromJSVal = SVGAnimatedPoints
  {-# INLINE pFromJSVal #-}

instance ToJSVal SVGAnimatedPoints where
  toJSVal = return . unSVGAnimatedPoints
  {-# INLINE toJSVal #-}

instance FromJSVal SVGAnimatedPoints where
  fromJSVal = return . fmap SVGAnimatedPoints . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedPoints
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSVGAnimatedPoints o
toSVGAnimatedPoints :: IsSVGAnimatedPoints o => o -> SVGAnimatedPoints
toSVGAnimatedPoints = SVGAnimatedPoints . coerce

instance IsSVGAnimatedPoints SVGAnimatedPoints

instance IsGObject SVGAnimatedPoints where
  typeGType _ = gTypeSVGAnimatedPoints
  {-# INLINE typeGType #-}

noSVGAnimatedPoints :: Maybe SVGAnimatedPoints
noSVGAnimatedPoints = Nothing
{-# INLINE noSVGAnimatedPoints #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSVGAnimatedPoints :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedPreserveAspectRatio" (SVG2).
newtype SVGAnimatedPreserveAspectRatio = SVGAnimatedPreserveAspectRatio { unSVGAnimatedPreserveAspectRatio :: JSVal }

instance Eq SVGAnimatedPreserveAspectRatio where
  (SVGAnimatedPreserveAspectRatio a) == (SVGAnimatedPreserveAspectRatio b) = js_eq a b

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 = return . fmap SVGAnimatedPreserveAspectRatio . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedPreserveAspectRatio
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedPreserveAspectRatio where
  typeGType _ = gTypeSVGAnimatedPreserveAspectRatio
  {-# INLINE typeGType #-}

noSVGAnimatedPreserveAspectRatio :: Maybe SVGAnimatedPreserveAspectRatio
noSVGAnimatedPreserveAspectRatio = Nothing
{-# INLINE noSVGAnimatedPreserveAspectRatio #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedPreserveAspectRatio\"])" gTypeSVGAnimatedPreserveAspectRatio :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedRect" (SVG2).
newtype SVGAnimatedRect = SVGAnimatedRect { unSVGAnimatedRect :: JSVal }

instance Eq SVGAnimatedRect where
  (SVGAnimatedRect a) == (SVGAnimatedRect b) = js_eq a b

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 = return . fmap SVGAnimatedRect . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedRect
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedRect where
  typeGType _ = gTypeSVGAnimatedRect
  {-# INLINE typeGType #-}

noSVGAnimatedRect :: Maybe SVGAnimatedRect
noSVGAnimatedRect = Nothing
{-# INLINE noSVGAnimatedRect #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedRect\"])" gTypeSVGAnimatedRect :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedString" (SVG2).
newtype SVGAnimatedString = SVGAnimatedString { unSVGAnimatedString :: JSVal }

instance Eq SVGAnimatedString where
  (SVGAnimatedString a) == (SVGAnimatedString b) = js_eq a b

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 = return . fmap SVGAnimatedString . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedString
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedString where
  typeGType _ = gTypeSVGAnimatedString
  {-# INLINE typeGType #-}

noSVGAnimatedString :: Maybe SVGAnimatedString
noSVGAnimatedString = Nothing
{-# INLINE noSVGAnimatedString #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedString\"])" gTypeSVGAnimatedString :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimatedTransformList" (SVG2).
newtype SVGAnimatedTransformList = SVGAnimatedTransformList { unSVGAnimatedTransformList :: JSVal }

instance Eq SVGAnimatedTransformList where
  (SVGAnimatedTransformList a) == (SVGAnimatedTransformList b) = js_eq a b

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 = return . fmap SVGAnimatedTransformList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimatedTransformList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGAnimatedTransformList where
  typeGType _ = gTypeSVGAnimatedTransformList
  {-# INLINE typeGType #-}

noSVGAnimatedTransformList :: Maybe SVGAnimatedTransformList
noSVGAnimatedTransformList = Nothing
{-# INLINE noSVGAnimatedTransformList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimatedTransformList\"])" gTypeSVGAnimatedTransformList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGAnimationElement" (svg-animations).
newtype SVGAnimationElement = SVGAnimationElement { unSVGAnimationElement :: JSVal }

instance Eq SVGAnimationElement where
  (SVGAnimationElement a) == (SVGAnimationElement b) = js_eq a b

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 = return . fmap SVGAnimationElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGAnimationElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGElement o, IsSVGTests o, IsGObject o) => IsSVGAnimationElement o
toSVGAnimationElement :: IsSVGAnimationElement o => o -> SVGAnimationElement
toSVGAnimationElement = SVGAnimationElement . coerce

instance IsSVGAnimationElement SVGAnimationElement
instance IsSVGTests SVGAnimationElement
instance IsSVGElement SVGAnimationElement
instance IsElementCSSInlineStyle SVGAnimationElement
instance IsGlobalEventHandlers SVGAnimationElement
instance IsHTMLOrSVGOrMathMLElement SVGAnimationElement
instance IsElement SVGAnimationElement
instance IsARIAMixin SVGAnimationElement
instance IsARIANotifyMixin SVGAnimationElement
instance IsAnimatable SVGAnimationElement
instance IsChildNode SVGAnimationElement
instance IsNonDocumentTypeChildNode SVGAnimationElement
instance IsParentNode SVGAnimationElement
instance IsSlottable SVGAnimationElement
instance IsNode SVGAnimationElement
instance IsEventTarget SVGAnimationElement

instance IsGObject SVGAnimationElement where
  typeGType _ = gTypeSVGAnimationElement
  {-# INLINE typeGType #-}

noSVGAnimationElement :: Maybe SVGAnimationElement
noSVGAnimationElement = Nothing
{-# INLINE noSVGAnimationElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGAnimationElement\"])" gTypeSVGAnimationElement :: GType

-- | Dictionary SVGBoundingBoxOptions (SVG2)
newtype SVGBoundingBoxOptions = SVGBoundingBoxOptions { unSVGBoundingBoxOptions :: JSVal }

instance Eq SVGBoundingBoxOptions where
  (SVGBoundingBoxOptions a) == (SVGBoundingBoxOptions b) = js_eq a b

instance PToJSVal SVGBoundingBoxOptions where
  pToJSVal = unSVGBoundingBoxOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SVGBoundingBoxOptions where
  pFromJSVal = SVGBoundingBoxOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SVGBoundingBoxOptions where
  toJSVal = return . unSVGBoundingBoxOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SVGBoundingBoxOptions where
  fromJSVal = return . fmap SVGBoundingBoxOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGBoundingBoxOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGBoundingBoxOptions where
  typeGType _ = gTypeSVGBoundingBoxOptions
  {-# INLINE typeGType #-}

noSVGBoundingBoxOptions :: Maybe SVGBoundingBoxOptions
noSVGBoundingBoxOptions = Nothing
{-# INLINE noSVGBoundingBoxOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSVGBoundingBoxOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGCircleElement" (SVG2).
newtype SVGCircleElement = SVGCircleElement { unSVGCircleElement :: JSVal }

instance Eq SVGCircleElement where
  (SVGCircleElement a) == (SVGCircleElement b) = js_eq a b

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 = return . fmap SVGCircleElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGCircleElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGeometryElement SVGCircleElement
instance IsSVGGraphicsElement SVGCircleElement
instance IsSVGTests SVGCircleElement
instance IsSVGElement SVGCircleElement
instance IsElementCSSInlineStyle SVGCircleElement
instance IsGlobalEventHandlers SVGCircleElement
instance IsHTMLOrSVGOrMathMLElement SVGCircleElement
instance IsElement SVGCircleElement
instance IsARIAMixin SVGCircleElement
instance IsARIANotifyMixin SVGCircleElement
instance IsAnimatable SVGCircleElement
instance IsChildNode SVGCircleElement
instance IsNonDocumentTypeChildNode SVGCircleElement
instance IsParentNode SVGCircleElement
instance IsSlottable SVGCircleElement
instance IsNode SVGCircleElement
instance IsEventTarget SVGCircleElement

instance IsGObject SVGCircleElement where
  typeGType _ = gTypeSVGCircleElement
  {-# INLINE typeGType #-}

noSVGCircleElement :: Maybe SVGCircleElement
noSVGCircleElement = Nothing
{-# INLINE noSVGCircleElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGCircleElement\"])" gTypeSVGCircleElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGClipPathElement" (css-masking-1).
newtype SVGClipPathElement = SVGClipPathElement { unSVGClipPathElement :: JSVal }

instance Eq SVGClipPathElement where
  (SVGClipPathElement a) == (SVGClipPathElement b) = js_eq a b

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 = return . fmap SVGClipPathElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGClipPathElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGClipPathElement
instance IsElementCSSInlineStyle SVGClipPathElement
instance IsGlobalEventHandlers SVGClipPathElement
instance IsHTMLOrSVGOrMathMLElement SVGClipPathElement
instance IsElement SVGClipPathElement
instance IsARIAMixin SVGClipPathElement
instance IsARIANotifyMixin SVGClipPathElement
instance IsAnimatable SVGClipPathElement
instance IsChildNode SVGClipPathElement
instance IsNonDocumentTypeChildNode SVGClipPathElement
instance IsParentNode SVGClipPathElement
instance IsSlottable SVGClipPathElement
instance IsNode SVGClipPathElement
instance IsEventTarget SVGClipPathElement

instance IsGObject SVGClipPathElement where
  typeGType _ = gTypeSVGClipPathElement
  {-# INLINE typeGType #-}

noSVGClipPathElement :: Maybe SVGClipPathElement
noSVGClipPathElement = Nothing
{-# INLINE noSVGClipPathElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGClipPathElement\"])" gTypeSVGClipPathElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGComponentTransferFunctionElement" (filter-effects-1).
newtype SVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement { unSVGComponentTransferFunctionElement :: JSVal }

instance Eq SVGComponentTransferFunctionElement where
  (SVGComponentTransferFunctionElement a) == (SVGComponentTransferFunctionElement b) = js_eq a b

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 = return . fmap SVGComponentTransferFunctionElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGComponentTransferFunctionElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGElement o, IsGObject o) => IsSVGComponentTransferFunctionElement o
toSVGComponentTransferFunctionElement :: IsSVGComponentTransferFunctionElement o => o -> SVGComponentTransferFunctionElement
toSVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement . coerce

instance IsSVGComponentTransferFunctionElement SVGComponentTransferFunctionElement
instance IsSVGElement SVGComponentTransferFunctionElement
instance IsElementCSSInlineStyle SVGComponentTransferFunctionElement
instance IsGlobalEventHandlers SVGComponentTransferFunctionElement
instance IsHTMLOrSVGOrMathMLElement SVGComponentTransferFunctionElement
instance IsElement SVGComponentTransferFunctionElement
instance IsARIAMixin SVGComponentTransferFunctionElement
instance IsARIANotifyMixin SVGComponentTransferFunctionElement
instance IsAnimatable SVGComponentTransferFunctionElement
instance IsChildNode SVGComponentTransferFunctionElement
instance IsNonDocumentTypeChildNode SVGComponentTransferFunctionElement
instance IsParentNode SVGComponentTransferFunctionElement
instance IsSlottable SVGComponentTransferFunctionElement
instance IsNode SVGComponentTransferFunctionElement
instance IsEventTarget SVGComponentTransferFunctionElement

instance IsGObject SVGComponentTransferFunctionElement where
  typeGType _ = gTypeSVGComponentTransferFunctionElement
  {-# INLINE typeGType #-}

noSVGComponentTransferFunctionElement :: Maybe SVGComponentTransferFunctionElement
noSVGComponentTransferFunctionElement = Nothing
{-# INLINE noSVGComponentTransferFunctionElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGComponentTransferFunctionElement\"])" gTypeSVGComponentTransferFunctionElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGDefsElement" (SVG2).
newtype SVGDefsElement = SVGDefsElement { unSVGDefsElement :: JSVal }

instance Eq SVGDefsElement where
  (SVGDefsElement a) == (SVGDefsElement b) = js_eq a b

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 = return . fmap SVGDefsElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGDefsElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGraphicsElement SVGDefsElement
instance IsSVGTests SVGDefsElement
instance IsSVGElement SVGDefsElement
instance IsElementCSSInlineStyle SVGDefsElement
instance IsGlobalEventHandlers SVGDefsElement
instance IsHTMLOrSVGOrMathMLElement SVGDefsElement
instance IsElement SVGDefsElement
instance IsARIAMixin SVGDefsElement
instance IsARIANotifyMixin SVGDefsElement
instance IsAnimatable SVGDefsElement
instance IsChildNode SVGDefsElement
instance IsNonDocumentTypeChildNode SVGDefsElement
instance IsParentNode SVGDefsElement
instance IsSlottable SVGDefsElement
instance IsNode SVGDefsElement
instance IsEventTarget SVGDefsElement

instance IsGObject SVGDefsElement where
  typeGType _ = gTypeSVGDefsElement
  {-# INLINE typeGType #-}

noSVGDefsElement :: Maybe SVGDefsElement
noSVGDefsElement = Nothing
{-# INLINE noSVGDefsElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGDefsElement\"])" gTypeSVGDefsElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGDescElement" (SVG2).
newtype SVGDescElement = SVGDescElement { unSVGDescElement :: JSVal }

instance Eq SVGDescElement where
  (SVGDescElement a) == (SVGDescElement b) = js_eq a b

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 = return . fmap SVGDescElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGDescElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGDescElement
instance IsElementCSSInlineStyle SVGDescElement
instance IsGlobalEventHandlers SVGDescElement
instance IsHTMLOrSVGOrMathMLElement SVGDescElement
instance IsElement SVGDescElement
instance IsARIAMixin SVGDescElement
instance IsARIANotifyMixin SVGDescElement
instance IsAnimatable SVGDescElement
instance IsChildNode SVGDescElement
instance IsNonDocumentTypeChildNode SVGDescElement
instance IsParentNode SVGDescElement
instance IsSlottable SVGDescElement
instance IsNode SVGDescElement
instance IsEventTarget SVGDescElement

instance IsGObject SVGDescElement where
  typeGType _ = gTypeSVGDescElement
  {-# INLINE typeGType #-}

noSVGDescElement :: Maybe SVGDescElement
noSVGDescElement = Nothing
{-# INLINE noSVGDescElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGDescElement\"])" gTypeSVGDescElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGElement" (SVG2).
newtype SVGElement = SVGElement { unSVGElement :: JSVal }

instance Eq SVGElement where
  (SVGElement a) == (SVGElement b) = js_eq a b

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 = return . fmap SVGElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGElement
  {-# INLINE fromJSValUnchecked #-}

class (IsElement o, IsElementCSSInlineStyle o, IsGlobalEventHandlers o, IsHTMLOrSVGOrMathMLElement o, IsGObject o) => IsSVGElement o
toSVGElement :: IsSVGElement o => o -> SVGElement
toSVGElement = SVGElement . coerce

instance IsSVGElement SVGElement
instance IsElementCSSInlineStyle SVGElement
instance IsGlobalEventHandlers SVGElement
instance IsHTMLOrSVGOrMathMLElement SVGElement
instance IsElement SVGElement
instance IsARIAMixin SVGElement
instance IsARIANotifyMixin SVGElement
instance IsAnimatable SVGElement
instance IsChildNode SVGElement
instance IsNonDocumentTypeChildNode SVGElement
instance IsParentNode SVGElement
instance IsSlottable SVGElement
instance IsNode SVGElement
instance IsEventTarget SVGElement

instance IsGObject SVGElement where
  typeGType _ = gTypeSVGElement
  {-# INLINE typeGType #-}

noSVGElement :: Maybe SVGElement
noSVGElement = Nothing
{-# INLINE noSVGElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGElement\"])" gTypeSVGElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGEllipseElement" (SVG2).
newtype SVGEllipseElement = SVGEllipseElement { unSVGEllipseElement :: JSVal }

instance Eq SVGEllipseElement where
  (SVGEllipseElement a) == (SVGEllipseElement b) = js_eq a b

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 = return . fmap SVGEllipseElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGEllipseElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGeometryElement SVGEllipseElement
instance IsSVGGraphicsElement SVGEllipseElement
instance IsSVGTests SVGEllipseElement
instance IsSVGElement SVGEllipseElement
instance IsElementCSSInlineStyle SVGEllipseElement
instance IsGlobalEventHandlers SVGEllipseElement
instance IsHTMLOrSVGOrMathMLElement SVGEllipseElement
instance IsElement SVGEllipseElement
instance IsARIAMixin SVGEllipseElement
instance IsARIANotifyMixin SVGEllipseElement
instance IsAnimatable SVGEllipseElement
instance IsChildNode SVGEllipseElement
instance IsNonDocumentTypeChildNode SVGEllipseElement
instance IsParentNode SVGEllipseElement
instance IsSlottable SVGEllipseElement
instance IsNode SVGEllipseElement
instance IsEventTarget SVGEllipseElement

instance IsGObject SVGEllipseElement where
  typeGType _ = gTypeSVGEllipseElement
  {-# INLINE typeGType #-}

noSVGEllipseElement :: Maybe SVGEllipseElement
noSVGEllipseElement = Nothing
{-# INLINE noSVGEllipseElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGEllipseElement\"])" gTypeSVGEllipseElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEBlendElement" (filter-effects-1).
newtype SVGFEBlendElement = SVGFEBlendElement { unSVGFEBlendElement :: JSVal }

instance Eq SVGFEBlendElement where
  (SVGFEBlendElement a) == (SVGFEBlendElement b) = js_eq a b

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 = return . fmap SVGFEBlendElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEBlendElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEBlendElement
instance IsSVGElement SVGFEBlendElement
instance IsElementCSSInlineStyle SVGFEBlendElement
instance IsGlobalEventHandlers SVGFEBlendElement
instance IsHTMLOrSVGOrMathMLElement SVGFEBlendElement
instance IsElement SVGFEBlendElement
instance IsARIAMixin SVGFEBlendElement
instance IsARIANotifyMixin SVGFEBlendElement
instance IsAnimatable SVGFEBlendElement
instance IsChildNode SVGFEBlendElement
instance IsNonDocumentTypeChildNode SVGFEBlendElement
instance IsParentNode SVGFEBlendElement
instance IsSlottable SVGFEBlendElement
instance IsNode SVGFEBlendElement
instance IsEventTarget SVGFEBlendElement

instance IsGObject SVGFEBlendElement where
  typeGType _ = gTypeSVGFEBlendElement
  {-# INLINE typeGType #-}

noSVGFEBlendElement :: Maybe SVGFEBlendElement
noSVGFEBlendElement = Nothing
{-# INLINE noSVGFEBlendElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEBlendElement\"])" gTypeSVGFEBlendElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEColorMatrixElement" (filter-effects-1).
newtype SVGFEColorMatrixElement = SVGFEColorMatrixElement { unSVGFEColorMatrixElement :: JSVal }

instance Eq SVGFEColorMatrixElement where
  (SVGFEColorMatrixElement a) == (SVGFEColorMatrixElement b) = js_eq a b

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 = return . fmap SVGFEColorMatrixElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEColorMatrixElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEColorMatrixElement
instance IsSVGElement SVGFEColorMatrixElement
instance IsElementCSSInlineStyle SVGFEColorMatrixElement
instance IsGlobalEventHandlers SVGFEColorMatrixElement
instance IsHTMLOrSVGOrMathMLElement SVGFEColorMatrixElement
instance IsElement SVGFEColorMatrixElement
instance IsARIAMixin SVGFEColorMatrixElement
instance IsARIANotifyMixin SVGFEColorMatrixElement
instance IsAnimatable SVGFEColorMatrixElement
instance IsChildNode SVGFEColorMatrixElement
instance IsNonDocumentTypeChildNode SVGFEColorMatrixElement
instance IsParentNode SVGFEColorMatrixElement
instance IsSlottable SVGFEColorMatrixElement
instance IsNode SVGFEColorMatrixElement
instance IsEventTarget SVGFEColorMatrixElement

instance IsGObject SVGFEColorMatrixElement where
  typeGType _ = gTypeSVGFEColorMatrixElement
  {-# INLINE typeGType #-}

noSVGFEColorMatrixElement :: Maybe SVGFEColorMatrixElement
noSVGFEColorMatrixElement = Nothing
{-# INLINE noSVGFEColorMatrixElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEColorMatrixElement\"])" gTypeSVGFEColorMatrixElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEComponentTransferElement" (filter-effects-1).
newtype SVGFEComponentTransferElement = SVGFEComponentTransferElement { unSVGFEComponentTransferElement :: JSVal }

instance Eq SVGFEComponentTransferElement where
  (SVGFEComponentTransferElement a) == (SVGFEComponentTransferElement b) = js_eq a b

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 = return . fmap SVGFEComponentTransferElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEComponentTransferElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEComponentTransferElement
instance IsSVGElement SVGFEComponentTransferElement
instance IsElementCSSInlineStyle SVGFEComponentTransferElement
instance IsGlobalEventHandlers SVGFEComponentTransferElement
instance IsHTMLOrSVGOrMathMLElement SVGFEComponentTransferElement
instance IsElement SVGFEComponentTransferElement
instance IsARIAMixin SVGFEComponentTransferElement
instance IsARIANotifyMixin SVGFEComponentTransferElement
instance IsAnimatable SVGFEComponentTransferElement
instance IsChildNode SVGFEComponentTransferElement
instance IsNonDocumentTypeChildNode SVGFEComponentTransferElement
instance IsParentNode SVGFEComponentTransferElement
instance IsSlottable SVGFEComponentTransferElement
instance IsNode SVGFEComponentTransferElement
instance IsEventTarget SVGFEComponentTransferElement

instance IsGObject SVGFEComponentTransferElement where
  typeGType _ = gTypeSVGFEComponentTransferElement
  {-# INLINE typeGType #-}

noSVGFEComponentTransferElement :: Maybe SVGFEComponentTransferElement
noSVGFEComponentTransferElement = Nothing
{-# INLINE noSVGFEComponentTransferElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEComponentTransferElement\"])" gTypeSVGFEComponentTransferElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFECompositeElement" (filter-effects-1).
newtype SVGFECompositeElement = SVGFECompositeElement { unSVGFECompositeElement :: JSVal }

instance Eq SVGFECompositeElement where
  (SVGFECompositeElement a) == (SVGFECompositeElement b) = js_eq a b

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 = return . fmap SVGFECompositeElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFECompositeElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFECompositeElement
instance IsSVGElement SVGFECompositeElement
instance IsElementCSSInlineStyle SVGFECompositeElement
instance IsGlobalEventHandlers SVGFECompositeElement
instance IsHTMLOrSVGOrMathMLElement SVGFECompositeElement
instance IsElement SVGFECompositeElement
instance IsARIAMixin SVGFECompositeElement
instance IsARIANotifyMixin SVGFECompositeElement
instance IsAnimatable SVGFECompositeElement
instance IsChildNode SVGFECompositeElement
instance IsNonDocumentTypeChildNode SVGFECompositeElement
instance IsParentNode SVGFECompositeElement
instance IsSlottable SVGFECompositeElement
instance IsNode SVGFECompositeElement
instance IsEventTarget SVGFECompositeElement

instance IsGObject SVGFECompositeElement where
  typeGType _ = gTypeSVGFECompositeElement
  {-# INLINE typeGType #-}

noSVGFECompositeElement :: Maybe SVGFECompositeElement
noSVGFECompositeElement = Nothing
{-# INLINE noSVGFECompositeElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFECompositeElement\"])" gTypeSVGFECompositeElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEConvolveMatrixElement" (filter-effects-1).
newtype SVGFEConvolveMatrixElement = SVGFEConvolveMatrixElement { unSVGFEConvolveMatrixElement :: JSVal }

instance Eq SVGFEConvolveMatrixElement where
  (SVGFEConvolveMatrixElement a) == (SVGFEConvolveMatrixElement b) = js_eq a b

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 = return . fmap SVGFEConvolveMatrixElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEConvolveMatrixElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEConvolveMatrixElement
instance IsSVGElement SVGFEConvolveMatrixElement
instance IsElementCSSInlineStyle SVGFEConvolveMatrixElement
instance IsGlobalEventHandlers SVGFEConvolveMatrixElement
instance IsHTMLOrSVGOrMathMLElement SVGFEConvolveMatrixElement
instance IsElement SVGFEConvolveMatrixElement
instance IsARIAMixin SVGFEConvolveMatrixElement
instance IsARIANotifyMixin SVGFEConvolveMatrixElement
instance IsAnimatable SVGFEConvolveMatrixElement
instance IsChildNode SVGFEConvolveMatrixElement
instance IsNonDocumentTypeChildNode SVGFEConvolveMatrixElement
instance IsParentNode SVGFEConvolveMatrixElement
instance IsSlottable SVGFEConvolveMatrixElement
instance IsNode SVGFEConvolveMatrixElement
instance IsEventTarget SVGFEConvolveMatrixElement

instance IsGObject SVGFEConvolveMatrixElement where
  typeGType _ = gTypeSVGFEConvolveMatrixElement
  {-# INLINE typeGType #-}

noSVGFEConvolveMatrixElement :: Maybe SVGFEConvolveMatrixElement
noSVGFEConvolveMatrixElement = Nothing
{-# INLINE noSVGFEConvolveMatrixElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEConvolveMatrixElement\"])" gTypeSVGFEConvolveMatrixElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEDiffuseLightingElement" (filter-effects-1).
newtype SVGFEDiffuseLightingElement = SVGFEDiffuseLightingElement { unSVGFEDiffuseLightingElement :: JSVal }

instance Eq SVGFEDiffuseLightingElement where
  (SVGFEDiffuseLightingElement a) == (SVGFEDiffuseLightingElement b) = js_eq a b

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 = return . fmap SVGFEDiffuseLightingElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEDiffuseLightingElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEDiffuseLightingElement
instance IsSVGElement SVGFEDiffuseLightingElement
instance IsElementCSSInlineStyle SVGFEDiffuseLightingElement
instance IsGlobalEventHandlers SVGFEDiffuseLightingElement
instance IsHTMLOrSVGOrMathMLElement SVGFEDiffuseLightingElement
instance IsElement SVGFEDiffuseLightingElement
instance IsARIAMixin SVGFEDiffuseLightingElement
instance IsARIANotifyMixin SVGFEDiffuseLightingElement
instance IsAnimatable SVGFEDiffuseLightingElement
instance IsChildNode SVGFEDiffuseLightingElement
instance IsNonDocumentTypeChildNode SVGFEDiffuseLightingElement
instance IsParentNode SVGFEDiffuseLightingElement
instance IsSlottable SVGFEDiffuseLightingElement
instance IsNode SVGFEDiffuseLightingElement
instance IsEventTarget SVGFEDiffuseLightingElement

instance IsGObject SVGFEDiffuseLightingElement where
  typeGType _ = gTypeSVGFEDiffuseLightingElement
  {-# INLINE typeGType #-}

noSVGFEDiffuseLightingElement :: Maybe SVGFEDiffuseLightingElement
noSVGFEDiffuseLightingElement = Nothing
{-# INLINE noSVGFEDiffuseLightingElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEDiffuseLightingElement\"])" gTypeSVGFEDiffuseLightingElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEDisplacementMapElement" (filter-effects-1).
newtype SVGFEDisplacementMapElement = SVGFEDisplacementMapElement { unSVGFEDisplacementMapElement :: JSVal }

instance Eq SVGFEDisplacementMapElement where
  (SVGFEDisplacementMapElement a) == (SVGFEDisplacementMapElement b) = js_eq a b

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 = return . fmap SVGFEDisplacementMapElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEDisplacementMapElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEDisplacementMapElement
instance IsSVGElement SVGFEDisplacementMapElement
instance IsElementCSSInlineStyle SVGFEDisplacementMapElement
instance IsGlobalEventHandlers SVGFEDisplacementMapElement
instance IsHTMLOrSVGOrMathMLElement SVGFEDisplacementMapElement
instance IsElement SVGFEDisplacementMapElement
instance IsARIAMixin SVGFEDisplacementMapElement
instance IsARIANotifyMixin SVGFEDisplacementMapElement
instance IsAnimatable SVGFEDisplacementMapElement
instance IsChildNode SVGFEDisplacementMapElement
instance IsNonDocumentTypeChildNode SVGFEDisplacementMapElement
instance IsParentNode SVGFEDisplacementMapElement
instance IsSlottable SVGFEDisplacementMapElement
instance IsNode SVGFEDisplacementMapElement
instance IsEventTarget SVGFEDisplacementMapElement

instance IsGObject SVGFEDisplacementMapElement where
  typeGType _ = gTypeSVGFEDisplacementMapElement
  {-# INLINE typeGType #-}

noSVGFEDisplacementMapElement :: Maybe SVGFEDisplacementMapElement
noSVGFEDisplacementMapElement = Nothing
{-# INLINE noSVGFEDisplacementMapElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEDisplacementMapElement\"])" gTypeSVGFEDisplacementMapElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEDistantLightElement" (filter-effects-1).
newtype SVGFEDistantLightElement = SVGFEDistantLightElement { unSVGFEDistantLightElement :: JSVal }

instance Eq SVGFEDistantLightElement where
  (SVGFEDistantLightElement a) == (SVGFEDistantLightElement b) = js_eq a b

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 = return . fmap SVGFEDistantLightElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEDistantLightElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGFEDistantLightElement
instance IsElementCSSInlineStyle SVGFEDistantLightElement
instance IsGlobalEventHandlers SVGFEDistantLightElement
instance IsHTMLOrSVGOrMathMLElement SVGFEDistantLightElement
instance IsElement SVGFEDistantLightElement
instance IsARIAMixin SVGFEDistantLightElement
instance IsARIANotifyMixin SVGFEDistantLightElement
instance IsAnimatable SVGFEDistantLightElement
instance IsChildNode SVGFEDistantLightElement
instance IsNonDocumentTypeChildNode SVGFEDistantLightElement
instance IsParentNode SVGFEDistantLightElement
instance IsSlottable SVGFEDistantLightElement
instance IsNode SVGFEDistantLightElement
instance IsEventTarget SVGFEDistantLightElement

instance IsGObject SVGFEDistantLightElement where
  typeGType _ = gTypeSVGFEDistantLightElement
  {-# INLINE typeGType #-}

noSVGFEDistantLightElement :: Maybe SVGFEDistantLightElement
noSVGFEDistantLightElement = Nothing
{-# INLINE noSVGFEDistantLightElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEDistantLightElement\"])" gTypeSVGFEDistantLightElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEDropShadowElement" (filter-effects-1).
newtype SVGFEDropShadowElement = SVGFEDropShadowElement { unSVGFEDropShadowElement :: JSVal }

instance Eq SVGFEDropShadowElement where
  (SVGFEDropShadowElement a) == (SVGFEDropShadowElement b) = js_eq a b

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 = return . fmap SVGFEDropShadowElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEDropShadowElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEDropShadowElement
instance IsSVGElement SVGFEDropShadowElement
instance IsElementCSSInlineStyle SVGFEDropShadowElement
instance IsGlobalEventHandlers SVGFEDropShadowElement
instance IsHTMLOrSVGOrMathMLElement SVGFEDropShadowElement
instance IsElement SVGFEDropShadowElement
instance IsARIAMixin SVGFEDropShadowElement
instance IsARIANotifyMixin SVGFEDropShadowElement
instance IsAnimatable SVGFEDropShadowElement
instance IsChildNode SVGFEDropShadowElement
instance IsNonDocumentTypeChildNode SVGFEDropShadowElement
instance IsParentNode SVGFEDropShadowElement
instance IsSlottable SVGFEDropShadowElement
instance IsNode SVGFEDropShadowElement
instance IsEventTarget SVGFEDropShadowElement

instance IsGObject SVGFEDropShadowElement where
  typeGType _ = gTypeSVGFEDropShadowElement
  {-# INLINE typeGType #-}

noSVGFEDropShadowElement :: Maybe SVGFEDropShadowElement
noSVGFEDropShadowElement = Nothing
{-# INLINE noSVGFEDropShadowElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEDropShadowElement\"])" gTypeSVGFEDropShadowElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEFloodElement" (filter-effects-1).
newtype SVGFEFloodElement = SVGFEFloodElement { unSVGFEFloodElement :: JSVal }

instance Eq SVGFEFloodElement where
  (SVGFEFloodElement a) == (SVGFEFloodElement b) = js_eq a b

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 = return . fmap SVGFEFloodElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEFloodElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEFloodElement
instance IsSVGElement SVGFEFloodElement
instance IsElementCSSInlineStyle SVGFEFloodElement
instance IsGlobalEventHandlers SVGFEFloodElement
instance IsHTMLOrSVGOrMathMLElement SVGFEFloodElement
instance IsElement SVGFEFloodElement
instance IsARIAMixin SVGFEFloodElement
instance IsARIANotifyMixin SVGFEFloodElement
instance IsAnimatable SVGFEFloodElement
instance IsChildNode SVGFEFloodElement
instance IsNonDocumentTypeChildNode SVGFEFloodElement
instance IsParentNode SVGFEFloodElement
instance IsSlottable SVGFEFloodElement
instance IsNode SVGFEFloodElement
instance IsEventTarget SVGFEFloodElement

instance IsGObject SVGFEFloodElement where
  typeGType _ = gTypeSVGFEFloodElement
  {-# INLINE typeGType #-}

noSVGFEFloodElement :: Maybe SVGFEFloodElement
noSVGFEFloodElement = Nothing
{-# INLINE noSVGFEFloodElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEFloodElement\"])" gTypeSVGFEFloodElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEFuncAElement" (filter-effects-1).
newtype SVGFEFuncAElement = SVGFEFuncAElement { unSVGFEFuncAElement :: JSVal }

instance Eq SVGFEFuncAElement where
  (SVGFEFuncAElement a) == (SVGFEFuncAElement b) = js_eq a b

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 = return . fmap SVGFEFuncAElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEFuncAElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGComponentTransferFunctionElement SVGFEFuncAElement
instance IsSVGElement SVGFEFuncAElement
instance IsElementCSSInlineStyle SVGFEFuncAElement
instance IsGlobalEventHandlers SVGFEFuncAElement
instance IsHTMLOrSVGOrMathMLElement SVGFEFuncAElement
instance IsElement SVGFEFuncAElement
instance IsARIAMixin SVGFEFuncAElement
instance IsARIANotifyMixin SVGFEFuncAElement
instance IsAnimatable SVGFEFuncAElement
instance IsChildNode SVGFEFuncAElement
instance IsNonDocumentTypeChildNode SVGFEFuncAElement
instance IsParentNode SVGFEFuncAElement
instance IsSlottable SVGFEFuncAElement
instance IsNode SVGFEFuncAElement
instance IsEventTarget SVGFEFuncAElement

instance IsGObject SVGFEFuncAElement where
  typeGType _ = gTypeSVGFEFuncAElement
  {-# INLINE typeGType #-}

noSVGFEFuncAElement :: Maybe SVGFEFuncAElement
noSVGFEFuncAElement = Nothing
{-# INLINE noSVGFEFuncAElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEFuncAElement\"])" gTypeSVGFEFuncAElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEFuncBElement" (filter-effects-1).
newtype SVGFEFuncBElement = SVGFEFuncBElement { unSVGFEFuncBElement :: JSVal }

instance Eq SVGFEFuncBElement where
  (SVGFEFuncBElement a) == (SVGFEFuncBElement b) = js_eq a b

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 = return . fmap SVGFEFuncBElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEFuncBElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGComponentTransferFunctionElement SVGFEFuncBElement
instance IsSVGElement SVGFEFuncBElement
instance IsElementCSSInlineStyle SVGFEFuncBElement
instance IsGlobalEventHandlers SVGFEFuncBElement
instance IsHTMLOrSVGOrMathMLElement SVGFEFuncBElement
instance IsElement SVGFEFuncBElement
instance IsARIAMixin SVGFEFuncBElement
instance IsARIANotifyMixin SVGFEFuncBElement
instance IsAnimatable SVGFEFuncBElement
instance IsChildNode SVGFEFuncBElement
instance IsNonDocumentTypeChildNode SVGFEFuncBElement
instance IsParentNode SVGFEFuncBElement
instance IsSlottable SVGFEFuncBElement
instance IsNode SVGFEFuncBElement
instance IsEventTarget SVGFEFuncBElement

instance IsGObject SVGFEFuncBElement where
  typeGType _ = gTypeSVGFEFuncBElement
  {-# INLINE typeGType #-}

noSVGFEFuncBElement :: Maybe SVGFEFuncBElement
noSVGFEFuncBElement = Nothing
{-# INLINE noSVGFEFuncBElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEFuncBElement\"])" gTypeSVGFEFuncBElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEFuncGElement" (filter-effects-1).
newtype SVGFEFuncGElement = SVGFEFuncGElement { unSVGFEFuncGElement :: JSVal }

instance Eq SVGFEFuncGElement where
  (SVGFEFuncGElement a) == (SVGFEFuncGElement b) = js_eq a b

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 = return . fmap SVGFEFuncGElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEFuncGElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGComponentTransferFunctionElement SVGFEFuncGElement
instance IsSVGElement SVGFEFuncGElement
instance IsElementCSSInlineStyle SVGFEFuncGElement
instance IsGlobalEventHandlers SVGFEFuncGElement
instance IsHTMLOrSVGOrMathMLElement SVGFEFuncGElement
instance IsElement SVGFEFuncGElement
instance IsARIAMixin SVGFEFuncGElement
instance IsARIANotifyMixin SVGFEFuncGElement
instance IsAnimatable SVGFEFuncGElement
instance IsChildNode SVGFEFuncGElement
instance IsNonDocumentTypeChildNode SVGFEFuncGElement
instance IsParentNode SVGFEFuncGElement
instance IsSlottable SVGFEFuncGElement
instance IsNode SVGFEFuncGElement
instance IsEventTarget SVGFEFuncGElement

instance IsGObject SVGFEFuncGElement where
  typeGType _ = gTypeSVGFEFuncGElement
  {-# INLINE typeGType #-}

noSVGFEFuncGElement :: Maybe SVGFEFuncGElement
noSVGFEFuncGElement = Nothing
{-# INLINE noSVGFEFuncGElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEFuncGElement\"])" gTypeSVGFEFuncGElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEFuncRElement" (filter-effects-1).
newtype SVGFEFuncRElement = SVGFEFuncRElement { unSVGFEFuncRElement :: JSVal }

instance Eq SVGFEFuncRElement where
  (SVGFEFuncRElement a) == (SVGFEFuncRElement b) = js_eq a b

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 = return . fmap SVGFEFuncRElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEFuncRElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGComponentTransferFunctionElement SVGFEFuncRElement
instance IsSVGElement SVGFEFuncRElement
instance IsElementCSSInlineStyle SVGFEFuncRElement
instance IsGlobalEventHandlers SVGFEFuncRElement
instance IsHTMLOrSVGOrMathMLElement SVGFEFuncRElement
instance IsElement SVGFEFuncRElement
instance IsARIAMixin SVGFEFuncRElement
instance IsARIANotifyMixin SVGFEFuncRElement
instance IsAnimatable SVGFEFuncRElement
instance IsChildNode SVGFEFuncRElement
instance IsNonDocumentTypeChildNode SVGFEFuncRElement
instance IsParentNode SVGFEFuncRElement
instance IsSlottable SVGFEFuncRElement
instance IsNode SVGFEFuncRElement
instance IsEventTarget SVGFEFuncRElement

instance IsGObject SVGFEFuncRElement where
  typeGType _ = gTypeSVGFEFuncRElement
  {-# INLINE typeGType #-}

noSVGFEFuncRElement :: Maybe SVGFEFuncRElement
noSVGFEFuncRElement = Nothing
{-# INLINE noSVGFEFuncRElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEFuncRElement\"])" gTypeSVGFEFuncRElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEGaussianBlurElement" (filter-effects-1).
newtype SVGFEGaussianBlurElement = SVGFEGaussianBlurElement { unSVGFEGaussianBlurElement :: JSVal }

instance Eq SVGFEGaussianBlurElement where
  (SVGFEGaussianBlurElement a) == (SVGFEGaussianBlurElement b) = js_eq a b

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 = return . fmap SVGFEGaussianBlurElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEGaussianBlurElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEGaussianBlurElement
instance IsSVGElement SVGFEGaussianBlurElement
instance IsElementCSSInlineStyle SVGFEGaussianBlurElement
instance IsGlobalEventHandlers SVGFEGaussianBlurElement
instance IsHTMLOrSVGOrMathMLElement SVGFEGaussianBlurElement
instance IsElement SVGFEGaussianBlurElement
instance IsARIAMixin SVGFEGaussianBlurElement
instance IsARIANotifyMixin SVGFEGaussianBlurElement
instance IsAnimatable SVGFEGaussianBlurElement
instance IsChildNode SVGFEGaussianBlurElement
instance IsNonDocumentTypeChildNode SVGFEGaussianBlurElement
instance IsParentNode SVGFEGaussianBlurElement
instance IsSlottable SVGFEGaussianBlurElement
instance IsNode SVGFEGaussianBlurElement
instance IsEventTarget SVGFEGaussianBlurElement

instance IsGObject SVGFEGaussianBlurElement where
  typeGType _ = gTypeSVGFEGaussianBlurElement
  {-# INLINE typeGType #-}

noSVGFEGaussianBlurElement :: Maybe SVGFEGaussianBlurElement
noSVGFEGaussianBlurElement = Nothing
{-# INLINE noSVGFEGaussianBlurElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEGaussianBlurElement\"])" gTypeSVGFEGaussianBlurElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEImageElement" (filter-effects-1).
newtype SVGFEImageElement = SVGFEImageElement { unSVGFEImageElement :: JSVal }

instance Eq SVGFEImageElement where
  (SVGFEImageElement a) == (SVGFEImageElement b) = js_eq a b

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 = return . fmap SVGFEImageElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEImageElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEImageElement
instance IsSVGURIReference SVGFEImageElement
instance IsSVGElement SVGFEImageElement
instance IsElementCSSInlineStyle SVGFEImageElement
instance IsGlobalEventHandlers SVGFEImageElement
instance IsHTMLOrSVGOrMathMLElement SVGFEImageElement
instance IsElement SVGFEImageElement
instance IsARIAMixin SVGFEImageElement
instance IsARIANotifyMixin SVGFEImageElement
instance IsAnimatable SVGFEImageElement
instance IsChildNode SVGFEImageElement
instance IsNonDocumentTypeChildNode SVGFEImageElement
instance IsParentNode SVGFEImageElement
instance IsSlottable SVGFEImageElement
instance IsNode SVGFEImageElement
instance IsEventTarget SVGFEImageElement

instance IsGObject SVGFEImageElement where
  typeGType _ = gTypeSVGFEImageElement
  {-# INLINE typeGType #-}

noSVGFEImageElement :: Maybe SVGFEImageElement
noSVGFEImageElement = Nothing
{-# INLINE noSVGFEImageElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEImageElement\"])" gTypeSVGFEImageElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEMergeElement" (filter-effects-1).
newtype SVGFEMergeElement = SVGFEMergeElement { unSVGFEMergeElement :: JSVal }

instance Eq SVGFEMergeElement where
  (SVGFEMergeElement a) == (SVGFEMergeElement b) = js_eq a b

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 = return . fmap SVGFEMergeElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEMergeElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEMergeElement
instance IsSVGElement SVGFEMergeElement
instance IsElementCSSInlineStyle SVGFEMergeElement
instance IsGlobalEventHandlers SVGFEMergeElement
instance IsHTMLOrSVGOrMathMLElement SVGFEMergeElement
instance IsElement SVGFEMergeElement
instance IsARIAMixin SVGFEMergeElement
instance IsARIANotifyMixin SVGFEMergeElement
instance IsAnimatable SVGFEMergeElement
instance IsChildNode SVGFEMergeElement
instance IsNonDocumentTypeChildNode SVGFEMergeElement
instance IsParentNode SVGFEMergeElement
instance IsSlottable SVGFEMergeElement
instance IsNode SVGFEMergeElement
instance IsEventTarget SVGFEMergeElement

instance IsGObject SVGFEMergeElement where
  typeGType _ = gTypeSVGFEMergeElement
  {-# INLINE typeGType #-}

noSVGFEMergeElement :: Maybe SVGFEMergeElement
noSVGFEMergeElement = Nothing
{-# INLINE noSVGFEMergeElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEMergeElement\"])" gTypeSVGFEMergeElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEMergeNodeElement" (filter-effects-1).
newtype SVGFEMergeNodeElement = SVGFEMergeNodeElement { unSVGFEMergeNodeElement :: JSVal }

instance Eq SVGFEMergeNodeElement where
  (SVGFEMergeNodeElement a) == (SVGFEMergeNodeElement b) = js_eq a b

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 = return . fmap SVGFEMergeNodeElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEMergeNodeElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGFEMergeNodeElement
instance IsElementCSSInlineStyle SVGFEMergeNodeElement
instance IsGlobalEventHandlers SVGFEMergeNodeElement
instance IsHTMLOrSVGOrMathMLElement SVGFEMergeNodeElement
instance IsElement SVGFEMergeNodeElement
instance IsARIAMixin SVGFEMergeNodeElement
instance IsARIANotifyMixin SVGFEMergeNodeElement
instance IsAnimatable SVGFEMergeNodeElement
instance IsChildNode SVGFEMergeNodeElement
instance IsNonDocumentTypeChildNode SVGFEMergeNodeElement
instance IsParentNode SVGFEMergeNodeElement
instance IsSlottable SVGFEMergeNodeElement
instance IsNode SVGFEMergeNodeElement
instance IsEventTarget SVGFEMergeNodeElement

instance IsGObject SVGFEMergeNodeElement where
  typeGType _ = gTypeSVGFEMergeNodeElement
  {-# INLINE typeGType #-}

noSVGFEMergeNodeElement :: Maybe SVGFEMergeNodeElement
noSVGFEMergeNodeElement = Nothing
{-# INLINE noSVGFEMergeNodeElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEMergeNodeElement\"])" gTypeSVGFEMergeNodeElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEMorphologyElement" (filter-effects-1).
newtype SVGFEMorphologyElement = SVGFEMorphologyElement { unSVGFEMorphologyElement :: JSVal }

instance Eq SVGFEMorphologyElement where
  (SVGFEMorphologyElement a) == (SVGFEMorphologyElement b) = js_eq a b

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 = return . fmap SVGFEMorphologyElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEMorphologyElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEMorphologyElement
instance IsSVGElement SVGFEMorphologyElement
instance IsElementCSSInlineStyle SVGFEMorphologyElement
instance IsGlobalEventHandlers SVGFEMorphologyElement
instance IsHTMLOrSVGOrMathMLElement SVGFEMorphologyElement
instance IsElement SVGFEMorphologyElement
instance IsARIAMixin SVGFEMorphologyElement
instance IsARIANotifyMixin SVGFEMorphologyElement
instance IsAnimatable SVGFEMorphologyElement
instance IsChildNode SVGFEMorphologyElement
instance IsNonDocumentTypeChildNode SVGFEMorphologyElement
instance IsParentNode SVGFEMorphologyElement
instance IsSlottable SVGFEMorphologyElement
instance IsNode SVGFEMorphologyElement
instance IsEventTarget SVGFEMorphologyElement

instance IsGObject SVGFEMorphologyElement where
  typeGType _ = gTypeSVGFEMorphologyElement
  {-# INLINE typeGType #-}

noSVGFEMorphologyElement :: Maybe SVGFEMorphologyElement
noSVGFEMorphologyElement = Nothing
{-# INLINE noSVGFEMorphologyElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEMorphologyElement\"])" gTypeSVGFEMorphologyElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEOffsetElement" (filter-effects-1).
newtype SVGFEOffsetElement = SVGFEOffsetElement { unSVGFEOffsetElement :: JSVal }

instance Eq SVGFEOffsetElement where
  (SVGFEOffsetElement a) == (SVGFEOffsetElement b) = js_eq a b

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 = return . fmap SVGFEOffsetElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEOffsetElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFEOffsetElement
instance IsSVGElement SVGFEOffsetElement
instance IsElementCSSInlineStyle SVGFEOffsetElement
instance IsGlobalEventHandlers SVGFEOffsetElement
instance IsHTMLOrSVGOrMathMLElement SVGFEOffsetElement
instance IsElement SVGFEOffsetElement
instance IsARIAMixin SVGFEOffsetElement
instance IsARIANotifyMixin SVGFEOffsetElement
instance IsAnimatable SVGFEOffsetElement
instance IsChildNode SVGFEOffsetElement
instance IsNonDocumentTypeChildNode SVGFEOffsetElement
instance IsParentNode SVGFEOffsetElement
instance IsSlottable SVGFEOffsetElement
instance IsNode SVGFEOffsetElement
instance IsEventTarget SVGFEOffsetElement

instance IsGObject SVGFEOffsetElement where
  typeGType _ = gTypeSVGFEOffsetElement
  {-# INLINE typeGType #-}

noSVGFEOffsetElement :: Maybe SVGFEOffsetElement
noSVGFEOffsetElement = Nothing
{-# INLINE noSVGFEOffsetElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEOffsetElement\"])" gTypeSVGFEOffsetElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFEPointLightElement" (filter-effects-1).
newtype SVGFEPointLightElement = SVGFEPointLightElement { unSVGFEPointLightElement :: JSVal }

instance Eq SVGFEPointLightElement where
  (SVGFEPointLightElement a) == (SVGFEPointLightElement b) = js_eq a b

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 = return . fmap SVGFEPointLightElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFEPointLightElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGFEPointLightElement
instance IsElementCSSInlineStyle SVGFEPointLightElement
instance IsGlobalEventHandlers SVGFEPointLightElement
instance IsHTMLOrSVGOrMathMLElement SVGFEPointLightElement
instance IsElement SVGFEPointLightElement
instance IsARIAMixin SVGFEPointLightElement
instance IsARIANotifyMixin SVGFEPointLightElement
instance IsAnimatable SVGFEPointLightElement
instance IsChildNode SVGFEPointLightElement
instance IsNonDocumentTypeChildNode SVGFEPointLightElement
instance IsParentNode SVGFEPointLightElement
instance IsSlottable SVGFEPointLightElement
instance IsNode SVGFEPointLightElement
instance IsEventTarget SVGFEPointLightElement

instance IsGObject SVGFEPointLightElement where
  typeGType _ = gTypeSVGFEPointLightElement
  {-# INLINE typeGType #-}

noSVGFEPointLightElement :: Maybe SVGFEPointLightElement
noSVGFEPointLightElement = Nothing
{-# INLINE noSVGFEPointLightElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFEPointLightElement\"])" gTypeSVGFEPointLightElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFESpecularLightingElement" (filter-effects-1).
newtype SVGFESpecularLightingElement = SVGFESpecularLightingElement { unSVGFESpecularLightingElement :: JSVal }

instance Eq SVGFESpecularLightingElement where
  (SVGFESpecularLightingElement a) == (SVGFESpecularLightingElement b) = js_eq a b

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 = return . fmap SVGFESpecularLightingElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFESpecularLightingElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFESpecularLightingElement
instance IsSVGElement SVGFESpecularLightingElement
instance IsElementCSSInlineStyle SVGFESpecularLightingElement
instance IsGlobalEventHandlers SVGFESpecularLightingElement
instance IsHTMLOrSVGOrMathMLElement SVGFESpecularLightingElement
instance IsElement SVGFESpecularLightingElement
instance IsARIAMixin SVGFESpecularLightingElement
instance IsARIANotifyMixin SVGFESpecularLightingElement
instance IsAnimatable SVGFESpecularLightingElement
instance IsChildNode SVGFESpecularLightingElement
instance IsNonDocumentTypeChildNode SVGFESpecularLightingElement
instance IsParentNode SVGFESpecularLightingElement
instance IsSlottable SVGFESpecularLightingElement
instance IsNode SVGFESpecularLightingElement
instance IsEventTarget SVGFESpecularLightingElement

instance IsGObject SVGFESpecularLightingElement where
  typeGType _ = gTypeSVGFESpecularLightingElement
  {-# INLINE typeGType #-}

noSVGFESpecularLightingElement :: Maybe SVGFESpecularLightingElement
noSVGFESpecularLightingElement = Nothing
{-# INLINE noSVGFESpecularLightingElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFESpecularLightingElement\"])" gTypeSVGFESpecularLightingElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFESpotLightElement" (filter-effects-1).
newtype SVGFESpotLightElement = SVGFESpotLightElement { unSVGFESpotLightElement :: JSVal }

instance Eq SVGFESpotLightElement where
  (SVGFESpotLightElement a) == (SVGFESpotLightElement b) = js_eq a b

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 = return . fmap SVGFESpotLightElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFESpotLightElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGFESpotLightElement
instance IsElementCSSInlineStyle SVGFESpotLightElement
instance IsGlobalEventHandlers SVGFESpotLightElement
instance IsHTMLOrSVGOrMathMLElement SVGFESpotLightElement
instance IsElement SVGFESpotLightElement
instance IsARIAMixin SVGFESpotLightElement
instance IsARIANotifyMixin SVGFESpotLightElement
instance IsAnimatable SVGFESpotLightElement
instance IsChildNode SVGFESpotLightElement
instance IsNonDocumentTypeChildNode SVGFESpotLightElement
instance IsParentNode SVGFESpotLightElement
instance IsSlottable SVGFESpotLightElement
instance IsNode SVGFESpotLightElement
instance IsEventTarget SVGFESpotLightElement

instance IsGObject SVGFESpotLightElement where
  typeGType _ = gTypeSVGFESpotLightElement
  {-# INLINE typeGType #-}

noSVGFESpotLightElement :: Maybe SVGFESpotLightElement
noSVGFESpotLightElement = Nothing
{-# INLINE noSVGFESpotLightElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFESpotLightElement\"])" gTypeSVGFESpotLightElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFETileElement" (filter-effects-1).
newtype SVGFETileElement = SVGFETileElement { unSVGFETileElement :: JSVal }

instance Eq SVGFETileElement where
  (SVGFETileElement a) == (SVGFETileElement b) = js_eq a b

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 = return . fmap SVGFETileElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFETileElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFETileElement
instance IsSVGElement SVGFETileElement
instance IsElementCSSInlineStyle SVGFETileElement
instance IsGlobalEventHandlers SVGFETileElement
instance IsHTMLOrSVGOrMathMLElement SVGFETileElement
instance IsElement SVGFETileElement
instance IsARIAMixin SVGFETileElement
instance IsARIANotifyMixin SVGFETileElement
instance IsAnimatable SVGFETileElement
instance IsChildNode SVGFETileElement
instance IsNonDocumentTypeChildNode SVGFETileElement
instance IsParentNode SVGFETileElement
instance IsSlottable SVGFETileElement
instance IsNode SVGFETileElement
instance IsEventTarget SVGFETileElement

instance IsGObject SVGFETileElement where
  typeGType _ = gTypeSVGFETileElement
  {-# INLINE typeGType #-}

noSVGFETileElement :: Maybe SVGFETileElement
noSVGFETileElement = Nothing
{-# INLINE noSVGFETileElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFETileElement\"])" gTypeSVGFETileElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFETurbulenceElement" (filter-effects-1).
newtype SVGFETurbulenceElement = SVGFETurbulenceElement { unSVGFETurbulenceElement :: JSVal }

instance Eq SVGFETurbulenceElement where
  (SVGFETurbulenceElement a) == (SVGFETurbulenceElement b) = js_eq a b

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 = return . fmap SVGFETurbulenceElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFETurbulenceElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFilterPrimitiveStandardAttributes SVGFETurbulenceElement
instance IsSVGElement SVGFETurbulenceElement
instance IsElementCSSInlineStyle SVGFETurbulenceElement
instance IsGlobalEventHandlers SVGFETurbulenceElement
instance IsHTMLOrSVGOrMathMLElement SVGFETurbulenceElement
instance IsElement SVGFETurbulenceElement
instance IsARIAMixin SVGFETurbulenceElement
instance IsARIANotifyMixin SVGFETurbulenceElement
instance IsAnimatable SVGFETurbulenceElement
instance IsChildNode SVGFETurbulenceElement
instance IsNonDocumentTypeChildNode SVGFETurbulenceElement
instance IsParentNode SVGFETurbulenceElement
instance IsSlottable SVGFETurbulenceElement
instance IsNode SVGFETurbulenceElement
instance IsEventTarget SVGFETurbulenceElement

instance IsGObject SVGFETurbulenceElement where
  typeGType _ = gTypeSVGFETurbulenceElement
  {-# INLINE typeGType #-}

noSVGFETurbulenceElement :: Maybe SVGFETurbulenceElement
noSVGFETurbulenceElement = Nothing
{-# INLINE noSVGFETurbulenceElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFETurbulenceElement\"])" gTypeSVGFETurbulenceElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFilterElement" (filter-effects-1).
newtype SVGFilterElement = SVGFilterElement { unSVGFilterElement :: JSVal }

instance Eq SVGFilterElement where
  (SVGFilterElement a) == (SVGFilterElement b) = js_eq a b

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 = return . fmap SVGFilterElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFilterElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGFilterElement
instance IsElementCSSInlineStyle SVGFilterElement
instance IsGlobalEventHandlers SVGFilterElement
instance IsHTMLOrSVGOrMathMLElement SVGFilterElement
instance IsElement SVGFilterElement
instance IsARIAMixin SVGFilterElement
instance IsARIANotifyMixin SVGFilterElement
instance IsAnimatable SVGFilterElement
instance IsChildNode SVGFilterElement
instance IsNonDocumentTypeChildNode SVGFilterElement
instance IsParentNode SVGFilterElement
instance IsSlottable SVGFilterElement
instance IsNode SVGFilterElement
instance IsEventTarget SVGFilterElement

instance IsGObject SVGFilterElement where
  typeGType _ = gTypeSVGFilterElement
  {-# INLINE typeGType #-}

noSVGFilterElement :: Maybe SVGFilterElement
noSVGFilterElement = Nothing
{-# INLINE noSVGFilterElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGFilterElement\"])" gTypeSVGFilterElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes" (filter-effects-1).
newtype SVGFilterPrimitiveStandardAttributes = SVGFilterPrimitiveStandardAttributes { unSVGFilterPrimitiveStandardAttributes :: JSVal }

instance Eq SVGFilterPrimitiveStandardAttributes where
  (SVGFilterPrimitiveStandardAttributes a) == (SVGFilterPrimitiveStandardAttributes b) = js_eq a b

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 = return . fmap SVGFilterPrimitiveStandardAttributes . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFilterPrimitiveStandardAttributes
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSVGFilterPrimitiveStandardAttributes o
toSVGFilterPrimitiveStandardAttributes :: IsSVGFilterPrimitiveStandardAttributes o => o -> SVGFilterPrimitiveStandardAttributes
toSVGFilterPrimitiveStandardAttributes = SVGFilterPrimitiveStandardAttributes . coerce

instance IsSVGFilterPrimitiveStandardAttributes SVGFilterPrimitiveStandardAttributes

instance IsGObject SVGFilterPrimitiveStandardAttributes where
  typeGType _ = gTypeSVGFilterPrimitiveStandardAttributes
  {-# INLINE typeGType #-}

noSVGFilterPrimitiveStandardAttributes :: Maybe SVGFilterPrimitiveStandardAttributes
noSVGFilterPrimitiveStandardAttributes = Nothing
{-# INLINE noSVGFilterPrimitiveStandardAttributes #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSVGFilterPrimitiveStandardAttributes :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGFitToViewBox" (SVG2).
newtype SVGFitToViewBox = SVGFitToViewBox { unSVGFitToViewBox :: JSVal }

instance Eq SVGFitToViewBox where
  (SVGFitToViewBox a) == (SVGFitToViewBox b) = js_eq a b

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 = return . fmap SVGFitToViewBox . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGFitToViewBox
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSVGFitToViewBox o
toSVGFitToViewBox :: IsSVGFitToViewBox o => o -> SVGFitToViewBox
toSVGFitToViewBox = SVGFitToViewBox . coerce

instance IsSVGFitToViewBox SVGFitToViewBox

instance IsGObject SVGFitToViewBox where
  typeGType _ = gTypeSVGFitToViewBox
  {-# INLINE typeGType #-}

noSVGFitToViewBox :: Maybe SVGFitToViewBox
noSVGFitToViewBox = Nothing
{-# INLINE noSVGFitToViewBox #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSVGFitToViewBox :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGForeignObjectElement" (SVG2).
newtype SVGForeignObjectElement = SVGForeignObjectElement { unSVGForeignObjectElement :: JSVal }

instance Eq SVGForeignObjectElement where
  (SVGForeignObjectElement a) == (SVGForeignObjectElement b) = js_eq a b

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 = return . fmap SVGForeignObjectElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGForeignObjectElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGraphicsElement SVGForeignObjectElement
instance IsSVGTests SVGForeignObjectElement
instance IsSVGElement SVGForeignObjectElement
instance IsElementCSSInlineStyle SVGForeignObjectElement
instance IsGlobalEventHandlers SVGForeignObjectElement
instance IsHTMLOrSVGOrMathMLElement SVGForeignObjectElement
instance IsElement SVGForeignObjectElement
instance IsARIAMixin SVGForeignObjectElement
instance IsARIANotifyMixin SVGForeignObjectElement
instance IsAnimatable SVGForeignObjectElement
instance IsChildNode SVGForeignObjectElement
instance IsNonDocumentTypeChildNode SVGForeignObjectElement
instance IsParentNode SVGForeignObjectElement
instance IsSlottable SVGForeignObjectElement
instance IsNode SVGForeignObjectElement
instance IsEventTarget SVGForeignObjectElement

instance IsGObject SVGForeignObjectElement where
  typeGType _ = gTypeSVGForeignObjectElement
  {-# INLINE typeGType #-}

noSVGForeignObjectElement :: Maybe SVGForeignObjectElement
noSVGForeignObjectElement = Nothing
{-# INLINE noSVGForeignObjectElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGForeignObjectElement\"])" gTypeSVGForeignObjectElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGGElement" (SVG2).
newtype SVGGElement = SVGGElement { unSVGGElement :: JSVal }

instance Eq SVGGElement where
  (SVGGElement a) == (SVGGElement b) = js_eq a b

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 = return . fmap SVGGElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGGElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGraphicsElement SVGGElement
instance IsSVGTests SVGGElement
instance IsSVGElement SVGGElement
instance IsElementCSSInlineStyle SVGGElement
instance IsGlobalEventHandlers SVGGElement
instance IsHTMLOrSVGOrMathMLElement SVGGElement
instance IsElement SVGGElement
instance IsARIAMixin SVGGElement
instance IsARIANotifyMixin SVGGElement
instance IsAnimatable SVGGElement
instance IsChildNode SVGGElement
instance IsNonDocumentTypeChildNode SVGGElement
instance IsParentNode SVGGElement
instance IsSlottable SVGGElement
instance IsNode SVGGElement
instance IsEventTarget SVGGElement

instance IsGObject SVGGElement where
  typeGType _ = gTypeSVGGElement
  {-# INLINE typeGType #-}

noSVGGElement :: Maybe SVGGElement
noSVGGElement = Nothing
{-# INLINE noSVGGElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGGElement\"])" gTypeSVGGElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGGeometryElement" (SVG2).
newtype SVGGeometryElement = SVGGeometryElement { unSVGGeometryElement :: JSVal }

instance Eq SVGGeometryElement where
  (SVGGeometryElement a) == (SVGGeometryElement b) = js_eq a b

instance PToJSVal SVGGeometryElement where
  pToJSVal = unSVGGeometryElement
  {-# INLINE pToJSVal #-}

instance PFromJSVal SVGGeometryElement where
  pFromJSVal = SVGGeometryElement
  {-# INLINE pFromJSVal #-}

instance ToJSVal SVGGeometryElement where
  toJSVal = return . unSVGGeometryElement
  {-# INLINE toJSVal #-}

instance FromJSVal SVGGeometryElement where
  fromJSVal = return . fmap SVGGeometryElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGGeometryElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGGraphicsElement o, IsGObject o) => IsSVGGeometryElement o
toSVGGeometryElement :: IsSVGGeometryElement o => o -> SVGGeometryElement
toSVGGeometryElement = SVGGeometryElement . coerce

instance IsSVGGeometryElement SVGGeometryElement
instance IsSVGGraphicsElement SVGGeometryElement
instance IsSVGTests SVGGeometryElement
instance IsSVGElement SVGGeometryElement
instance IsElementCSSInlineStyle SVGGeometryElement
instance IsGlobalEventHandlers SVGGeometryElement
instance IsHTMLOrSVGOrMathMLElement SVGGeometryElement
instance IsElement SVGGeometryElement
instance IsARIAMixin SVGGeometryElement
instance IsARIANotifyMixin SVGGeometryElement
instance IsAnimatable SVGGeometryElement
instance IsChildNode SVGGeometryElement
instance IsNonDocumentTypeChildNode SVGGeometryElement
instance IsParentNode SVGGeometryElement
instance IsSlottable SVGGeometryElement
instance IsNode SVGGeometryElement
instance IsEventTarget SVGGeometryElement

instance IsGObject SVGGeometryElement where
  typeGType _ = gTypeSVGGeometryElement
  {-# INLINE typeGType #-}

noSVGGeometryElement :: Maybe SVGGeometryElement
noSVGGeometryElement = Nothing
{-# INLINE noSVGGeometryElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGGeometryElement\"])" gTypeSVGGeometryElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGGradientElement" (SVG2).
newtype SVGGradientElement = SVGGradientElement { unSVGGradientElement :: JSVal }

instance Eq SVGGradientElement where
  (SVGGradientElement a) == (SVGGradientElement b) = js_eq a b

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 = return . fmap SVGGradientElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGGradientElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGElement o, IsSVGURIReference o, IsGObject o) => IsSVGGradientElement o
toSVGGradientElement :: IsSVGGradientElement o => o -> SVGGradientElement
toSVGGradientElement = SVGGradientElement . coerce

instance IsSVGGradientElement SVGGradientElement
instance IsSVGURIReference SVGGradientElement
instance IsSVGElement SVGGradientElement
instance IsElementCSSInlineStyle SVGGradientElement
instance IsGlobalEventHandlers SVGGradientElement
instance IsHTMLOrSVGOrMathMLElement SVGGradientElement
instance IsElement SVGGradientElement
instance IsARIAMixin SVGGradientElement
instance IsARIANotifyMixin SVGGradientElement
instance IsAnimatable SVGGradientElement
instance IsChildNode SVGGradientElement
instance IsNonDocumentTypeChildNode SVGGradientElement
instance IsParentNode SVGGradientElement
instance IsSlottable SVGGradientElement
instance IsNode SVGGradientElement
instance IsEventTarget SVGGradientElement

instance IsGObject SVGGradientElement where
  typeGType _ = gTypeSVGGradientElement
  {-# INLINE typeGType #-}

noSVGGradientElement :: Maybe SVGGradientElement
noSVGGradientElement = Nothing
{-# INLINE noSVGGradientElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGGradientElement\"])" gTypeSVGGradientElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGGraphicsElement" (SVG2).
newtype SVGGraphicsElement = SVGGraphicsElement { unSVGGraphicsElement :: JSVal }

instance Eq SVGGraphicsElement where
  (SVGGraphicsElement a) == (SVGGraphicsElement b) = js_eq a b

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 = return . fmap SVGGraphicsElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGGraphicsElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGElement o, IsSVGTests o, IsGObject o) => IsSVGGraphicsElement o
toSVGGraphicsElement :: IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement = SVGGraphicsElement . coerce

instance IsSVGGraphicsElement SVGGraphicsElement
instance IsSVGTests SVGGraphicsElement
instance IsSVGElement SVGGraphicsElement
instance IsElementCSSInlineStyle SVGGraphicsElement
instance IsGlobalEventHandlers SVGGraphicsElement
instance IsHTMLOrSVGOrMathMLElement SVGGraphicsElement
instance IsElement SVGGraphicsElement
instance IsARIAMixin SVGGraphicsElement
instance IsARIANotifyMixin SVGGraphicsElement
instance IsAnimatable SVGGraphicsElement
instance IsChildNode SVGGraphicsElement
instance IsNonDocumentTypeChildNode SVGGraphicsElement
instance IsParentNode SVGGraphicsElement
instance IsSlottable SVGGraphicsElement
instance IsNode SVGGraphicsElement
instance IsEventTarget SVGGraphicsElement

instance IsGObject SVGGraphicsElement where
  typeGType _ = gTypeSVGGraphicsElement
  {-# INLINE typeGType #-}

noSVGGraphicsElement :: Maybe SVGGraphicsElement
noSVGGraphicsElement = Nothing
{-# INLINE noSVGGraphicsElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGGraphicsElement\"])" gTypeSVGGraphicsElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGImageElement" (SVG2).
newtype SVGImageElement = SVGImageElement { unSVGImageElement :: JSVal }

instance Eq SVGImageElement where
  (SVGImageElement a) == (SVGImageElement b) = js_eq a b

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 = return . fmap SVGImageElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGImageElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGURIReference SVGImageElement
instance IsSVGGraphicsElement SVGImageElement
instance IsSVGTests SVGImageElement
instance IsSVGElement SVGImageElement
instance IsElementCSSInlineStyle SVGImageElement
instance IsGlobalEventHandlers SVGImageElement
instance IsHTMLOrSVGOrMathMLElement SVGImageElement
instance IsElement SVGImageElement
instance IsARIAMixin SVGImageElement
instance IsARIANotifyMixin SVGImageElement
instance IsAnimatable SVGImageElement
instance IsChildNode SVGImageElement
instance IsNonDocumentTypeChildNode SVGImageElement
instance IsParentNode SVGImageElement
instance IsSlottable SVGImageElement
instance IsNode SVGImageElement
instance IsEventTarget SVGImageElement

instance IsGObject SVGImageElement where
  typeGType _ = gTypeSVGImageElement
  {-# INLINE typeGType #-}

noSVGImageElement :: Maybe SVGImageElement
noSVGImageElement = Nothing
{-# INLINE noSVGImageElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGImageElement\"])" gTypeSVGImageElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGLength" (SVG2).
newtype SVGLength = SVGLength { unSVGLength :: JSVal }

instance Eq SVGLength where
  (SVGLength a) == (SVGLength b) = js_eq a b

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 = return . fmap SVGLength . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGLength
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGLength where
  typeGType _ = gTypeSVGLength
  {-# INLINE typeGType #-}

noSVGLength :: Maybe SVGLength
noSVGLength = Nothing
{-# INLINE noSVGLength #-}

foreign import javascript unsafe "(() => globalThis[\"SVGLength\"])" gTypeSVGLength :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGLengthList" (SVG2).
newtype SVGLengthList = SVGLengthList { unSVGLengthList :: JSVal }

instance Eq SVGLengthList where
  (SVGLengthList a) == (SVGLengthList b) = js_eq a b

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 = return . fmap SVGLengthList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGLengthList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGLengthList where
  typeGType _ = gTypeSVGLengthList
  {-# INLINE typeGType #-}

noSVGLengthList :: Maybe SVGLengthList
noSVGLengthList = Nothing
{-# INLINE noSVGLengthList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGLengthList\"])" gTypeSVGLengthList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGLineElement" (SVG2).
newtype SVGLineElement = SVGLineElement { unSVGLineElement :: JSVal }

instance Eq SVGLineElement where
  (SVGLineElement a) == (SVGLineElement b) = js_eq a b

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 = return . fmap SVGLineElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGLineElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGeometryElement SVGLineElement
instance IsSVGGraphicsElement SVGLineElement
instance IsSVGTests SVGLineElement
instance IsSVGElement SVGLineElement
instance IsElementCSSInlineStyle SVGLineElement
instance IsGlobalEventHandlers SVGLineElement
instance IsHTMLOrSVGOrMathMLElement SVGLineElement
instance IsElement SVGLineElement
instance IsARIAMixin SVGLineElement
instance IsARIANotifyMixin SVGLineElement
instance IsAnimatable SVGLineElement
instance IsChildNode SVGLineElement
instance IsNonDocumentTypeChildNode SVGLineElement
instance IsParentNode SVGLineElement
instance IsSlottable SVGLineElement
instance IsNode SVGLineElement
instance IsEventTarget SVGLineElement

instance IsGObject SVGLineElement where
  typeGType _ = gTypeSVGLineElement
  {-# INLINE typeGType #-}

noSVGLineElement :: Maybe SVGLineElement
noSVGLineElement = Nothing
{-# INLINE noSVGLineElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGLineElement\"])" gTypeSVGLineElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGLinearGradientElement" (SVG2).
newtype SVGLinearGradientElement = SVGLinearGradientElement { unSVGLinearGradientElement :: JSVal }

instance Eq SVGLinearGradientElement where
  (SVGLinearGradientElement a) == (SVGLinearGradientElement b) = js_eq a b

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 = return . fmap SVGLinearGradientElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGLinearGradientElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGradientElement SVGLinearGradientElement
instance IsSVGURIReference SVGLinearGradientElement
instance IsSVGElement SVGLinearGradientElement
instance IsElementCSSInlineStyle SVGLinearGradientElement
instance IsGlobalEventHandlers SVGLinearGradientElement
instance IsHTMLOrSVGOrMathMLElement SVGLinearGradientElement
instance IsElement SVGLinearGradientElement
instance IsARIAMixin SVGLinearGradientElement
instance IsARIANotifyMixin SVGLinearGradientElement
instance IsAnimatable SVGLinearGradientElement
instance IsChildNode SVGLinearGradientElement
instance IsNonDocumentTypeChildNode SVGLinearGradientElement
instance IsParentNode SVGLinearGradientElement
instance IsSlottable SVGLinearGradientElement
instance IsNode SVGLinearGradientElement
instance IsEventTarget SVGLinearGradientElement

instance IsGObject SVGLinearGradientElement where
  typeGType _ = gTypeSVGLinearGradientElement
  {-# INLINE typeGType #-}

noSVGLinearGradientElement :: Maybe SVGLinearGradientElement
noSVGLinearGradientElement = Nothing
{-# INLINE noSVGLinearGradientElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGLinearGradientElement\"])" gTypeSVGLinearGradientElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGMPathElement" (svg-animations).
newtype SVGMPathElement = SVGMPathElement { unSVGMPathElement :: JSVal }

instance Eq SVGMPathElement where
  (SVGMPathElement a) == (SVGMPathElement b) = js_eq a b

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 = return . fmap SVGMPathElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGMPathElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGURIReference SVGMPathElement
instance IsSVGElement SVGMPathElement
instance IsElementCSSInlineStyle SVGMPathElement
instance IsGlobalEventHandlers SVGMPathElement
instance IsHTMLOrSVGOrMathMLElement SVGMPathElement
instance IsElement SVGMPathElement
instance IsARIAMixin SVGMPathElement
instance IsARIANotifyMixin SVGMPathElement
instance IsAnimatable SVGMPathElement
instance IsChildNode SVGMPathElement
instance IsNonDocumentTypeChildNode SVGMPathElement
instance IsParentNode SVGMPathElement
instance IsSlottable SVGMPathElement
instance IsNode SVGMPathElement
instance IsEventTarget SVGMPathElement

instance IsGObject SVGMPathElement where
  typeGType _ = gTypeSVGMPathElement
  {-# INLINE typeGType #-}

noSVGMPathElement :: Maybe SVGMPathElement
noSVGMPathElement = Nothing
{-# INLINE noSVGMPathElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGMPathElement\"])" gTypeSVGMPathElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGMarkerElement" (SVG2).
newtype SVGMarkerElement = SVGMarkerElement { unSVGMarkerElement :: JSVal }

instance Eq SVGMarkerElement where
  (SVGMarkerElement a) == (SVGMarkerElement b) = js_eq a b

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 = return . fmap SVGMarkerElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGMarkerElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFitToViewBox SVGMarkerElement
instance IsSVGElement SVGMarkerElement
instance IsElementCSSInlineStyle SVGMarkerElement
instance IsGlobalEventHandlers SVGMarkerElement
instance IsHTMLOrSVGOrMathMLElement SVGMarkerElement
instance IsElement SVGMarkerElement
instance IsARIAMixin SVGMarkerElement
instance IsARIANotifyMixin SVGMarkerElement
instance IsAnimatable SVGMarkerElement
instance IsChildNode SVGMarkerElement
instance IsNonDocumentTypeChildNode SVGMarkerElement
instance IsParentNode SVGMarkerElement
instance IsSlottable SVGMarkerElement
instance IsNode SVGMarkerElement
instance IsEventTarget SVGMarkerElement

instance IsGObject SVGMarkerElement where
  typeGType _ = gTypeSVGMarkerElement
  {-# INLINE typeGType #-}

noSVGMarkerElement :: Maybe SVGMarkerElement
noSVGMarkerElement = Nothing
{-# INLINE noSVGMarkerElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGMarkerElement\"])" gTypeSVGMarkerElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGMaskElement" (css-masking-1).
newtype SVGMaskElement = SVGMaskElement { unSVGMaskElement :: JSVal }

instance Eq SVGMaskElement where
  (SVGMaskElement a) == (SVGMaskElement b) = js_eq a b

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 = return . fmap SVGMaskElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGMaskElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGMaskElement
instance IsElementCSSInlineStyle SVGMaskElement
instance IsGlobalEventHandlers SVGMaskElement
instance IsHTMLOrSVGOrMathMLElement SVGMaskElement
instance IsElement SVGMaskElement
instance IsARIAMixin SVGMaskElement
instance IsARIANotifyMixin SVGMaskElement
instance IsAnimatable SVGMaskElement
instance IsChildNode SVGMaskElement
instance IsNonDocumentTypeChildNode SVGMaskElement
instance IsParentNode SVGMaskElement
instance IsSlottable SVGMaskElement
instance IsNode SVGMaskElement
instance IsEventTarget SVGMaskElement

instance IsGObject SVGMaskElement where
  typeGType _ = gTypeSVGMaskElement
  {-# INLINE typeGType #-}

noSVGMaskElement :: Maybe SVGMaskElement
noSVGMaskElement = Nothing
{-# INLINE noSVGMaskElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGMaskElement\"])" gTypeSVGMaskElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGMetadataElement" (SVG2).
newtype SVGMetadataElement = SVGMetadataElement { unSVGMetadataElement :: JSVal }

instance Eq SVGMetadataElement where
  (SVGMetadataElement a) == (SVGMetadataElement b) = js_eq a b

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 = return . fmap SVGMetadataElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGMetadataElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGMetadataElement
instance IsElementCSSInlineStyle SVGMetadataElement
instance IsGlobalEventHandlers SVGMetadataElement
instance IsHTMLOrSVGOrMathMLElement SVGMetadataElement
instance IsElement SVGMetadataElement
instance IsARIAMixin SVGMetadataElement
instance IsARIANotifyMixin SVGMetadataElement
instance IsAnimatable SVGMetadataElement
instance IsChildNode SVGMetadataElement
instance IsNonDocumentTypeChildNode SVGMetadataElement
instance IsParentNode SVGMetadataElement
instance IsSlottable SVGMetadataElement
instance IsNode SVGMetadataElement
instance IsEventTarget SVGMetadataElement

instance IsGObject SVGMetadataElement where
  typeGType _ = gTypeSVGMetadataElement
  {-# INLINE typeGType #-}

noSVGMetadataElement :: Maybe SVGMetadataElement
noSVGMetadataElement = Nothing
{-# INLINE noSVGMetadataElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGMetadataElement\"])" gTypeSVGMetadataElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGNumber" (SVG2).
newtype SVGNumber = SVGNumber { unSVGNumber :: JSVal }

instance Eq SVGNumber where
  (SVGNumber a) == (SVGNumber b) = js_eq a b

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 = return . fmap SVGNumber . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGNumber
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGNumber where
  typeGType _ = gTypeSVGNumber
  {-# INLINE typeGType #-}

noSVGNumber :: Maybe SVGNumber
noSVGNumber = Nothing
{-# INLINE noSVGNumber #-}

foreign import javascript unsafe "(() => globalThis[\"SVGNumber\"])" gTypeSVGNumber :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGNumberList" (SVG2).
newtype SVGNumberList = SVGNumberList { unSVGNumberList :: JSVal }

instance Eq SVGNumberList where
  (SVGNumberList a) == (SVGNumberList b) = js_eq a b

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 = return . fmap SVGNumberList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGNumberList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGNumberList where
  typeGType _ = gTypeSVGNumberList
  {-# INLINE typeGType #-}

noSVGNumberList :: Maybe SVGNumberList
noSVGNumberList = Nothing
{-# INLINE noSVGNumberList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGNumberList\"])" gTypeSVGNumberList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGPathElement" (svg-paths).
newtype SVGPathElement = SVGPathElement { unSVGPathElement :: JSVal }

instance Eq SVGPathElement where
  (SVGPathElement a) == (SVGPathElement b) = js_eq a b

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 = return . fmap SVGPathElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGPathElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGeometryElement SVGPathElement
instance IsSVGGraphicsElement SVGPathElement
instance IsSVGTests SVGPathElement
instance IsSVGElement SVGPathElement
instance IsElementCSSInlineStyle SVGPathElement
instance IsGlobalEventHandlers SVGPathElement
instance IsHTMLOrSVGOrMathMLElement SVGPathElement
instance IsElement SVGPathElement
instance IsARIAMixin SVGPathElement
instance IsARIANotifyMixin SVGPathElement
instance IsAnimatable SVGPathElement
instance IsChildNode SVGPathElement
instance IsNonDocumentTypeChildNode SVGPathElement
instance IsParentNode SVGPathElement
instance IsSlottable SVGPathElement
instance IsNode SVGPathElement
instance IsEventTarget SVGPathElement

instance IsGObject SVGPathElement where
  typeGType _ = gTypeSVGPathElement
  {-# INLINE typeGType #-}

noSVGPathElement :: Maybe SVGPathElement
noSVGPathElement = Nothing
{-# INLINE noSVGPathElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGPathElement\"])" gTypeSVGPathElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGPatternElement" (SVG2).
newtype SVGPatternElement = SVGPatternElement { unSVGPatternElement :: JSVal }

instance Eq SVGPatternElement where
  (SVGPatternElement a) == (SVGPatternElement b) = js_eq a b

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 = return . fmap SVGPatternElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGPatternElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFitToViewBox SVGPatternElement
instance IsSVGURIReference SVGPatternElement
instance IsSVGElement SVGPatternElement
instance IsElementCSSInlineStyle SVGPatternElement
instance IsGlobalEventHandlers SVGPatternElement
instance IsHTMLOrSVGOrMathMLElement SVGPatternElement
instance IsElement SVGPatternElement
instance IsARIAMixin SVGPatternElement
instance IsARIANotifyMixin SVGPatternElement
instance IsAnimatable SVGPatternElement
instance IsChildNode SVGPatternElement
instance IsNonDocumentTypeChildNode SVGPatternElement
instance IsParentNode SVGPatternElement
instance IsSlottable SVGPatternElement
instance IsNode SVGPatternElement
instance IsEventTarget SVGPatternElement

instance IsGObject SVGPatternElement where
  typeGType _ = gTypeSVGPatternElement
  {-# INLINE typeGType #-}

noSVGPatternElement :: Maybe SVGPatternElement
noSVGPatternElement = Nothing
{-# INLINE noSVGPatternElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGPatternElement\"])" gTypeSVGPatternElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGPointList" (SVG2).
newtype SVGPointList = SVGPointList { unSVGPointList :: JSVal }

instance Eq SVGPointList where
  (SVGPointList a) == (SVGPointList b) = js_eq a b

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 = return . fmap SVGPointList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGPointList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGPointList where
  typeGType _ = gTypeSVGPointList
  {-# INLINE typeGType #-}

noSVGPointList :: Maybe SVGPointList
noSVGPointList = Nothing
{-# INLINE noSVGPointList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGPointList\"])" gTypeSVGPointList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGPolygonElement" (SVG2).
newtype SVGPolygonElement = SVGPolygonElement { unSVGPolygonElement :: JSVal }

instance Eq SVGPolygonElement where
  (SVGPolygonElement a) == (SVGPolygonElement b) = js_eq a b

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 = return . fmap SVGPolygonElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGPolygonElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGAnimatedPoints SVGPolygonElement
instance IsSVGGeometryElement SVGPolygonElement
instance IsSVGGraphicsElement SVGPolygonElement
instance IsSVGTests SVGPolygonElement
instance IsSVGElement SVGPolygonElement
instance IsElementCSSInlineStyle SVGPolygonElement
instance IsGlobalEventHandlers SVGPolygonElement
instance IsHTMLOrSVGOrMathMLElement SVGPolygonElement
instance IsElement SVGPolygonElement
instance IsARIAMixin SVGPolygonElement
instance IsARIANotifyMixin SVGPolygonElement
instance IsAnimatable SVGPolygonElement
instance IsChildNode SVGPolygonElement
instance IsNonDocumentTypeChildNode SVGPolygonElement
instance IsParentNode SVGPolygonElement
instance IsSlottable SVGPolygonElement
instance IsNode SVGPolygonElement
instance IsEventTarget SVGPolygonElement

instance IsGObject SVGPolygonElement where
  typeGType _ = gTypeSVGPolygonElement
  {-# INLINE typeGType #-}

noSVGPolygonElement :: Maybe SVGPolygonElement
noSVGPolygonElement = Nothing
{-# INLINE noSVGPolygonElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGPolygonElement\"])" gTypeSVGPolygonElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGPolylineElement" (SVG2).
newtype SVGPolylineElement = SVGPolylineElement { unSVGPolylineElement :: JSVal }

instance Eq SVGPolylineElement where
  (SVGPolylineElement a) == (SVGPolylineElement b) = js_eq a b

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 = return . fmap SVGPolylineElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGPolylineElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGAnimatedPoints SVGPolylineElement
instance IsSVGGeometryElement SVGPolylineElement
instance IsSVGGraphicsElement SVGPolylineElement
instance IsSVGTests SVGPolylineElement
instance IsSVGElement SVGPolylineElement
instance IsElementCSSInlineStyle SVGPolylineElement
instance IsGlobalEventHandlers SVGPolylineElement
instance IsHTMLOrSVGOrMathMLElement SVGPolylineElement
instance IsElement SVGPolylineElement
instance IsARIAMixin SVGPolylineElement
instance IsARIANotifyMixin SVGPolylineElement
instance IsAnimatable SVGPolylineElement
instance IsChildNode SVGPolylineElement
instance IsNonDocumentTypeChildNode SVGPolylineElement
instance IsParentNode SVGPolylineElement
instance IsSlottable SVGPolylineElement
instance IsNode SVGPolylineElement
instance IsEventTarget SVGPolylineElement

instance IsGObject SVGPolylineElement where
  typeGType _ = gTypeSVGPolylineElement
  {-# INLINE typeGType #-}

noSVGPolylineElement :: Maybe SVGPolylineElement
noSVGPolylineElement = Nothing
{-# INLINE noSVGPolylineElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGPolylineElement\"])" gTypeSVGPolylineElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGPreserveAspectRatio" (SVG2).
newtype SVGPreserveAspectRatio = SVGPreserveAspectRatio { unSVGPreserveAspectRatio :: JSVal }

instance Eq SVGPreserveAspectRatio where
  (SVGPreserveAspectRatio a) == (SVGPreserveAspectRatio b) = js_eq a b

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 = return . fmap SVGPreserveAspectRatio . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGPreserveAspectRatio
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGPreserveAspectRatio where
  typeGType _ = gTypeSVGPreserveAspectRatio
  {-# INLINE typeGType #-}

noSVGPreserveAspectRatio :: Maybe SVGPreserveAspectRatio
noSVGPreserveAspectRatio = Nothing
{-# INLINE noSVGPreserveAspectRatio #-}

foreign import javascript unsafe "(() => globalThis[\"SVGPreserveAspectRatio\"])" gTypeSVGPreserveAspectRatio :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGRadialGradientElement" (SVG2).
newtype SVGRadialGradientElement = SVGRadialGradientElement { unSVGRadialGradientElement :: JSVal }

instance Eq SVGRadialGradientElement where
  (SVGRadialGradientElement a) == (SVGRadialGradientElement b) = js_eq a b

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 = return . fmap SVGRadialGradientElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGRadialGradientElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGradientElement SVGRadialGradientElement
instance IsSVGURIReference SVGRadialGradientElement
instance IsSVGElement SVGRadialGradientElement
instance IsElementCSSInlineStyle SVGRadialGradientElement
instance IsGlobalEventHandlers SVGRadialGradientElement
instance IsHTMLOrSVGOrMathMLElement SVGRadialGradientElement
instance IsElement SVGRadialGradientElement
instance IsARIAMixin SVGRadialGradientElement
instance IsARIANotifyMixin SVGRadialGradientElement
instance IsAnimatable SVGRadialGradientElement
instance IsChildNode SVGRadialGradientElement
instance IsNonDocumentTypeChildNode SVGRadialGradientElement
instance IsParentNode SVGRadialGradientElement
instance IsSlottable SVGRadialGradientElement
instance IsNode SVGRadialGradientElement
instance IsEventTarget SVGRadialGradientElement

instance IsGObject SVGRadialGradientElement where
  typeGType _ = gTypeSVGRadialGradientElement
  {-# INLINE typeGType #-}

noSVGRadialGradientElement :: Maybe SVGRadialGradientElement
noSVGRadialGradientElement = Nothing
{-# INLINE noSVGRadialGradientElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGRadialGradientElement\"])" gTypeSVGRadialGradientElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGRectElement" (SVG2).
newtype SVGRectElement = SVGRectElement { unSVGRectElement :: JSVal }

instance Eq SVGRectElement where
  (SVGRectElement a) == (SVGRectElement b) = js_eq a b

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 = return . fmap SVGRectElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGRectElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGeometryElement SVGRectElement
instance IsSVGGraphicsElement SVGRectElement
instance IsSVGTests SVGRectElement
instance IsSVGElement SVGRectElement
instance IsElementCSSInlineStyle SVGRectElement
instance IsGlobalEventHandlers SVGRectElement
instance IsHTMLOrSVGOrMathMLElement SVGRectElement
instance IsElement SVGRectElement
instance IsARIAMixin SVGRectElement
instance IsARIANotifyMixin SVGRectElement
instance IsAnimatable SVGRectElement
instance IsChildNode SVGRectElement
instance IsNonDocumentTypeChildNode SVGRectElement
instance IsParentNode SVGRectElement
instance IsSlottable SVGRectElement
instance IsNode SVGRectElement
instance IsEventTarget SVGRectElement

instance IsGObject SVGRectElement where
  typeGType _ = gTypeSVGRectElement
  {-# INLINE typeGType #-}

noSVGRectElement :: Maybe SVGRectElement
noSVGRectElement = Nothing
{-# INLINE noSVGRectElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGRectElement\"])" gTypeSVGRectElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGSVGElement" (SVG2).
newtype SVGSVGElement = SVGSVGElement { unSVGSVGElement :: JSVal }

instance Eq SVGSVGElement where
  (SVGSVGElement a) == (SVGSVGElement b) = js_eq a b

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 = return . fmap SVGSVGElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGSVGElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFitToViewBox SVGSVGElement
instance IsWindowEventHandlers SVGSVGElement
instance IsSVGGraphicsElement SVGSVGElement
instance IsSVGTests SVGSVGElement
instance IsSVGElement SVGSVGElement
instance IsElementCSSInlineStyle SVGSVGElement
instance IsGlobalEventHandlers SVGSVGElement
instance IsHTMLOrSVGOrMathMLElement SVGSVGElement
instance IsElement SVGSVGElement
instance IsARIAMixin SVGSVGElement
instance IsARIANotifyMixin SVGSVGElement
instance IsAnimatable SVGSVGElement
instance IsChildNode SVGSVGElement
instance IsNonDocumentTypeChildNode SVGSVGElement
instance IsParentNode SVGSVGElement
instance IsSlottable SVGSVGElement
instance IsNode SVGSVGElement
instance IsEventTarget SVGSVGElement

instance IsGObject SVGSVGElement where
  typeGType _ = gTypeSVGSVGElement
  {-# INLINE typeGType #-}

noSVGSVGElement :: Maybe SVGSVGElement
noSVGSVGElement = Nothing
{-# INLINE noSVGSVGElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGSVGElement\"])" gTypeSVGSVGElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGScriptElement" (SVG2).
newtype SVGScriptElement = SVGScriptElement { unSVGScriptElement :: JSVal }

instance Eq SVGScriptElement where
  (SVGScriptElement a) == (SVGScriptElement b) = js_eq a b

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 = return . fmap SVGScriptElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGScriptElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGURIReference SVGScriptElement
instance IsSVGElement SVGScriptElement
instance IsElementCSSInlineStyle SVGScriptElement
instance IsGlobalEventHandlers SVGScriptElement
instance IsHTMLOrSVGOrMathMLElement SVGScriptElement
instance IsElement SVGScriptElement
instance IsARIAMixin SVGScriptElement
instance IsARIANotifyMixin SVGScriptElement
instance IsAnimatable SVGScriptElement
instance IsChildNode SVGScriptElement
instance IsNonDocumentTypeChildNode SVGScriptElement
instance IsParentNode SVGScriptElement
instance IsSlottable SVGScriptElement
instance IsNode SVGScriptElement
instance IsEventTarget SVGScriptElement

instance IsGObject SVGScriptElement where
  typeGType _ = gTypeSVGScriptElement
  {-# INLINE typeGType #-}

noSVGScriptElement :: Maybe SVGScriptElement
noSVGScriptElement = Nothing
{-# INLINE noSVGScriptElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGScriptElement\"])" gTypeSVGScriptElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGSetElement" (svg-animations).
newtype SVGSetElement = SVGSetElement { unSVGSetElement :: JSVal }

instance Eq SVGSetElement where
  (SVGSetElement a) == (SVGSetElement b) = js_eq a b

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 = return . fmap SVGSetElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGSetElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGAnimationElement SVGSetElement
instance IsSVGTests SVGSetElement
instance IsSVGElement SVGSetElement
instance IsElementCSSInlineStyle SVGSetElement
instance IsGlobalEventHandlers SVGSetElement
instance IsHTMLOrSVGOrMathMLElement SVGSetElement
instance IsElement SVGSetElement
instance IsARIAMixin SVGSetElement
instance IsARIANotifyMixin SVGSetElement
instance IsAnimatable SVGSetElement
instance IsChildNode SVGSetElement
instance IsNonDocumentTypeChildNode SVGSetElement
instance IsParentNode SVGSetElement
instance IsSlottable SVGSetElement
instance IsNode SVGSetElement
instance IsEventTarget SVGSetElement

instance IsGObject SVGSetElement where
  typeGType _ = gTypeSVGSetElement
  {-# INLINE typeGType #-}

noSVGSetElement :: Maybe SVGSetElement
noSVGSetElement = Nothing
{-# INLINE noSVGSetElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGSetElement\"])" gTypeSVGSetElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGStopElement" (SVG2).
newtype SVGStopElement = SVGStopElement { unSVGStopElement :: JSVal }

instance Eq SVGStopElement where
  (SVGStopElement a) == (SVGStopElement b) = js_eq a b

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 = return . fmap SVGStopElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGStopElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGStopElement
instance IsElementCSSInlineStyle SVGStopElement
instance IsGlobalEventHandlers SVGStopElement
instance IsHTMLOrSVGOrMathMLElement SVGStopElement
instance IsElement SVGStopElement
instance IsARIAMixin SVGStopElement
instance IsARIANotifyMixin SVGStopElement
instance IsAnimatable SVGStopElement
instance IsChildNode SVGStopElement
instance IsNonDocumentTypeChildNode SVGStopElement
instance IsParentNode SVGStopElement
instance IsSlottable SVGStopElement
instance IsNode SVGStopElement
instance IsEventTarget SVGStopElement

instance IsGObject SVGStopElement where
  typeGType _ = gTypeSVGStopElement
  {-# INLINE typeGType #-}

noSVGStopElement :: Maybe SVGStopElement
noSVGStopElement = Nothing
{-# INLINE noSVGStopElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGStopElement\"])" gTypeSVGStopElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGStringList" (SVG2).
newtype SVGStringList = SVGStringList { unSVGStringList :: JSVal }

instance Eq SVGStringList where
  (SVGStringList a) == (SVGStringList b) = js_eq a b

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 = return . fmap SVGStringList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGStringList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGStringList where
  typeGType _ = gTypeSVGStringList
  {-# INLINE typeGType #-}

noSVGStringList :: Maybe SVGStringList
noSVGStringList = Nothing
{-# INLINE noSVGStringList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGStringList\"])" gTypeSVGStringList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGStyleElement" (SVG2).
newtype SVGStyleElement = SVGStyleElement { unSVGStyleElement :: JSVal }

instance Eq SVGStyleElement where
  (SVGStyleElement a) == (SVGStyleElement b) = js_eq a b

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 = return . fmap SVGStyleElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGStyleElement
  {-# INLINE fromJSValUnchecked #-}

instance IsLinkStyle SVGStyleElement
instance IsSVGElement SVGStyleElement
instance IsElementCSSInlineStyle SVGStyleElement
instance IsGlobalEventHandlers SVGStyleElement
instance IsHTMLOrSVGOrMathMLElement SVGStyleElement
instance IsElement SVGStyleElement
instance IsARIAMixin SVGStyleElement
instance IsARIANotifyMixin SVGStyleElement
instance IsAnimatable SVGStyleElement
instance IsChildNode SVGStyleElement
instance IsNonDocumentTypeChildNode SVGStyleElement
instance IsParentNode SVGStyleElement
instance IsSlottable SVGStyleElement
instance IsNode SVGStyleElement
instance IsEventTarget SVGStyleElement

instance IsGObject SVGStyleElement where
  typeGType _ = gTypeSVGStyleElement
  {-# INLINE typeGType #-}

noSVGStyleElement :: Maybe SVGStyleElement
noSVGStyleElement = Nothing
{-# INLINE noSVGStyleElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGStyleElement\"])" gTypeSVGStyleElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGSwitchElement" (SVG2).
newtype SVGSwitchElement = SVGSwitchElement { unSVGSwitchElement :: JSVal }

instance Eq SVGSwitchElement where
  (SVGSwitchElement a) == (SVGSwitchElement b) = js_eq a b

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 = return . fmap SVGSwitchElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGSwitchElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGGraphicsElement SVGSwitchElement
instance IsSVGTests SVGSwitchElement
instance IsSVGElement SVGSwitchElement
instance IsElementCSSInlineStyle SVGSwitchElement
instance IsGlobalEventHandlers SVGSwitchElement
instance IsHTMLOrSVGOrMathMLElement SVGSwitchElement
instance IsElement SVGSwitchElement
instance IsARIAMixin SVGSwitchElement
instance IsARIANotifyMixin SVGSwitchElement
instance IsAnimatable SVGSwitchElement
instance IsChildNode SVGSwitchElement
instance IsNonDocumentTypeChildNode SVGSwitchElement
instance IsParentNode SVGSwitchElement
instance IsSlottable SVGSwitchElement
instance IsNode SVGSwitchElement
instance IsEventTarget SVGSwitchElement

instance IsGObject SVGSwitchElement where
  typeGType _ = gTypeSVGSwitchElement
  {-# INLINE typeGType #-}

noSVGSwitchElement :: Maybe SVGSwitchElement
noSVGSwitchElement = Nothing
{-# INLINE noSVGSwitchElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGSwitchElement\"])" gTypeSVGSwitchElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGSymbolElement" (SVG2).
newtype SVGSymbolElement = SVGSymbolElement { unSVGSymbolElement :: JSVal }

instance Eq SVGSymbolElement where
  (SVGSymbolElement a) == (SVGSymbolElement b) = js_eq a b

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 = return . fmap SVGSymbolElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGSymbolElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFitToViewBox SVGSymbolElement
instance IsSVGGraphicsElement SVGSymbolElement
instance IsSVGTests SVGSymbolElement
instance IsSVGElement SVGSymbolElement
instance IsElementCSSInlineStyle SVGSymbolElement
instance IsGlobalEventHandlers SVGSymbolElement
instance IsHTMLOrSVGOrMathMLElement SVGSymbolElement
instance IsElement SVGSymbolElement
instance IsARIAMixin SVGSymbolElement
instance IsARIANotifyMixin SVGSymbolElement
instance IsAnimatable SVGSymbolElement
instance IsChildNode SVGSymbolElement
instance IsNonDocumentTypeChildNode SVGSymbolElement
instance IsParentNode SVGSymbolElement
instance IsSlottable SVGSymbolElement
instance IsNode SVGSymbolElement
instance IsEventTarget SVGSymbolElement

instance IsGObject SVGSymbolElement where
  typeGType _ = gTypeSVGSymbolElement
  {-# INLINE typeGType #-}

noSVGSymbolElement :: Maybe SVGSymbolElement
noSVGSymbolElement = Nothing
{-# INLINE noSVGSymbolElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGSymbolElement\"])" gTypeSVGSymbolElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTSpanElement" (SVG2).
newtype SVGTSpanElement = SVGTSpanElement { unSVGTSpanElement :: JSVal }

instance Eq SVGTSpanElement where
  (SVGTSpanElement a) == (SVGTSpanElement b) = js_eq a b

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 = return . fmap SVGTSpanElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTSpanElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGTextPositioningElement SVGTSpanElement
instance IsSVGTextContentElement SVGTSpanElement
instance IsSVGGraphicsElement SVGTSpanElement
instance IsSVGTests SVGTSpanElement
instance IsSVGElement SVGTSpanElement
instance IsElementCSSInlineStyle SVGTSpanElement
instance IsGlobalEventHandlers SVGTSpanElement
instance IsHTMLOrSVGOrMathMLElement SVGTSpanElement
instance IsElement SVGTSpanElement
instance IsARIAMixin SVGTSpanElement
instance IsARIANotifyMixin SVGTSpanElement
instance IsAnimatable SVGTSpanElement
instance IsChildNode SVGTSpanElement
instance IsNonDocumentTypeChildNode SVGTSpanElement
instance IsParentNode SVGTSpanElement
instance IsSlottable SVGTSpanElement
instance IsNode SVGTSpanElement
instance IsEventTarget SVGTSpanElement

instance IsGObject SVGTSpanElement where
  typeGType _ = gTypeSVGTSpanElement
  {-# INLINE typeGType #-}

noSVGTSpanElement :: Maybe SVGTSpanElement
noSVGTSpanElement = Nothing
{-# INLINE noSVGTSpanElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTSpanElement\"])" gTypeSVGTSpanElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTests" (SVG2).
newtype SVGTests = SVGTests { unSVGTests :: JSVal }

instance Eq SVGTests where
  (SVGTests a) == (SVGTests b) = js_eq a b

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 = return . fmap SVGTests . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTests
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSVGTests o
toSVGTests :: IsSVGTests o => o -> SVGTests
toSVGTests = SVGTests . coerce

instance IsSVGTests SVGTests

instance IsGObject SVGTests where
  typeGType _ = gTypeSVGTests
  {-# INLINE typeGType #-}

noSVGTests :: Maybe SVGTests
noSVGTests = Nothing
{-# INLINE noSVGTests #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSVGTests :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTextContentElement" (SVG2).
newtype SVGTextContentElement = SVGTextContentElement { unSVGTextContentElement :: JSVal }

instance Eq SVGTextContentElement where
  (SVGTextContentElement a) == (SVGTextContentElement b) = js_eq a b

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 = return . fmap SVGTextContentElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTextContentElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGGraphicsElement o, IsGObject o) => IsSVGTextContentElement o
toSVGTextContentElement :: IsSVGTextContentElement o => o -> SVGTextContentElement
toSVGTextContentElement = SVGTextContentElement . coerce

instance IsSVGTextContentElement SVGTextContentElement
instance IsSVGGraphicsElement SVGTextContentElement
instance IsSVGTests SVGTextContentElement
instance IsSVGElement SVGTextContentElement
instance IsElementCSSInlineStyle SVGTextContentElement
instance IsGlobalEventHandlers SVGTextContentElement
instance IsHTMLOrSVGOrMathMLElement SVGTextContentElement
instance IsElement SVGTextContentElement
instance IsARIAMixin SVGTextContentElement
instance IsARIANotifyMixin SVGTextContentElement
instance IsAnimatable SVGTextContentElement
instance IsChildNode SVGTextContentElement
instance IsNonDocumentTypeChildNode SVGTextContentElement
instance IsParentNode SVGTextContentElement
instance IsSlottable SVGTextContentElement
instance IsNode SVGTextContentElement
instance IsEventTarget SVGTextContentElement

instance IsGObject SVGTextContentElement where
  typeGType _ = gTypeSVGTextContentElement
  {-# INLINE typeGType #-}

noSVGTextContentElement :: Maybe SVGTextContentElement
noSVGTextContentElement = Nothing
{-# INLINE noSVGTextContentElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTextContentElement\"])" gTypeSVGTextContentElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTextElement" (SVG2).
newtype SVGTextElement = SVGTextElement { unSVGTextElement :: JSVal }

instance Eq SVGTextElement where
  (SVGTextElement a) == (SVGTextElement b) = js_eq a b

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 = return . fmap SVGTextElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTextElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGTextPositioningElement SVGTextElement
instance IsSVGTextContentElement SVGTextElement
instance IsSVGGraphicsElement SVGTextElement
instance IsSVGTests SVGTextElement
instance IsSVGElement SVGTextElement
instance IsElementCSSInlineStyle SVGTextElement
instance IsGlobalEventHandlers SVGTextElement
instance IsHTMLOrSVGOrMathMLElement SVGTextElement
instance IsElement SVGTextElement
instance IsARIAMixin SVGTextElement
instance IsARIANotifyMixin SVGTextElement
instance IsAnimatable SVGTextElement
instance IsChildNode SVGTextElement
instance IsNonDocumentTypeChildNode SVGTextElement
instance IsParentNode SVGTextElement
instance IsSlottable SVGTextElement
instance IsNode SVGTextElement
instance IsEventTarget SVGTextElement

instance IsGObject SVGTextElement where
  typeGType _ = gTypeSVGTextElement
  {-# INLINE typeGType #-}

noSVGTextElement :: Maybe SVGTextElement
noSVGTextElement = Nothing
{-# INLINE noSVGTextElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTextElement\"])" gTypeSVGTextElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTextPathElement" (SVG2).
newtype SVGTextPathElement = SVGTextPathElement { unSVGTextPathElement :: JSVal }

instance Eq SVGTextPathElement where
  (SVGTextPathElement a) == (SVGTextPathElement b) = js_eq a b

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 = return . fmap SVGTextPathElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTextPathElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGURIReference SVGTextPathElement
instance IsSVGTextContentElement SVGTextPathElement
instance IsSVGGraphicsElement SVGTextPathElement
instance IsSVGTests SVGTextPathElement
instance IsSVGElement SVGTextPathElement
instance IsElementCSSInlineStyle SVGTextPathElement
instance IsGlobalEventHandlers SVGTextPathElement
instance IsHTMLOrSVGOrMathMLElement SVGTextPathElement
instance IsElement SVGTextPathElement
instance IsARIAMixin SVGTextPathElement
instance IsARIANotifyMixin SVGTextPathElement
instance IsAnimatable SVGTextPathElement
instance IsChildNode SVGTextPathElement
instance IsNonDocumentTypeChildNode SVGTextPathElement
instance IsParentNode SVGTextPathElement
instance IsSlottable SVGTextPathElement
instance IsNode SVGTextPathElement
instance IsEventTarget SVGTextPathElement

instance IsGObject SVGTextPathElement where
  typeGType _ = gTypeSVGTextPathElement
  {-# INLINE typeGType #-}

noSVGTextPathElement :: Maybe SVGTextPathElement
noSVGTextPathElement = Nothing
{-# INLINE noSVGTextPathElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTextPathElement\"])" gTypeSVGTextPathElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTextPositioningElement" (SVG2).
newtype SVGTextPositioningElement = SVGTextPositioningElement { unSVGTextPositioningElement :: JSVal }

instance Eq SVGTextPositioningElement where
  (SVGTextPositioningElement a) == (SVGTextPositioningElement b) = js_eq a b

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 = return . fmap SVGTextPositioningElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTextPositioningElement
  {-# INLINE fromJSValUnchecked #-}

class (IsSVGTextContentElement o, IsGObject o) => IsSVGTextPositioningElement o
toSVGTextPositioningElement :: IsSVGTextPositioningElement o => o -> SVGTextPositioningElement
toSVGTextPositioningElement = SVGTextPositioningElement . coerce

instance IsSVGTextPositioningElement SVGTextPositioningElement
instance IsSVGTextContentElement SVGTextPositioningElement
instance IsSVGGraphicsElement SVGTextPositioningElement
instance IsSVGTests SVGTextPositioningElement
instance IsSVGElement SVGTextPositioningElement
instance IsElementCSSInlineStyle SVGTextPositioningElement
instance IsGlobalEventHandlers SVGTextPositioningElement
instance IsHTMLOrSVGOrMathMLElement SVGTextPositioningElement
instance IsElement SVGTextPositioningElement
instance IsARIAMixin SVGTextPositioningElement
instance IsARIANotifyMixin SVGTextPositioningElement
instance IsAnimatable SVGTextPositioningElement
instance IsChildNode SVGTextPositioningElement
instance IsNonDocumentTypeChildNode SVGTextPositioningElement
instance IsParentNode SVGTextPositioningElement
instance IsSlottable SVGTextPositioningElement
instance IsNode SVGTextPositioningElement
instance IsEventTarget SVGTextPositioningElement

instance IsGObject SVGTextPositioningElement where
  typeGType _ = gTypeSVGTextPositioningElement
  {-# INLINE typeGType #-}

noSVGTextPositioningElement :: Maybe SVGTextPositioningElement
noSVGTextPositioningElement = Nothing
{-# INLINE noSVGTextPositioningElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTextPositioningElement\"])" gTypeSVGTextPositioningElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTitleElement" (SVG2).
newtype SVGTitleElement = SVGTitleElement { unSVGTitleElement :: JSVal }

instance Eq SVGTitleElement where
  (SVGTitleElement a) == (SVGTitleElement b) = js_eq a b

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 = return . fmap SVGTitleElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTitleElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGElement SVGTitleElement
instance IsElementCSSInlineStyle SVGTitleElement
instance IsGlobalEventHandlers SVGTitleElement
instance IsHTMLOrSVGOrMathMLElement SVGTitleElement
instance IsElement SVGTitleElement
instance IsARIAMixin SVGTitleElement
instance IsARIANotifyMixin SVGTitleElement
instance IsAnimatable SVGTitleElement
instance IsChildNode SVGTitleElement
instance IsNonDocumentTypeChildNode SVGTitleElement
instance IsParentNode SVGTitleElement
instance IsSlottable SVGTitleElement
instance IsNode SVGTitleElement
instance IsEventTarget SVGTitleElement

instance IsGObject SVGTitleElement where
  typeGType _ = gTypeSVGTitleElement
  {-# INLINE typeGType #-}

noSVGTitleElement :: Maybe SVGTitleElement
noSVGTitleElement = Nothing
{-# INLINE noSVGTitleElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTitleElement\"])" gTypeSVGTitleElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTransform" (SVG2).
newtype SVGTransform = SVGTransform { unSVGTransform :: JSVal }

instance Eq SVGTransform where
  (SVGTransform a) == (SVGTransform b) = js_eq a b

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 = return . fmap SVGTransform . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTransform
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGTransform where
  typeGType _ = gTypeSVGTransform
  {-# INLINE typeGType #-}

noSVGTransform :: Maybe SVGTransform
noSVGTransform = Nothing
{-# INLINE noSVGTransform #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTransform\"])" gTypeSVGTransform :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGTransformList" (SVG2).
newtype SVGTransformList = SVGTransformList { unSVGTransformList :: JSVal }

instance Eq SVGTransformList where
  (SVGTransformList a) == (SVGTransformList b) = js_eq a b

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 = return . fmap SVGTransformList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGTransformList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGTransformList where
  typeGType _ = gTypeSVGTransformList
  {-# INLINE typeGType #-}

noSVGTransformList :: Maybe SVGTransformList
noSVGTransformList = Nothing
{-# INLINE noSVGTransformList #-}

foreign import javascript unsafe "(() => globalThis[\"SVGTransformList\"])" gTypeSVGTransformList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGURIReference" (SVG2).
newtype SVGURIReference = SVGURIReference { unSVGURIReference :: JSVal }

instance Eq SVGURIReference where
  (SVGURIReference a) == (SVGURIReference b) = js_eq a b

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 = return . fmap SVGURIReference . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGURIReference
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSVGURIReference o
toSVGURIReference :: IsSVGURIReference o => o -> SVGURIReference
toSVGURIReference = SVGURIReference . coerce

instance IsSVGURIReference SVGURIReference

instance IsGObject SVGURIReference where
  typeGType _ = gTypeSVGURIReference
  {-# INLINE typeGType #-}

noSVGURIReference :: Maybe SVGURIReference
noSVGURIReference = Nothing
{-# INLINE noSVGURIReference #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSVGURIReference :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGUnitTypes" (SVG2).
newtype SVGUnitTypes = SVGUnitTypes { unSVGUnitTypes :: JSVal }

instance Eq SVGUnitTypes where
  (SVGUnitTypes a) == (SVGUnitTypes b) = js_eq a b

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 = return . fmap SVGUnitTypes . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGUnitTypes
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SVGUnitTypes where
  typeGType _ = gTypeSVGUnitTypes
  {-# INLINE typeGType #-}

noSVGUnitTypes :: Maybe SVGUnitTypes
noSVGUnitTypes = Nothing
{-# INLINE noSVGUnitTypes #-}

foreign import javascript unsafe "(() => globalThis[\"SVGUnitTypes\"])" gTypeSVGUnitTypes :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGUseElement" (SVG2).
newtype SVGUseElement = SVGUseElement { unSVGUseElement :: JSVal }

instance Eq SVGUseElement where
  (SVGUseElement a) == (SVGUseElement b) = js_eq a b

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 = return . fmap SVGUseElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGUseElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGURIReference SVGUseElement
instance IsSVGGraphicsElement SVGUseElement
instance IsSVGTests SVGUseElement
instance IsSVGElement SVGUseElement
instance IsElementCSSInlineStyle SVGUseElement
instance IsGlobalEventHandlers SVGUseElement
instance IsHTMLOrSVGOrMathMLElement SVGUseElement
instance IsElement SVGUseElement
instance IsARIAMixin SVGUseElement
instance IsARIANotifyMixin SVGUseElement
instance IsAnimatable SVGUseElement
instance IsChildNode SVGUseElement
instance IsNonDocumentTypeChildNode SVGUseElement
instance IsParentNode SVGUseElement
instance IsSlottable SVGUseElement
instance IsNode SVGUseElement
instance IsEventTarget SVGUseElement

instance IsGObject SVGUseElement where
  typeGType _ = gTypeSVGUseElement
  {-# INLINE typeGType #-}

noSVGUseElement :: Maybe SVGUseElement
noSVGUseElement = Nothing
{-# INLINE noSVGUseElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGUseElement\"])" gTypeSVGUseElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.SVGViewElement" (SVG2).
newtype SVGViewElement = SVGViewElement { unSVGViewElement :: JSVal }

instance Eq SVGViewElement where
  (SVGViewElement a) == (SVGViewElement b) = js_eq a b

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 = return . fmap SVGViewElement . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SVGViewElement
  {-# INLINE fromJSValUnchecked #-}

instance IsSVGFitToViewBox SVGViewElement
instance IsSVGElement SVGViewElement
instance IsElementCSSInlineStyle SVGViewElement
instance IsGlobalEventHandlers SVGViewElement
instance IsHTMLOrSVGOrMathMLElement SVGViewElement
instance IsElement SVGViewElement
instance IsARIAMixin SVGViewElement
instance IsARIANotifyMixin SVGViewElement
instance IsAnimatable SVGViewElement
instance IsChildNode SVGViewElement
instance IsNonDocumentTypeChildNode SVGViewElement
instance IsParentNode SVGViewElement
instance IsSlottable SVGViewElement
instance IsNode SVGViewElement
instance IsEventTarget SVGViewElement

instance IsGObject SVGViewElement where
  typeGType _ = gTypeSVGViewElement
  {-# INLINE typeGType #-}

noSVGViewElement :: Maybe SVGViewElement
noSVGViewElement = Nothing
{-# INLINE noSVGViewElement #-}

foreign import javascript unsafe "(() => globalThis[\"SVGViewElement\"])" gTypeSVGViewElement :: GType

-- | Functions for this interface are in "GHCJS.DOM.Sanitizer" (html).
newtype Sanitizer = Sanitizer { unSanitizer :: JSVal }

instance Eq Sanitizer where
  (Sanitizer a) == (Sanitizer b) = js_eq a b

instance PToJSVal Sanitizer where
  pToJSVal = unSanitizer
  {-# INLINE pToJSVal #-}

instance PFromJSVal Sanitizer where
  pFromJSVal = Sanitizer
  {-# INLINE pFromJSVal #-}

instance ToJSVal Sanitizer where
  toJSVal = return . unSanitizer
  {-# INLINE toJSVal #-}

instance FromJSVal Sanitizer where
  fromJSVal = return . fmap Sanitizer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Sanitizer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Sanitizer where
  typeGType _ = gTypeSanitizer
  {-# INLINE typeGType #-}

noSanitizer :: Maybe Sanitizer
noSanitizer = Nothing
{-# INLINE noSanitizer #-}

foreign import javascript unsafe "(() => globalThis[\"Sanitizer\"])" gTypeSanitizer :: GType

-- | Dictionary SanitizerAttributeNamespace (html)
newtype SanitizerAttributeNamespace = SanitizerAttributeNamespace { unSanitizerAttributeNamespace :: JSVal }

instance Eq SanitizerAttributeNamespace where
  (SanitizerAttributeNamespace a) == (SanitizerAttributeNamespace b) = js_eq a b

instance PToJSVal SanitizerAttributeNamespace where
  pToJSVal = unSanitizerAttributeNamespace
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerAttributeNamespace where
  pFromJSVal = SanitizerAttributeNamespace
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerAttributeNamespace where
  toJSVal = return . unSanitizerAttributeNamespace
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerAttributeNamespace where
  fromJSVal = return . fmap SanitizerAttributeNamespace . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerAttributeNamespace
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SanitizerAttributeNamespace where
  typeGType _ = gTypeSanitizerAttributeNamespace
  {-# INLINE typeGType #-}

noSanitizerAttributeNamespace :: Maybe SanitizerAttributeNamespace
noSanitizerAttributeNamespace = Nothing
{-# INLINE noSanitizerAttributeNamespace #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSanitizerAttributeNamespace :: GType

-- | Dictionary SanitizerConfig (html)
newtype SanitizerConfig = SanitizerConfig { unSanitizerConfig :: JSVal }

instance Eq SanitizerConfig where
  (SanitizerConfig a) == (SanitizerConfig b) = js_eq a b

instance PToJSVal SanitizerConfig where
  pToJSVal = unSanitizerConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerConfig where
  pFromJSVal = SanitizerConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerConfig where
  toJSVal = return . unSanitizerConfig
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerConfig where
  fromJSVal = return . fmap SanitizerConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SanitizerConfig where
  typeGType _ = gTypeSanitizerConfig
  {-# INLINE typeGType #-}

noSanitizerConfig :: Maybe SanitizerConfig
noSanitizerConfig = Nothing
{-# INLINE noSanitizerConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSanitizerConfig :: GType

-- | Dictionary SanitizerElementNamespace (html)
newtype SanitizerElementNamespace = SanitizerElementNamespace { unSanitizerElementNamespace :: JSVal }

instance Eq SanitizerElementNamespace where
  (SanitizerElementNamespace a) == (SanitizerElementNamespace b) = js_eq a b

instance PToJSVal SanitizerElementNamespace where
  pToJSVal = unSanitizerElementNamespace
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerElementNamespace where
  pFromJSVal = SanitizerElementNamespace
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerElementNamespace where
  toJSVal = return . unSanitizerElementNamespace
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerElementNamespace where
  fromJSVal = return . fmap SanitizerElementNamespace . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerElementNamespace
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSanitizerElementNamespace o
toSanitizerElementNamespace :: IsSanitizerElementNamespace o => o -> SanitizerElementNamespace
toSanitizerElementNamespace = SanitizerElementNamespace . coerce

instance IsSanitizerElementNamespace SanitizerElementNamespace

instance IsGObject SanitizerElementNamespace where
  typeGType _ = gTypeSanitizerElementNamespace
  {-# INLINE typeGType #-}

noSanitizerElementNamespace :: Maybe SanitizerElementNamespace
noSanitizerElementNamespace = Nothing
{-# INLINE noSanitizerElementNamespace #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSanitizerElementNamespace :: GType

-- | Dictionary SanitizerElementNamespaceWithAttributes (html)
newtype SanitizerElementNamespaceWithAttributes = SanitizerElementNamespaceWithAttributes { unSanitizerElementNamespaceWithAttributes :: JSVal }

instance Eq SanitizerElementNamespaceWithAttributes where
  (SanitizerElementNamespaceWithAttributes a) == (SanitizerElementNamespaceWithAttributes b) = js_eq a b

instance PToJSVal SanitizerElementNamespaceWithAttributes where
  pToJSVal = unSanitizerElementNamespaceWithAttributes
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerElementNamespaceWithAttributes where
  pFromJSVal = SanitizerElementNamespaceWithAttributes
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerElementNamespaceWithAttributes where
  toJSVal = return . unSanitizerElementNamespaceWithAttributes
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerElementNamespaceWithAttributes where
  fromJSVal = return . fmap SanitizerElementNamespaceWithAttributes . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerElementNamespaceWithAttributes
  {-# INLINE fromJSValUnchecked #-}

instance IsSanitizerElementNamespace SanitizerElementNamespaceWithAttributes

instance IsGObject SanitizerElementNamespaceWithAttributes where
  typeGType _ = gTypeSanitizerElementNamespaceWithAttributes
  {-# INLINE typeGType #-}

noSanitizerElementNamespaceWithAttributes :: Maybe SanitizerElementNamespaceWithAttributes
noSanitizerElementNamespaceWithAttributes = Nothing
{-# INLINE noSanitizerElementNamespaceWithAttributes #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSanitizerElementNamespaceWithAttributes :: GType

-- | Dictionary SanitizerProcessingInstruction (html)
newtype SanitizerProcessingInstruction = SanitizerProcessingInstruction { unSanitizerProcessingInstruction :: JSVal }

instance Eq SanitizerProcessingInstruction where
  (SanitizerProcessingInstruction a) == (SanitizerProcessingInstruction b) = js_eq a b

instance PToJSVal SanitizerProcessingInstruction where
  pToJSVal = unSanitizerProcessingInstruction
  {-# INLINE pToJSVal #-}

instance PFromJSVal SanitizerProcessingInstruction where
  pFromJSVal = SanitizerProcessingInstruction
  {-# INLINE pFromJSVal #-}

instance ToJSVal SanitizerProcessingInstruction where
  toJSVal = return . unSanitizerProcessingInstruction
  {-# INLINE toJSVal #-}

instance FromJSVal SanitizerProcessingInstruction where
  fromJSVal = return . fmap SanitizerProcessingInstruction . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SanitizerProcessingInstruction
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SanitizerProcessingInstruction where
  typeGType _ = gTypeSanitizerProcessingInstruction
  {-# INLINE typeGType #-}

noSanitizerProcessingInstruction :: Maybe SanitizerProcessingInstruction
noSanitizerProcessingInstruction = Nothing
{-# INLINE noSanitizerProcessingInstruction #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSanitizerProcessingInstruction :: GType

-- | Functions for this interface are in "GHCJS.DOM.Scheduler" (scheduling-apis).
newtype Scheduler = Scheduler { unScheduler :: JSVal }

instance Eq Scheduler where
  (Scheduler a) == (Scheduler b) = js_eq a b

instance PToJSVal Scheduler where
  pToJSVal = unScheduler
  {-# INLINE pToJSVal #-}

instance PFromJSVal Scheduler where
  pFromJSVal = Scheduler
  {-# INLINE pFromJSVal #-}

instance ToJSVal Scheduler where
  toJSVal = return . unScheduler
  {-# INLINE toJSVal #-}

instance FromJSVal Scheduler where
  fromJSVal = return . fmap Scheduler . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Scheduler
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Scheduler where
  typeGType _ = gTypeScheduler
  {-# INLINE typeGType #-}

noScheduler :: Maybe Scheduler
noScheduler = Nothing
{-# INLINE noScheduler #-}

foreign import javascript unsafe "(() => globalThis[\"Scheduler\"])" gTypeScheduler :: GType

-- | Dictionary SchedulerPostTaskOptions (scheduling-apis)
newtype SchedulerPostTaskOptions = SchedulerPostTaskOptions { unSchedulerPostTaskOptions :: JSVal }

instance Eq SchedulerPostTaskOptions where
  (SchedulerPostTaskOptions a) == (SchedulerPostTaskOptions b) = js_eq a b

instance PToJSVal SchedulerPostTaskOptions where
  pToJSVal = unSchedulerPostTaskOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SchedulerPostTaskOptions where
  pFromJSVal = SchedulerPostTaskOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SchedulerPostTaskOptions where
  toJSVal = return . unSchedulerPostTaskOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SchedulerPostTaskOptions where
  fromJSVal = return . fmap SchedulerPostTaskOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SchedulerPostTaskOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SchedulerPostTaskOptions where
  typeGType _ = gTypeSchedulerPostTaskOptions
  {-# INLINE typeGType #-}

noSchedulerPostTaskOptions :: Maybe SchedulerPostTaskOptions
noSchedulerPostTaskOptions = Nothing
{-# INLINE noSchedulerPostTaskOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSchedulerPostTaskOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Screen" (cssom-view-1).
newtype Screen = Screen { unScreen :: JSVal }

instance Eq Screen where
  (Screen a) == (Screen b) = js_eq a b

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 = return . fmap Screen . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Screen
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsScreen o
toScreen :: IsScreen o => o -> Screen
toScreen = Screen . coerce

instance IsScreen Screen

instance IsGObject Screen where
  typeGType _ = gTypeScreen
  {-# INLINE typeGType #-}

noScreen :: Maybe Screen
noScreen = Nothing
{-# INLINE noScreen #-}

foreign import javascript unsafe "(() => globalThis[\"Screen\"])" gTypeScreen :: GType

-- | Functions for this interface are in "GHCJS.DOM.ScreenDetailed" (window-management).
newtype ScreenDetailed = ScreenDetailed { unScreenDetailed :: JSVal }

instance Eq ScreenDetailed where
  (ScreenDetailed a) == (ScreenDetailed b) = js_eq a b

instance PToJSVal ScreenDetailed where
  pToJSVal = unScreenDetailed
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScreenDetailed where
  pFromJSVal = ScreenDetailed
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScreenDetailed where
  toJSVal = return . unScreenDetailed
  {-# INLINE toJSVal #-}

instance FromJSVal ScreenDetailed where
  fromJSVal = return . fmap ScreenDetailed . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScreenDetailed
  {-# INLINE fromJSValUnchecked #-}

instance IsScreen ScreenDetailed

instance IsGObject ScreenDetailed where
  typeGType _ = gTypeScreenDetailed
  {-# INLINE typeGType #-}

noScreenDetailed :: Maybe ScreenDetailed
noScreenDetailed = Nothing
{-# INLINE noScreenDetailed #-}

foreign import javascript unsafe "(() => globalThis[\"ScreenDetailed\"])" gTypeScreenDetailed :: GType

-- | Functions for this interface are in "GHCJS.DOM.ScreenOrientation" (screen-orientation).
newtype ScreenOrientation = ScreenOrientation { unScreenOrientation :: JSVal }

instance Eq ScreenOrientation where
  (ScreenOrientation a) == (ScreenOrientation b) = js_eq a b

instance PToJSVal ScreenOrientation where
  pToJSVal = unScreenOrientation
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScreenOrientation where
  pFromJSVal = ScreenOrientation
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScreenOrientation where
  toJSVal = return . unScreenOrientation
  {-# INLINE toJSVal #-}

instance FromJSVal ScreenOrientation where
  fromJSVal = return . fmap ScreenOrientation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScreenOrientation
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget ScreenOrientation

instance IsGObject ScreenOrientation where
  typeGType _ = gTypeScreenOrientation
  {-# INLINE typeGType #-}

noScreenOrientation :: Maybe ScreenOrientation
noScreenOrientation = Nothing
{-# INLINE noScreenOrientation #-}

foreign import javascript unsafe "(() => globalThis[\"ScreenOrientation\"])" gTypeScreenOrientation :: GType

-- | Functions for this interface are in "GHCJS.DOM.ScriptProcessorNode" (webaudio-1.1).
newtype ScriptProcessorNode = ScriptProcessorNode { unScriptProcessorNode :: JSVal }

instance Eq ScriptProcessorNode where
  (ScriptProcessorNode a) == (ScriptProcessorNode b) = js_eq a b

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 = return . fmap ScriptProcessorNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScriptProcessorNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode ScriptProcessorNode
instance IsEventTarget ScriptProcessorNode

instance IsGObject ScriptProcessorNode where
  typeGType _ = gTypeScriptProcessorNode
  {-# INLINE typeGType #-}

noScriptProcessorNode :: Maybe ScriptProcessorNode
noScriptProcessorNode = Nothing
{-# INLINE noScriptProcessorNode #-}

foreign import javascript unsafe "(() => globalThis[\"ScriptProcessorNode\"])" gTypeScriptProcessorNode :: GType

-- | Dictionary ScrollIntoViewOptions (cssom-view-1)
newtype ScrollIntoViewOptions = ScrollIntoViewOptions { unScrollIntoViewOptions :: JSVal }

instance Eq ScrollIntoViewOptions where
  (ScrollIntoViewOptions a) == (ScrollIntoViewOptions b) = js_eq a b

instance PToJSVal ScrollIntoViewOptions where
  pToJSVal = unScrollIntoViewOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScrollIntoViewOptions where
  pFromJSVal = ScrollIntoViewOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScrollIntoViewOptions where
  toJSVal = return . unScrollIntoViewOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ScrollIntoViewOptions where
  fromJSVal = return . fmap ScrollIntoViewOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScrollIntoViewOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsScrollOptions ScrollIntoViewOptions

instance IsGObject ScrollIntoViewOptions where
  typeGType _ = gTypeScrollIntoViewOptions
  {-# INLINE typeGType #-}

noScrollIntoViewOptions :: Maybe ScrollIntoViewOptions
noScrollIntoViewOptions = Nothing
{-# INLINE noScrollIntoViewOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeScrollIntoViewOptions :: GType

-- | Dictionary ScrollOptions (cssom-view-1)
newtype ScrollOptions = ScrollOptions { unScrollOptions :: JSVal }

instance Eq ScrollOptions where
  (ScrollOptions a) == (ScrollOptions b) = js_eq a b

instance PToJSVal ScrollOptions where
  pToJSVal = unScrollOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScrollOptions where
  pFromJSVal = ScrollOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScrollOptions where
  toJSVal = return . unScrollOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ScrollOptions where
  fromJSVal = return . fmap ScrollOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScrollOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsScrollOptions o
toScrollOptions :: IsScrollOptions o => o -> ScrollOptions
toScrollOptions = ScrollOptions . coerce

instance IsScrollOptions ScrollOptions

instance IsGObject ScrollOptions where
  typeGType _ = gTypeScrollOptions
  {-# INLINE typeGType #-}

noScrollOptions :: Maybe ScrollOptions
noScrollOptions = Nothing
{-# INLINE noScrollOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeScrollOptions :: GType

-- | Dictionary ScrollResult (cssom-view-1)
newtype ScrollResult = ScrollResult { unScrollResult :: JSVal }

instance Eq ScrollResult where
  (ScrollResult a) == (ScrollResult b) = js_eq a b

instance PToJSVal ScrollResult where
  pToJSVal = unScrollResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScrollResult where
  pFromJSVal = ScrollResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScrollResult where
  toJSVal = return . unScrollResult
  {-# INLINE toJSVal #-}

instance FromJSVal ScrollResult where
  fromJSVal = return . fmap ScrollResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScrollResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ScrollResult where
  typeGType _ = gTypeScrollResult
  {-# INLINE typeGType #-}

noScrollResult :: Maybe ScrollResult
noScrollResult = Nothing
{-# INLINE noScrollResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeScrollResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.ScrollTimeline" (scroll-animations-1).
newtype ScrollTimeline = ScrollTimeline { unScrollTimeline :: JSVal }

instance Eq ScrollTimeline where
  (ScrollTimeline a) == (ScrollTimeline b) = js_eq a b

instance PToJSVal ScrollTimeline where
  pToJSVal = unScrollTimeline
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScrollTimeline where
  pFromJSVal = ScrollTimeline
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScrollTimeline where
  toJSVal = return . unScrollTimeline
  {-# INLINE toJSVal #-}

instance FromJSVal ScrollTimeline where
  fromJSVal = return . fmap ScrollTimeline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScrollTimeline
  {-# INLINE fromJSValUnchecked #-}

class (IsAnimationTimeline o, IsGObject o) => IsScrollTimeline o
toScrollTimeline :: IsScrollTimeline o => o -> ScrollTimeline
toScrollTimeline = ScrollTimeline . coerce

instance IsScrollTimeline ScrollTimeline
instance IsAnimationTimeline ScrollTimeline

instance IsGObject ScrollTimeline where
  typeGType _ = gTypeScrollTimeline
  {-# INLINE typeGType #-}

noScrollTimeline :: Maybe ScrollTimeline
noScrollTimeline = Nothing
{-# INLINE noScrollTimeline #-}

foreign import javascript unsafe "(() => globalThis[\"ScrollTimeline\"])" gTypeScrollTimeline :: GType

-- | Dictionary ScrollTimelineOptions (scroll-animations-1)
newtype ScrollTimelineOptions = ScrollTimelineOptions { unScrollTimelineOptions :: JSVal }

instance Eq ScrollTimelineOptions where
  (ScrollTimelineOptions a) == (ScrollTimelineOptions b) = js_eq a b

instance PToJSVal ScrollTimelineOptions where
  pToJSVal = unScrollTimelineOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScrollTimelineOptions where
  pFromJSVal = ScrollTimelineOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScrollTimelineOptions where
  toJSVal = return . unScrollTimelineOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ScrollTimelineOptions where
  fromJSVal = return . fmap ScrollTimelineOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScrollTimelineOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ScrollTimelineOptions where
  typeGType _ = gTypeScrollTimelineOptions
  {-# INLINE typeGType #-}

noScrollTimelineOptions :: Maybe ScrollTimelineOptions
noScrollTimelineOptions = Nothing
{-# INLINE noScrollTimelineOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeScrollTimelineOptions :: GType

-- | Dictionary ScrollToOptions (cssom-view-1)
newtype ScrollToOptions = ScrollToOptions { unScrollToOptions :: JSVal }

instance Eq ScrollToOptions where
  (ScrollToOptions a) == (ScrollToOptions b) = js_eq a b

instance PToJSVal ScrollToOptions where
  pToJSVal = unScrollToOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ScrollToOptions where
  pFromJSVal = ScrollToOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ScrollToOptions where
  toJSVal = return . unScrollToOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ScrollToOptions where
  fromJSVal = return . fmap ScrollToOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ScrollToOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsScrollOptions ScrollToOptions

instance IsGObject ScrollToOptions where
  typeGType _ = gTypeScrollToOptions
  {-# INLINE typeGType #-}

noScrollToOptions :: Maybe ScrollToOptions
noScrollToOptions = Nothing
{-# INLINE noScrollToOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeScrollToOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.SecurityPolicyViolationEvent" (CSP3).
newtype SecurityPolicyViolationEvent = SecurityPolicyViolationEvent { unSecurityPolicyViolationEvent :: JSVal }

instance Eq SecurityPolicyViolationEvent where
  (SecurityPolicyViolationEvent a) == (SecurityPolicyViolationEvent b) = js_eq a b

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 = return . fmap SecurityPolicyViolationEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SecurityPolicyViolationEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent SecurityPolicyViolationEvent

instance IsGObject SecurityPolicyViolationEvent where
  typeGType _ = gTypeSecurityPolicyViolationEvent
  {-# INLINE typeGType #-}

noSecurityPolicyViolationEvent :: Maybe SecurityPolicyViolationEvent
noSecurityPolicyViolationEvent = Nothing
{-# INLINE noSecurityPolicyViolationEvent #-}

foreign import javascript unsafe "(() => globalThis[\"SecurityPolicyViolationEvent\"])" gTypeSecurityPolicyViolationEvent :: GType

-- | Dictionary SecurityPolicyViolationEventInit (CSP3)
newtype SecurityPolicyViolationEventInit = SecurityPolicyViolationEventInit { unSecurityPolicyViolationEventInit :: JSVal }

instance Eq SecurityPolicyViolationEventInit where
  (SecurityPolicyViolationEventInit a) == (SecurityPolicyViolationEventInit b) = js_eq a b

instance PToJSVal SecurityPolicyViolationEventInit where
  pToJSVal = unSecurityPolicyViolationEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal SecurityPolicyViolationEventInit where
  pFromJSVal = SecurityPolicyViolationEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal SecurityPolicyViolationEventInit where
  toJSVal = return . unSecurityPolicyViolationEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal SecurityPolicyViolationEventInit where
  fromJSVal = return . fmap SecurityPolicyViolationEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SecurityPolicyViolationEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit SecurityPolicyViolationEventInit

instance IsGObject SecurityPolicyViolationEventInit where
  typeGType _ = gTypeSecurityPolicyViolationEventInit
  {-# INLINE typeGType #-}

noSecurityPolicyViolationEventInit :: Maybe SecurityPolicyViolationEventInit
noSecurityPolicyViolationEventInit = Nothing
{-# INLINE noSecurityPolicyViolationEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSecurityPolicyViolationEventInit :: GType

-- | Dictionary Segment (mediacapture-extensions)
newtype Segment = Segment { unSegment :: JSVal }

instance Eq Segment where
  (Segment a) == (Segment b) = js_eq a b

instance PToJSVal Segment where
  pToJSVal = unSegment
  {-# INLINE pToJSVal #-}

instance PFromJSVal Segment where
  pFromJSVal = Segment
  {-# INLINE pFromJSVal #-}

instance ToJSVal Segment where
  toJSVal = return . unSegment
  {-# INLINE toJSVal #-}

instance FromJSVal Segment where
  fromJSVal = return . fmap Segment . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Segment
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Segment where
  typeGType _ = gTypeSegment
  {-# INLINE typeGType #-}

noSegment :: Maybe Segment
noSegment = Nothing
{-# INLINE noSegment #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSegment :: GType

-- | Functions for this interface are in "GHCJS.DOM.Selection" (selection-api).
newtype Selection = Selection { unSelection :: JSVal }

instance Eq Selection where
  (Selection a) == (Selection b) = js_eq a b

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 = return . fmap Selection . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Selection
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Selection where
  typeGType _ = gTypeSelection
  {-# INLINE typeGType #-}

noSelection :: Maybe Selection
noSelection = Nothing
{-# INLINE noSelection #-}

foreign import javascript unsafe "(() => globalThis[\"Selection\"])" gTypeSelection :: GType

-- | Functions for this interface are in "GHCJS.DOM.Serial" (serial).
newtype Serial = Serial { unSerial :: JSVal }

instance Eq Serial where
  (Serial a) == (Serial b) = js_eq a b

instance PToJSVal Serial where
  pToJSVal = unSerial
  {-# INLINE pToJSVal #-}

instance PFromJSVal Serial where
  pFromJSVal = Serial
  {-# INLINE pFromJSVal #-}

instance ToJSVal Serial where
  toJSVal = return . unSerial
  {-# INLINE toJSVal #-}

instance FromJSVal Serial where
  fromJSVal = return . fmap Serial . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Serial
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget Serial

instance IsGObject Serial where
  typeGType _ = gTypeSerial
  {-# INLINE typeGType #-}

noSerial :: Maybe Serial
noSerial = Nothing
{-# INLINE noSerial #-}

foreign import javascript unsafe "(() => globalThis[\"Serial\"])" gTypeSerial :: GType

-- | Dictionary SerialInputSignals (serial)
newtype SerialInputSignals = SerialInputSignals { unSerialInputSignals :: JSVal }

instance Eq SerialInputSignals where
  (SerialInputSignals a) == (SerialInputSignals b) = js_eq a b

instance PToJSVal SerialInputSignals where
  pToJSVal = unSerialInputSignals
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialInputSignals where
  pFromJSVal = SerialInputSignals
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialInputSignals where
  toJSVal = return . unSerialInputSignals
  {-# INLINE toJSVal #-}

instance FromJSVal SerialInputSignals where
  fromJSVal = return . fmap SerialInputSignals . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialInputSignals
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SerialInputSignals where
  typeGType _ = gTypeSerialInputSignals
  {-# INLINE typeGType #-}

noSerialInputSignals :: Maybe SerialInputSignals
noSerialInputSignals = Nothing
{-# INLINE noSerialInputSignals #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSerialInputSignals :: GType

-- | Dictionary SerialOptions (serial)
newtype SerialOptions = SerialOptions { unSerialOptions :: JSVal }

instance Eq SerialOptions where
  (SerialOptions a) == (SerialOptions b) = js_eq a b

instance PToJSVal SerialOptions where
  pToJSVal = unSerialOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialOptions where
  pFromJSVal = SerialOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialOptions where
  toJSVal = return . unSerialOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SerialOptions where
  fromJSVal = return . fmap SerialOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SerialOptions where
  typeGType _ = gTypeSerialOptions
  {-# INLINE typeGType #-}

noSerialOptions :: Maybe SerialOptions
noSerialOptions = Nothing
{-# INLINE noSerialOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSerialOptions :: GType

-- | Dictionary SerialOutputSignals (serial)
newtype SerialOutputSignals = SerialOutputSignals { unSerialOutputSignals :: JSVal }

instance Eq SerialOutputSignals where
  (SerialOutputSignals a) == (SerialOutputSignals b) = js_eq a b

instance PToJSVal SerialOutputSignals where
  pToJSVal = unSerialOutputSignals
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialOutputSignals where
  pFromJSVal = SerialOutputSignals
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialOutputSignals where
  toJSVal = return . unSerialOutputSignals
  {-# INLINE toJSVal #-}

instance FromJSVal SerialOutputSignals where
  fromJSVal = return . fmap SerialOutputSignals . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialOutputSignals
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SerialOutputSignals where
  typeGType _ = gTypeSerialOutputSignals
  {-# INLINE typeGType #-}

noSerialOutputSignals :: Maybe SerialOutputSignals
noSerialOutputSignals = Nothing
{-# INLINE noSerialOutputSignals #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSerialOutputSignals :: GType

-- | Functions for this interface are in "GHCJS.DOM.SerialPort" (serial).
newtype SerialPort = SerialPort { unSerialPort :: JSVal }

instance Eq SerialPort where
  (SerialPort a) == (SerialPort b) = js_eq a b

instance PToJSVal SerialPort where
  pToJSVal = unSerialPort
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialPort where
  pFromJSVal = SerialPort
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialPort where
  toJSVal = return . unSerialPort
  {-# INLINE toJSVal #-}

instance FromJSVal SerialPort where
  fromJSVal = return . fmap SerialPort . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialPort
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget SerialPort

instance IsGObject SerialPort where
  typeGType _ = gTypeSerialPort
  {-# INLINE typeGType #-}

noSerialPort :: Maybe SerialPort
noSerialPort = Nothing
{-# INLINE noSerialPort #-}

foreign import javascript unsafe "(() => globalThis[\"SerialPort\"])" gTypeSerialPort :: GType

-- | Dictionary SerialPortFilter (serial)
newtype SerialPortFilter = SerialPortFilter { unSerialPortFilter :: JSVal }

instance Eq SerialPortFilter where
  (SerialPortFilter a) == (SerialPortFilter b) = js_eq a b

instance PToJSVal SerialPortFilter where
  pToJSVal = unSerialPortFilter
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialPortFilter where
  pFromJSVal = SerialPortFilter
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialPortFilter where
  toJSVal = return . unSerialPortFilter
  {-# INLINE toJSVal #-}

instance FromJSVal SerialPortFilter where
  fromJSVal = return . fmap SerialPortFilter . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialPortFilter
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SerialPortFilter where
  typeGType _ = gTypeSerialPortFilter
  {-# INLINE typeGType #-}

noSerialPortFilter :: Maybe SerialPortFilter
noSerialPortFilter = Nothing
{-# INLINE noSerialPortFilter #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSerialPortFilter :: GType

-- | Dictionary SerialPortInfo (serial)
newtype SerialPortInfo = SerialPortInfo { unSerialPortInfo :: JSVal }

instance Eq SerialPortInfo where
  (SerialPortInfo a) == (SerialPortInfo b) = js_eq a b

instance PToJSVal SerialPortInfo where
  pToJSVal = unSerialPortInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialPortInfo where
  pFromJSVal = SerialPortInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialPortInfo where
  toJSVal = return . unSerialPortInfo
  {-# INLINE toJSVal #-}

instance FromJSVal SerialPortInfo where
  fromJSVal = return . fmap SerialPortInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialPortInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SerialPortInfo where
  typeGType _ = gTypeSerialPortInfo
  {-# INLINE typeGType #-}

noSerialPortInfo :: Maybe SerialPortInfo
noSerialPortInfo = Nothing
{-# INLINE noSerialPortInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSerialPortInfo :: GType

-- | Dictionary SerialPortRequestOptions (serial)
newtype SerialPortRequestOptions = SerialPortRequestOptions { unSerialPortRequestOptions :: JSVal }

instance Eq SerialPortRequestOptions where
  (SerialPortRequestOptions a) == (SerialPortRequestOptions b) = js_eq a b

instance PToJSVal SerialPortRequestOptions where
  pToJSVal = unSerialPortRequestOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SerialPortRequestOptions where
  pFromJSVal = SerialPortRequestOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SerialPortRequestOptions where
  toJSVal = return . unSerialPortRequestOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SerialPortRequestOptions where
  fromJSVal = return . fmap SerialPortRequestOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SerialPortRequestOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SerialPortRequestOptions where
  typeGType _ = gTypeSerialPortRequestOptions
  {-# INLINE typeGType #-}

noSerialPortRequestOptions :: Maybe SerialPortRequestOptions
noSerialPortRequestOptions = Nothing
{-# INLINE noSerialPortRequestOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSerialPortRequestOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ServiceWorker" (service-workers).
newtype ServiceWorker = ServiceWorker { unServiceWorker :: JSVal }

instance Eq ServiceWorker where
  (ServiceWorker a) == (ServiceWorker b) = js_eq a b

instance PToJSVal ServiceWorker where
  pToJSVal = unServiceWorker
  {-# INLINE pToJSVal #-}

instance PFromJSVal ServiceWorker where
  pFromJSVal = ServiceWorker
  {-# INLINE pFromJSVal #-}

instance ToJSVal ServiceWorker where
  toJSVal = return . unServiceWorker
  {-# INLINE toJSVal #-}

instance FromJSVal ServiceWorker where
  fromJSVal = return . fmap ServiceWorker . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ServiceWorker
  {-# INLINE fromJSValUnchecked #-}

instance IsAbstractWorker ServiceWorker
instance IsEventTarget ServiceWorker

instance IsGObject ServiceWorker where
  typeGType _ = gTypeServiceWorker
  {-# INLINE typeGType #-}

noServiceWorker :: Maybe ServiceWorker
noServiceWorker = Nothing
{-# INLINE noServiceWorker #-}

foreign import javascript unsafe "(() => globalThis[\"ServiceWorker\"])" gTypeServiceWorker :: GType

-- | Functions for this interface are in "GHCJS.DOM.ServiceWorkerContainer" (service-workers).
newtype ServiceWorkerContainer = ServiceWorkerContainer { unServiceWorkerContainer :: JSVal }

instance Eq ServiceWorkerContainer where
  (ServiceWorkerContainer a) == (ServiceWorkerContainer b) = js_eq a b

instance PToJSVal ServiceWorkerContainer where
  pToJSVal = unServiceWorkerContainer
  {-# INLINE pToJSVal #-}

instance PFromJSVal ServiceWorkerContainer where
  pFromJSVal = ServiceWorkerContainer
  {-# INLINE pFromJSVal #-}

instance ToJSVal ServiceWorkerContainer where
  toJSVal = return . unServiceWorkerContainer
  {-# INLINE toJSVal #-}

instance FromJSVal ServiceWorkerContainer where
  fromJSVal = return . fmap ServiceWorkerContainer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ServiceWorkerContainer
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget ServiceWorkerContainer

instance IsGObject ServiceWorkerContainer where
  typeGType _ = gTypeServiceWorkerContainer
  {-# INLINE typeGType #-}

noServiceWorkerContainer :: Maybe ServiceWorkerContainer
noServiceWorkerContainer = Nothing
{-# INLINE noServiceWorkerContainer #-}

foreign import javascript unsafe "(() => globalThis[\"ServiceWorkerContainer\"])" gTypeServiceWorkerContainer :: GType

-- | Functions for this interface are in "GHCJS.DOM.ServiceWorkerGlobalScope" (service-workers).
newtype ServiceWorkerGlobalScope = ServiceWorkerGlobalScope { unServiceWorkerGlobalScope :: JSVal }

instance Eq ServiceWorkerGlobalScope where
  (ServiceWorkerGlobalScope a) == (ServiceWorkerGlobalScope b) = js_eq a b

instance PToJSVal ServiceWorkerGlobalScope where
  pToJSVal = unServiceWorkerGlobalScope
  {-# INLINE pToJSVal #-}

instance PFromJSVal ServiceWorkerGlobalScope where
  pFromJSVal = ServiceWorkerGlobalScope
  {-# INLINE pFromJSVal #-}

instance ToJSVal ServiceWorkerGlobalScope where
  toJSVal = return . unServiceWorkerGlobalScope
  {-# INLINE toJSVal #-}

instance FromJSVal ServiceWorkerGlobalScope where
  fromJSVal = return . fmap ServiceWorkerGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ServiceWorkerGlobalScope
  {-# INLINE fromJSValUnchecked #-}

instance IsWorkerGlobalScope ServiceWorkerGlobalScope
instance IsFontFaceSource ServiceWorkerGlobalScope
instance IsWindowOrWorkerGlobalScope ServiceWorkerGlobalScope
instance IsEventTarget ServiceWorkerGlobalScope

instance IsGObject ServiceWorkerGlobalScope where
  typeGType _ = gTypeServiceWorkerGlobalScope
  {-# INLINE typeGType #-}

noServiceWorkerGlobalScope :: Maybe ServiceWorkerGlobalScope
noServiceWorkerGlobalScope = Nothing
{-# INLINE noServiceWorkerGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"ServiceWorkerGlobalScope\"])" gTypeServiceWorkerGlobalScope :: GType

-- | Functions for this interface are in "GHCJS.DOM.ServiceWorkerRegistration" (service-workers).
newtype ServiceWorkerRegistration = ServiceWorkerRegistration { unServiceWorkerRegistration :: JSVal }

instance Eq ServiceWorkerRegistration where
  (ServiceWorkerRegistration a) == (ServiceWorkerRegistration b) = js_eq a b

instance PToJSVal ServiceWorkerRegistration where
  pToJSVal = unServiceWorkerRegistration
  {-# INLINE pToJSVal #-}

instance PFromJSVal ServiceWorkerRegistration where
  pFromJSVal = ServiceWorkerRegistration
  {-# INLINE pFromJSVal #-}

instance ToJSVal ServiceWorkerRegistration where
  toJSVal = return . unServiceWorkerRegistration
  {-# INLINE toJSVal #-}

instance FromJSVal ServiceWorkerRegistration where
  fromJSVal = return . fmap ServiceWorkerRegistration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ServiceWorkerRegistration
  {-# INLINE fromJSValUnchecked #-}

instance IsPushManagerAttribute ServiceWorkerRegistration
instance IsEventTarget ServiceWorkerRegistration

instance IsGObject ServiceWorkerRegistration where
  typeGType _ = gTypeServiceWorkerRegistration
  {-# INLINE typeGType #-}

noServiceWorkerRegistration :: Maybe ServiceWorkerRegistration
noServiceWorkerRegistration = Nothing
{-# INLINE noServiceWorkerRegistration #-}

foreign import javascript unsafe "(() => globalThis[\"ServiceWorkerRegistration\"])" gTypeServiceWorkerRegistration :: GType

-- | Dictionary SetHTMLOptions (html)
newtype SetHTMLOptions = SetHTMLOptions { unSetHTMLOptions :: JSVal }

instance Eq SetHTMLOptions where
  (SetHTMLOptions a) == (SetHTMLOptions b) = js_eq a b

instance PToJSVal SetHTMLOptions where
  pToJSVal = unSetHTMLOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SetHTMLOptions where
  pFromJSVal = SetHTMLOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SetHTMLOptions where
  toJSVal = return . unSetHTMLOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SetHTMLOptions where
  fromJSVal = return . fmap SetHTMLOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SetHTMLOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SetHTMLOptions where
  typeGType _ = gTypeSetHTMLOptions
  {-# INLINE typeGType #-}

noSetHTMLOptions :: Maybe SetHTMLOptions
noSetHTMLOptions = Nothing
{-# INLINE noSetHTMLOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSetHTMLOptions :: GType

-- | Dictionary SetHTMLUnsafeOptions (html)
newtype SetHTMLUnsafeOptions = SetHTMLUnsafeOptions { unSetHTMLUnsafeOptions :: JSVal }

instance Eq SetHTMLUnsafeOptions where
  (SetHTMLUnsafeOptions a) == (SetHTMLUnsafeOptions b) = js_eq a b

instance PToJSVal SetHTMLUnsafeOptions where
  pToJSVal = unSetHTMLUnsafeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SetHTMLUnsafeOptions where
  pFromJSVal = SetHTMLUnsafeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SetHTMLUnsafeOptions where
  toJSVal = return . unSetHTMLUnsafeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SetHTMLUnsafeOptions where
  fromJSVal = return . fmap SetHTMLUnsafeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SetHTMLUnsafeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SetHTMLUnsafeOptions where
  typeGType _ = gTypeSetHTMLUnsafeOptions
  {-# INLINE typeGType #-}

noSetHTMLUnsafeOptions :: Maybe SetHTMLUnsafeOptions
noSetHTMLUnsafeOptions = Nothing
{-# INLINE noSetHTMLUnsafeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSetHTMLUnsafeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ShadowRoot" (dom).
newtype ShadowRoot = ShadowRoot { unShadowRoot :: JSVal }

instance Eq ShadowRoot where
  (ShadowRoot a) == (ShadowRoot b) = js_eq a b

instance PToJSVal ShadowRoot where
  pToJSVal = unShadowRoot
  {-# INLINE pToJSVal #-}

instance PFromJSVal ShadowRoot where
  pFromJSVal = ShadowRoot
  {-# INLINE pFromJSVal #-}

instance ToJSVal ShadowRoot where
  toJSVal = return . unShadowRoot
  {-# INLINE toJSVal #-}

instance FromJSVal ShadowRoot where
  fromJSVal = return . fmap ShadowRoot . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ShadowRoot
  {-# INLINE fromJSValUnchecked #-}

instance IsDocumentOrShadowRoot ShadowRoot
instance IsDocumentFragment ShadowRoot
instance IsNonElementParentNode ShadowRoot
instance IsParentNode ShadowRoot
instance IsNode ShadowRoot
instance IsEventTarget ShadowRoot

instance IsGObject ShadowRoot where
  typeGType _ = gTypeShadowRoot
  {-# INLINE typeGType #-}

noShadowRoot :: Maybe ShadowRoot
noShadowRoot = Nothing
{-# INLINE noShadowRoot #-}

foreign import javascript unsafe "(() => globalThis[\"ShadowRoot\"])" gTypeShadowRoot :: GType

-- | Dictionary ShadowRootInit (dom)
newtype ShadowRootInit = ShadowRootInit { unShadowRootInit :: JSVal }

instance Eq ShadowRootInit where
  (ShadowRootInit a) == (ShadowRootInit b) = js_eq a b

instance PToJSVal ShadowRootInit where
  pToJSVal = unShadowRootInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ShadowRootInit where
  pFromJSVal = ShadowRootInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ShadowRootInit where
  toJSVal = return . unShadowRootInit
  {-# INLINE toJSVal #-}

instance FromJSVal ShadowRootInit where
  fromJSVal = return . fmap ShadowRootInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ShadowRootInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ShadowRootInit where
  typeGType _ = gTypeShadowRootInit
  {-# INLINE typeGType #-}

noShadowRootInit :: Maybe ShadowRootInit
noShadowRootInit = Nothing
{-# INLINE noShadowRootInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeShadowRootInit :: GType

-- | Dictionary ShareData (web-share)
newtype ShareData = ShareData { unShareData :: JSVal }

instance Eq ShareData where
  (ShareData a) == (ShareData b) = js_eq a b

instance PToJSVal ShareData where
  pToJSVal = unShareData
  {-# INLINE pToJSVal #-}

instance PFromJSVal ShareData where
  pFromJSVal = ShareData
  {-# INLINE pFromJSVal #-}

instance ToJSVal ShareData where
  toJSVal = return . unShareData
  {-# INLINE toJSVal #-}

instance FromJSVal ShareData where
  fromJSVal = return . fmap ShareData . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ShareData
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ShareData where
  typeGType _ = gTypeShareData
  {-# INLINE typeGType #-}

noShareData :: Maybe ShareData
noShareData = Nothing
{-# INLINE noShareData #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeShareData :: GType

newtype SharedArrayBuffer = SharedArrayBuffer { unSharedArrayBuffer :: JSVal }

instance Eq SharedArrayBuffer where
  (SharedArrayBuffer a) == (SharedArrayBuffer b) = js_eq a b

instance PToJSVal SharedArrayBuffer where
  pToJSVal = unSharedArrayBuffer
  {-# INLINE pToJSVal #-}

instance PFromJSVal SharedArrayBuffer where
  pFromJSVal = SharedArrayBuffer
  {-# INLINE pFromJSVal #-}

instance ToJSVal SharedArrayBuffer where
  toJSVal = return . unSharedArrayBuffer
  {-# INLINE toJSVal #-}

instance FromJSVal SharedArrayBuffer where
  fromJSVal = return . fmap SharedArrayBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SharedArrayBuffer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SharedArrayBuffer where
  typeGType _ = gTypeSharedArrayBuffer
  {-# INLINE typeGType #-}

noSharedArrayBuffer :: Maybe SharedArrayBuffer
noSharedArrayBuffer = Nothing
{-# INLINE noSharedArrayBuffer #-}

foreign import javascript unsafe "(() => globalThis[\"SharedArrayBuffer\"])" gTypeSharedArrayBuffer :: GType

-- | Functions for this interface are in "GHCJS.DOM.SharedWorker" (html).
newtype SharedWorker = SharedWorker { unSharedWorker :: JSVal }

instance Eq SharedWorker where
  (SharedWorker a) == (SharedWorker b) = js_eq a b

instance PToJSVal SharedWorker where
  pToJSVal = unSharedWorker
  {-# INLINE pToJSVal #-}

instance PFromJSVal SharedWorker where
  pFromJSVal = SharedWorker
  {-# INLINE pFromJSVal #-}

instance ToJSVal SharedWorker where
  toJSVal = return . unSharedWorker
  {-# INLINE toJSVal #-}

instance FromJSVal SharedWorker where
  fromJSVal = return . fmap SharedWorker . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SharedWorker
  {-# INLINE fromJSValUnchecked #-}

instance IsAbstractWorker SharedWorker
instance IsEventTarget SharedWorker

instance IsGObject SharedWorker where
  typeGType _ = gTypeSharedWorker
  {-# INLINE typeGType #-}

noSharedWorker :: Maybe SharedWorker
noSharedWorker = Nothing
{-# INLINE noSharedWorker #-}

foreign import javascript unsafe "(() => globalThis[\"SharedWorker\"])" gTypeSharedWorker :: GType

-- | Functions for this interface are in "GHCJS.DOM.SharedWorkerGlobalScope" (html).
newtype SharedWorkerGlobalScope = SharedWorkerGlobalScope { unSharedWorkerGlobalScope :: JSVal }

instance Eq SharedWorkerGlobalScope where
  (SharedWorkerGlobalScope a) == (SharedWorkerGlobalScope b) = js_eq a b

instance PToJSVal SharedWorkerGlobalScope where
  pToJSVal = unSharedWorkerGlobalScope
  {-# INLINE pToJSVal #-}

instance PFromJSVal SharedWorkerGlobalScope where
  pFromJSVal = SharedWorkerGlobalScope
  {-# INLINE pFromJSVal #-}

instance ToJSVal SharedWorkerGlobalScope where
  toJSVal = return . unSharedWorkerGlobalScope
  {-# INLINE toJSVal #-}

instance FromJSVal SharedWorkerGlobalScope where
  fromJSVal = return . fmap SharedWorkerGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SharedWorkerGlobalScope
  {-# INLINE fromJSValUnchecked #-}

instance IsWorkerGlobalScope SharedWorkerGlobalScope
instance IsFontFaceSource SharedWorkerGlobalScope
instance IsWindowOrWorkerGlobalScope SharedWorkerGlobalScope
instance IsEventTarget SharedWorkerGlobalScope

instance IsGObject SharedWorkerGlobalScope where
  typeGType _ = gTypeSharedWorkerGlobalScope
  {-# INLINE typeGType #-}

noSharedWorkerGlobalScope :: Maybe SharedWorkerGlobalScope
noSharedWorkerGlobalScope = Nothing
{-# INLINE noSharedWorkerGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"SharedWorkerGlobalScope\"])" gTypeSharedWorkerGlobalScope :: GType

-- | Dictionary SharedWorkerOptions (html)
newtype SharedWorkerOptions = SharedWorkerOptions { unSharedWorkerOptions :: JSVal }

instance Eq SharedWorkerOptions where
  (SharedWorkerOptions a) == (SharedWorkerOptions b) = js_eq a b

instance PToJSVal SharedWorkerOptions where
  pToJSVal = unSharedWorkerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SharedWorkerOptions where
  pFromJSVal = SharedWorkerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SharedWorkerOptions where
  toJSVal = return . unSharedWorkerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SharedWorkerOptions where
  fromJSVal = return . fmap SharedWorkerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SharedWorkerOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsWorkerOptions SharedWorkerOptions

instance IsGObject SharedWorkerOptions where
  typeGType _ = gTypeSharedWorkerOptions
  {-# INLINE typeGType #-}

noSharedWorkerOptions :: Maybe SharedWorkerOptions
noSharedWorkerOptions = Nothing
{-# INLINE noSharedWorkerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSharedWorkerOptions :: GType

-- | Dictionary ShowPopoverOptions (html)
newtype ShowPopoverOptions = ShowPopoverOptions { unShowPopoverOptions :: JSVal }

instance Eq ShowPopoverOptions where
  (ShowPopoverOptions a) == (ShowPopoverOptions b) = js_eq a b

instance PToJSVal ShowPopoverOptions where
  pToJSVal = unShowPopoverOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ShowPopoverOptions where
  pFromJSVal = ShowPopoverOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ShowPopoverOptions where
  toJSVal = return . unShowPopoverOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ShowPopoverOptions where
  fromJSVal = return . fmap ShowPopoverOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ShowPopoverOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsShowPopoverOptions o
toShowPopoverOptions :: IsShowPopoverOptions o => o -> ShowPopoverOptions
toShowPopoverOptions = ShowPopoverOptions . coerce

instance IsShowPopoverOptions ShowPopoverOptions

instance IsGObject ShowPopoverOptions where
  typeGType _ = gTypeShowPopoverOptions
  {-# INLINE typeGType #-}

noShowPopoverOptions :: Maybe ShowPopoverOptions
noShowPopoverOptions = Nothing
{-# INLINE noShowPopoverOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeShowPopoverOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Slottable" (dom).
newtype Slottable = Slottable { unSlottable :: JSVal }

instance Eq Slottable where
  (Slottable a) == (Slottable b) = js_eq a b

instance PToJSVal Slottable where
  pToJSVal = unSlottable
  {-# INLINE pToJSVal #-}

instance PFromJSVal Slottable where
  pFromJSVal = Slottable
  {-# INLINE pFromJSVal #-}

instance ToJSVal Slottable where
  toJSVal = return . unSlottable
  {-# INLINE toJSVal #-}

instance FromJSVal Slottable where
  fromJSVal = return . fmap Slottable . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Slottable
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsSlottable o
toSlottable :: IsSlottable o => o -> Slottable
toSlottable = Slottable . coerce

instance IsSlottable Slottable

instance IsGObject Slottable where
  typeGType _ = gTypeSlottable
  {-# INLINE typeGType #-}

noSlottable :: Maybe Slottable
noSlottable = Nothing
{-# INLINE noSlottable #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSlottable :: GType

-- | Functions for this interface are in "GHCJS.DOM.SourceBuffer" (media-source-2).
newtype SourceBuffer = SourceBuffer { unSourceBuffer :: JSVal }

instance Eq SourceBuffer where
  (SourceBuffer a) == (SourceBuffer b) = js_eq a b

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 = return . fmap SourceBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SourceBuffer
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget SourceBuffer

instance IsGObject SourceBuffer where
  typeGType _ = gTypeSourceBuffer
  {-# INLINE typeGType #-}

noSourceBuffer :: Maybe SourceBuffer
noSourceBuffer = Nothing
{-# INLINE noSourceBuffer #-}

foreign import javascript unsafe "(() => globalThis[\"SourceBuffer\"])" gTypeSourceBuffer :: GType

-- | Functions for this interface are in "GHCJS.DOM.SourceBufferList" (media-source-2).
newtype SourceBufferList = SourceBufferList { unSourceBufferList :: JSVal }

instance Eq SourceBufferList where
  (SourceBufferList a) == (SourceBufferList b) = js_eq a b

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 = return . fmap SourceBufferList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SourceBufferList
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget SourceBufferList

instance IsGObject SourceBufferList where
  typeGType _ = gTypeSourceBufferList
  {-# INLINE typeGType #-}

noSourceBufferList :: Maybe SourceBufferList
noSourceBufferList = Nothing
{-# INLINE noSourceBufferList #-}

foreign import javascript unsafe "(() => globalThis[\"SourceBufferList\"])" gTypeSourceBufferList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechGrammar" (speech-api).
newtype SpeechGrammar = SpeechGrammar { unSpeechGrammar :: JSVal }

instance Eq SpeechGrammar where
  (SpeechGrammar a) == (SpeechGrammar b) = js_eq a b

instance PToJSVal SpeechGrammar where
  pToJSVal = unSpeechGrammar
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechGrammar where
  pFromJSVal = SpeechGrammar
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechGrammar where
  toJSVal = return . unSpeechGrammar
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechGrammar where
  fromJSVal = return . fmap SpeechGrammar . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechGrammar
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechGrammar where
  typeGType _ = gTypeSpeechGrammar
  {-# INLINE typeGType #-}

noSpeechGrammar :: Maybe SpeechGrammar
noSpeechGrammar = Nothing
{-# INLINE noSpeechGrammar #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechGrammar\"])" gTypeSpeechGrammar :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechGrammarList" (speech-api).
newtype SpeechGrammarList = SpeechGrammarList { unSpeechGrammarList :: JSVal }

instance Eq SpeechGrammarList where
  (SpeechGrammarList a) == (SpeechGrammarList b) = js_eq a b

instance PToJSVal SpeechGrammarList where
  pToJSVal = unSpeechGrammarList
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechGrammarList where
  pFromJSVal = SpeechGrammarList
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechGrammarList where
  toJSVal = return . unSpeechGrammarList
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechGrammarList where
  fromJSVal = return . fmap SpeechGrammarList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechGrammarList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechGrammarList where
  typeGType _ = gTypeSpeechGrammarList
  {-# INLINE typeGType #-}

noSpeechGrammarList :: Maybe SpeechGrammarList
noSpeechGrammarList = Nothing
{-# INLINE noSpeechGrammarList #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechGrammarList\"])" gTypeSpeechGrammarList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognition" (speech-api).
newtype SpeechRecognition = SpeechRecognition { unSpeechRecognition :: JSVal }

instance Eq SpeechRecognition where
  (SpeechRecognition a) == (SpeechRecognition b) = js_eq a b

instance PToJSVal SpeechRecognition where
  pToJSVal = unSpeechRecognition
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognition where
  pFromJSVal = SpeechRecognition
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognition where
  toJSVal = return . unSpeechRecognition
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognition where
  fromJSVal = return . fmap SpeechRecognition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognition
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget SpeechRecognition

instance IsGObject SpeechRecognition where
  typeGType _ = gTypeSpeechRecognition
  {-# INLINE typeGType #-}

noSpeechRecognition :: Maybe SpeechRecognition
noSpeechRecognition = Nothing
{-# INLINE noSpeechRecognition #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognition\"])" gTypeSpeechRecognition :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognitionAlternative" (speech-api).
newtype SpeechRecognitionAlternative = SpeechRecognitionAlternative { unSpeechRecognitionAlternative :: JSVal }

instance Eq SpeechRecognitionAlternative where
  (SpeechRecognitionAlternative a) == (SpeechRecognitionAlternative b) = js_eq a b

instance PToJSVal SpeechRecognitionAlternative where
  pToJSVal = unSpeechRecognitionAlternative
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionAlternative where
  pFromJSVal = SpeechRecognitionAlternative
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionAlternative where
  toJSVal = return . unSpeechRecognitionAlternative
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionAlternative where
  fromJSVal = return . fmap SpeechRecognitionAlternative . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionAlternative
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechRecognitionAlternative where
  typeGType _ = gTypeSpeechRecognitionAlternative
  {-# INLINE typeGType #-}

noSpeechRecognitionAlternative :: Maybe SpeechRecognitionAlternative
noSpeechRecognitionAlternative = Nothing
{-# INLINE noSpeechRecognitionAlternative #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognitionAlternative\"])" gTypeSpeechRecognitionAlternative :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognitionErrorEvent" (speech-api).
newtype SpeechRecognitionErrorEvent = SpeechRecognitionErrorEvent { unSpeechRecognitionErrorEvent :: JSVal }

instance Eq SpeechRecognitionErrorEvent where
  (SpeechRecognitionErrorEvent a) == (SpeechRecognitionErrorEvent b) = js_eq a b

instance PToJSVal SpeechRecognitionErrorEvent where
  pToJSVal = unSpeechRecognitionErrorEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionErrorEvent where
  pFromJSVal = SpeechRecognitionErrorEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionErrorEvent where
  toJSVal = return . unSpeechRecognitionErrorEvent
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionErrorEvent where
  fromJSVal = return . fmap SpeechRecognitionErrorEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionErrorEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent SpeechRecognitionErrorEvent

instance IsGObject SpeechRecognitionErrorEvent where
  typeGType _ = gTypeSpeechRecognitionErrorEvent
  {-# INLINE typeGType #-}

noSpeechRecognitionErrorEvent :: Maybe SpeechRecognitionErrorEvent
noSpeechRecognitionErrorEvent = Nothing
{-# INLINE noSpeechRecognitionErrorEvent #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognitionErrorEvent\"])" gTypeSpeechRecognitionErrorEvent :: GType

-- | Dictionary SpeechRecognitionErrorEventInit (speech-api)
newtype SpeechRecognitionErrorEventInit = SpeechRecognitionErrorEventInit { unSpeechRecognitionErrorEventInit :: JSVal }

instance Eq SpeechRecognitionErrorEventInit where
  (SpeechRecognitionErrorEventInit a) == (SpeechRecognitionErrorEventInit b) = js_eq a b

instance PToJSVal SpeechRecognitionErrorEventInit where
  pToJSVal = unSpeechRecognitionErrorEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionErrorEventInit where
  pFromJSVal = SpeechRecognitionErrorEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionErrorEventInit where
  toJSVal = return . unSpeechRecognitionErrorEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionErrorEventInit where
  fromJSVal = return . fmap SpeechRecognitionErrorEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionErrorEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit SpeechRecognitionErrorEventInit

instance IsGObject SpeechRecognitionErrorEventInit where
  typeGType _ = gTypeSpeechRecognitionErrorEventInit
  {-# INLINE typeGType #-}

noSpeechRecognitionErrorEventInit :: Maybe SpeechRecognitionErrorEventInit
noSpeechRecognitionErrorEventInit = Nothing
{-# INLINE noSpeechRecognitionErrorEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSpeechRecognitionErrorEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognitionEvent" (speech-api).
newtype SpeechRecognitionEvent = SpeechRecognitionEvent { unSpeechRecognitionEvent :: JSVal }

instance Eq SpeechRecognitionEvent where
  (SpeechRecognitionEvent a) == (SpeechRecognitionEvent b) = js_eq a b

instance PToJSVal SpeechRecognitionEvent where
  pToJSVal = unSpeechRecognitionEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionEvent where
  pFromJSVal = SpeechRecognitionEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionEvent where
  toJSVal = return . unSpeechRecognitionEvent
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionEvent where
  fromJSVal = return . fmap SpeechRecognitionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent SpeechRecognitionEvent

instance IsGObject SpeechRecognitionEvent where
  typeGType _ = gTypeSpeechRecognitionEvent
  {-# INLINE typeGType #-}

noSpeechRecognitionEvent :: Maybe SpeechRecognitionEvent
noSpeechRecognitionEvent = Nothing
{-# INLINE noSpeechRecognitionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognitionEvent\"])" gTypeSpeechRecognitionEvent :: GType

-- | Dictionary SpeechRecognitionEventInit (speech-api)
newtype SpeechRecognitionEventInit = SpeechRecognitionEventInit { unSpeechRecognitionEventInit :: JSVal }

instance Eq SpeechRecognitionEventInit where
  (SpeechRecognitionEventInit a) == (SpeechRecognitionEventInit b) = js_eq a b

instance PToJSVal SpeechRecognitionEventInit where
  pToJSVal = unSpeechRecognitionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionEventInit where
  pFromJSVal = SpeechRecognitionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionEventInit where
  toJSVal = return . unSpeechRecognitionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionEventInit where
  fromJSVal = return . fmap SpeechRecognitionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit SpeechRecognitionEventInit

instance IsGObject SpeechRecognitionEventInit where
  typeGType _ = gTypeSpeechRecognitionEventInit
  {-# INLINE typeGType #-}

noSpeechRecognitionEventInit :: Maybe SpeechRecognitionEventInit
noSpeechRecognitionEventInit = Nothing
{-# INLINE noSpeechRecognitionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSpeechRecognitionEventInit :: GType

-- | Dictionary SpeechRecognitionOptions (speech-api)
newtype SpeechRecognitionOptions = SpeechRecognitionOptions { unSpeechRecognitionOptions :: JSVal }

instance Eq SpeechRecognitionOptions where
  (SpeechRecognitionOptions a) == (SpeechRecognitionOptions b) = js_eq a b

instance PToJSVal SpeechRecognitionOptions where
  pToJSVal = unSpeechRecognitionOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionOptions where
  pFromJSVal = SpeechRecognitionOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionOptions where
  toJSVal = return . unSpeechRecognitionOptions
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionOptions where
  fromJSVal = return . fmap SpeechRecognitionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechRecognitionOptions where
  typeGType _ = gTypeSpeechRecognitionOptions
  {-# INLINE typeGType #-}

noSpeechRecognitionOptions :: Maybe SpeechRecognitionOptions
noSpeechRecognitionOptions = Nothing
{-# INLINE noSpeechRecognitionOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSpeechRecognitionOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognitionPhrase" (speech-api).
newtype SpeechRecognitionPhrase = SpeechRecognitionPhrase { unSpeechRecognitionPhrase :: JSVal }

instance Eq SpeechRecognitionPhrase where
  (SpeechRecognitionPhrase a) == (SpeechRecognitionPhrase b) = js_eq a b

instance PToJSVal SpeechRecognitionPhrase where
  pToJSVal = unSpeechRecognitionPhrase
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionPhrase where
  pFromJSVal = SpeechRecognitionPhrase
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionPhrase where
  toJSVal = return . unSpeechRecognitionPhrase
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionPhrase where
  fromJSVal = return . fmap SpeechRecognitionPhrase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionPhrase
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechRecognitionPhrase where
  typeGType _ = gTypeSpeechRecognitionPhrase
  {-# INLINE typeGType #-}

noSpeechRecognitionPhrase :: Maybe SpeechRecognitionPhrase
noSpeechRecognitionPhrase = Nothing
{-# INLINE noSpeechRecognitionPhrase #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognitionPhrase\"])" gTypeSpeechRecognitionPhrase :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognitionResult" (speech-api).
newtype SpeechRecognitionResult = SpeechRecognitionResult { unSpeechRecognitionResult :: JSVal }

instance Eq SpeechRecognitionResult where
  (SpeechRecognitionResult a) == (SpeechRecognitionResult b) = js_eq a b

instance PToJSVal SpeechRecognitionResult where
  pToJSVal = unSpeechRecognitionResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionResult where
  pFromJSVal = SpeechRecognitionResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionResult where
  toJSVal = return . unSpeechRecognitionResult
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionResult where
  fromJSVal = return . fmap SpeechRecognitionResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechRecognitionResult where
  typeGType _ = gTypeSpeechRecognitionResult
  {-# INLINE typeGType #-}

noSpeechRecognitionResult :: Maybe SpeechRecognitionResult
noSpeechRecognitionResult = Nothing
{-# INLINE noSpeechRecognitionResult #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognitionResult\"])" gTypeSpeechRecognitionResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechRecognitionResultList" (speech-api).
newtype SpeechRecognitionResultList = SpeechRecognitionResultList { unSpeechRecognitionResultList :: JSVal }

instance Eq SpeechRecognitionResultList where
  (SpeechRecognitionResultList a) == (SpeechRecognitionResultList b) = js_eq a b

instance PToJSVal SpeechRecognitionResultList where
  pToJSVal = unSpeechRecognitionResultList
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechRecognitionResultList where
  pFromJSVal = SpeechRecognitionResultList
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechRecognitionResultList where
  toJSVal = return . unSpeechRecognitionResultList
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechRecognitionResultList where
  fromJSVal = return . fmap SpeechRecognitionResultList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechRecognitionResultList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechRecognitionResultList where
  typeGType _ = gTypeSpeechRecognitionResultList
  {-# INLINE typeGType #-}

noSpeechRecognitionResultList :: Maybe SpeechRecognitionResultList
noSpeechRecognitionResultList = Nothing
{-# INLINE noSpeechRecognitionResultList #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechRecognitionResultList\"])" gTypeSpeechRecognitionResultList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechSynthesis" (speech-api).
newtype SpeechSynthesis = SpeechSynthesis { unSpeechSynthesis :: JSVal }

instance Eq SpeechSynthesis where
  (SpeechSynthesis a) == (SpeechSynthesis b) = js_eq a b

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 = return . fmap SpeechSynthesis . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesis
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget SpeechSynthesis

instance IsGObject SpeechSynthesis where
  typeGType _ = gTypeSpeechSynthesis
  {-# INLINE typeGType #-}

noSpeechSynthesis :: Maybe SpeechSynthesis
noSpeechSynthesis = Nothing
{-# INLINE noSpeechSynthesis #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechSynthesis\"])" gTypeSpeechSynthesis :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechSynthesisErrorEvent" (speech-api).
newtype SpeechSynthesisErrorEvent = SpeechSynthesisErrorEvent { unSpeechSynthesisErrorEvent :: JSVal }

instance Eq SpeechSynthesisErrorEvent where
  (SpeechSynthesisErrorEvent a) == (SpeechSynthesisErrorEvent b) = js_eq a b

instance PToJSVal SpeechSynthesisErrorEvent where
  pToJSVal = unSpeechSynthesisErrorEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechSynthesisErrorEvent where
  pFromJSVal = SpeechSynthesisErrorEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechSynthesisErrorEvent where
  toJSVal = return . unSpeechSynthesisErrorEvent
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechSynthesisErrorEvent where
  fromJSVal = return . fmap SpeechSynthesisErrorEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesisErrorEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsSpeechSynthesisEvent SpeechSynthesisErrorEvent
instance IsEvent SpeechSynthesisErrorEvent

instance IsGObject SpeechSynthesisErrorEvent where
  typeGType _ = gTypeSpeechSynthesisErrorEvent
  {-# INLINE typeGType #-}

noSpeechSynthesisErrorEvent :: Maybe SpeechSynthesisErrorEvent
noSpeechSynthesisErrorEvent = Nothing
{-# INLINE noSpeechSynthesisErrorEvent #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechSynthesisErrorEvent\"])" gTypeSpeechSynthesisErrorEvent :: GType

-- | Dictionary SpeechSynthesisErrorEventInit (speech-api)
newtype SpeechSynthesisErrorEventInit = SpeechSynthesisErrorEventInit { unSpeechSynthesisErrorEventInit :: JSVal }

instance Eq SpeechSynthesisErrorEventInit where
  (SpeechSynthesisErrorEventInit a) == (SpeechSynthesisErrorEventInit b) = js_eq a b

instance PToJSVal SpeechSynthesisErrorEventInit where
  pToJSVal = unSpeechSynthesisErrorEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechSynthesisErrorEventInit where
  pFromJSVal = SpeechSynthesisErrorEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechSynthesisErrorEventInit where
  toJSVal = return . unSpeechSynthesisErrorEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechSynthesisErrorEventInit where
  fromJSVal = return . fmap SpeechSynthesisErrorEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesisErrorEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsSpeechSynthesisEventInit SpeechSynthesisErrorEventInit
instance IsEventInit SpeechSynthesisErrorEventInit

instance IsGObject SpeechSynthesisErrorEventInit where
  typeGType _ = gTypeSpeechSynthesisErrorEventInit
  {-# INLINE typeGType #-}

noSpeechSynthesisErrorEventInit :: Maybe SpeechSynthesisErrorEventInit
noSpeechSynthesisErrorEventInit = Nothing
{-# INLINE noSpeechSynthesisErrorEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSpeechSynthesisErrorEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechSynthesisEvent" (speech-api).
newtype SpeechSynthesisEvent = SpeechSynthesisEvent { unSpeechSynthesisEvent :: JSVal }

instance Eq SpeechSynthesisEvent where
  (SpeechSynthesisEvent a) == (SpeechSynthesisEvent b) = js_eq a b

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 = return . fmap SpeechSynthesisEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesisEvent
  {-# INLINE fromJSValUnchecked #-}

class (IsEvent o, IsGObject o) => IsSpeechSynthesisEvent o
toSpeechSynthesisEvent :: IsSpeechSynthesisEvent o => o -> SpeechSynthesisEvent
toSpeechSynthesisEvent = SpeechSynthesisEvent . coerce

instance IsSpeechSynthesisEvent SpeechSynthesisEvent
instance IsEvent SpeechSynthesisEvent

instance IsGObject SpeechSynthesisEvent where
  typeGType _ = gTypeSpeechSynthesisEvent
  {-# INLINE typeGType #-}

noSpeechSynthesisEvent :: Maybe SpeechSynthesisEvent
noSpeechSynthesisEvent = Nothing
{-# INLINE noSpeechSynthesisEvent #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechSynthesisEvent\"])" gTypeSpeechSynthesisEvent :: GType

-- | Dictionary SpeechSynthesisEventInit (speech-api)
newtype SpeechSynthesisEventInit = SpeechSynthesisEventInit { unSpeechSynthesisEventInit :: JSVal }

instance Eq SpeechSynthesisEventInit where
  (SpeechSynthesisEventInit a) == (SpeechSynthesisEventInit b) = js_eq a b

instance PToJSVal SpeechSynthesisEventInit where
  pToJSVal = unSpeechSynthesisEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal SpeechSynthesisEventInit where
  pFromJSVal = SpeechSynthesisEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal SpeechSynthesisEventInit where
  toJSVal = return . unSpeechSynthesisEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal SpeechSynthesisEventInit where
  fromJSVal = return . fmap SpeechSynthesisEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesisEventInit
  {-# INLINE fromJSValUnchecked #-}

class (IsEventInit o, IsGObject o) => IsSpeechSynthesisEventInit o
toSpeechSynthesisEventInit :: IsSpeechSynthesisEventInit o => o -> SpeechSynthesisEventInit
toSpeechSynthesisEventInit = SpeechSynthesisEventInit . coerce

instance IsSpeechSynthesisEventInit SpeechSynthesisEventInit
instance IsEventInit SpeechSynthesisEventInit

instance IsGObject SpeechSynthesisEventInit where
  typeGType _ = gTypeSpeechSynthesisEventInit
  {-# INLINE typeGType #-}

noSpeechSynthesisEventInit :: Maybe SpeechSynthesisEventInit
noSpeechSynthesisEventInit = Nothing
{-# INLINE noSpeechSynthesisEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSpeechSynthesisEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechSynthesisUtterance" (speech-api).
newtype SpeechSynthesisUtterance = SpeechSynthesisUtterance { unSpeechSynthesisUtterance :: JSVal }

instance Eq SpeechSynthesisUtterance where
  (SpeechSynthesisUtterance a) == (SpeechSynthesisUtterance b) = js_eq a b

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 = return . fmap SpeechSynthesisUtterance . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesisUtterance
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget SpeechSynthesisUtterance

instance IsGObject SpeechSynthesisUtterance where
  typeGType _ = gTypeSpeechSynthesisUtterance
  {-# INLINE typeGType #-}

noSpeechSynthesisUtterance :: Maybe SpeechSynthesisUtterance
noSpeechSynthesisUtterance = Nothing
{-# INLINE noSpeechSynthesisUtterance #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechSynthesisUtterance\"])" gTypeSpeechSynthesisUtterance :: GType

-- | Functions for this interface are in "GHCJS.DOM.SpeechSynthesisVoice" (speech-api).
newtype SpeechSynthesisVoice = SpeechSynthesisVoice { unSpeechSynthesisVoice :: JSVal }

instance Eq SpeechSynthesisVoice where
  (SpeechSynthesisVoice a) == (SpeechSynthesisVoice b) = js_eq a b

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 = return . fmap SpeechSynthesisVoice . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SpeechSynthesisVoice
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SpeechSynthesisVoice where
  typeGType _ = gTypeSpeechSynthesisVoice
  {-# INLINE typeGType #-}

noSpeechSynthesisVoice :: Maybe SpeechSynthesisVoice
noSpeechSynthesisVoice = Nothing
{-# INLINE noSpeechSynthesisVoice #-}

foreign import javascript unsafe "(() => globalThis[\"SpeechSynthesisVoice\"])" gTypeSpeechSynthesisVoice :: GType

-- | Dictionary StartViewTransitionOptions (css-view-transitions-2)
newtype StartViewTransitionOptions = StartViewTransitionOptions { unStartViewTransitionOptions :: JSVal }

instance Eq StartViewTransitionOptions where
  (StartViewTransitionOptions a) == (StartViewTransitionOptions b) = js_eq a b

instance PToJSVal StartViewTransitionOptions where
  pToJSVal = unStartViewTransitionOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StartViewTransitionOptions where
  pFromJSVal = StartViewTransitionOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StartViewTransitionOptions where
  toJSVal = return . unStartViewTransitionOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StartViewTransitionOptions where
  fromJSVal = return . fmap StartViewTransitionOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StartViewTransitionOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject StartViewTransitionOptions where
  typeGType _ = gTypeStartViewTransitionOptions
  {-# INLINE typeGType #-}

noStartViewTransitionOptions :: Maybe StartViewTransitionOptions
noStartViewTransitionOptions = Nothing
{-# INLINE noStartViewTransitionOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStartViewTransitionOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.StaticRange" (dom).
newtype StaticRange = StaticRange { unStaticRange :: JSVal }

instance Eq StaticRange where
  (StaticRange a) == (StaticRange b) = js_eq a b

instance PToJSVal StaticRange where
  pToJSVal = unStaticRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal StaticRange where
  pFromJSVal = StaticRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal StaticRange where
  toJSVal = return . unStaticRange
  {-# INLINE toJSVal #-}

instance FromJSVal StaticRange where
  fromJSVal = return . fmap StaticRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StaticRange
  {-# INLINE fromJSValUnchecked #-}

instance IsAbstractRange StaticRange

instance IsGObject StaticRange where
  typeGType _ = gTypeStaticRange
  {-# INLINE typeGType #-}

noStaticRange :: Maybe StaticRange
noStaticRange = Nothing
{-# INLINE noStaticRange #-}

foreign import javascript unsafe "(() => globalThis[\"StaticRange\"])" gTypeStaticRange :: GType

-- | Dictionary StaticRangeInit (dom)
newtype StaticRangeInit = StaticRangeInit { unStaticRangeInit :: JSVal }

instance Eq StaticRangeInit where
  (StaticRangeInit a) == (StaticRangeInit b) = js_eq a b

instance PToJSVal StaticRangeInit where
  pToJSVal = unStaticRangeInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal StaticRangeInit where
  pFromJSVal = StaticRangeInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal StaticRangeInit where
  toJSVal = return . unStaticRangeInit
  {-# INLINE toJSVal #-}

instance FromJSVal StaticRangeInit where
  fromJSVal = return . fmap StaticRangeInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StaticRangeInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject StaticRangeInit where
  typeGType _ = gTypeStaticRangeInit
  {-# INLINE typeGType #-}

noStaticRangeInit :: Maybe StaticRangeInit
noStaticRangeInit = Nothing
{-# INLINE noStaticRangeInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStaticRangeInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.StereoPannerNode" (webaudio-1.1).
newtype StereoPannerNode = StereoPannerNode { unStereoPannerNode :: JSVal }

instance Eq StereoPannerNode where
  (StereoPannerNode a) == (StereoPannerNode b) = js_eq a b

instance PToJSVal StereoPannerNode where
  pToJSVal = unStereoPannerNode
  {-# INLINE pToJSVal #-}

instance PFromJSVal StereoPannerNode where
  pFromJSVal = StereoPannerNode
  {-# INLINE pFromJSVal #-}

instance ToJSVal StereoPannerNode where
  toJSVal = return . unStereoPannerNode
  {-# INLINE toJSVal #-}

instance FromJSVal StereoPannerNode where
  fromJSVal = return . fmap StereoPannerNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StereoPannerNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode StereoPannerNode
instance IsEventTarget StereoPannerNode

instance IsGObject StereoPannerNode where
  typeGType _ = gTypeStereoPannerNode
  {-# INLINE typeGType #-}

noStereoPannerNode :: Maybe StereoPannerNode
noStereoPannerNode = Nothing
{-# INLINE noStereoPannerNode #-}

foreign import javascript unsafe "(() => globalThis[\"StereoPannerNode\"])" gTypeStereoPannerNode :: GType

-- | Dictionary StereoPannerOptions (webaudio-1.1)
newtype StereoPannerOptions = StereoPannerOptions { unStereoPannerOptions :: JSVal }

instance Eq StereoPannerOptions where
  (StereoPannerOptions a) == (StereoPannerOptions b) = js_eq a b

instance PToJSVal StereoPannerOptions where
  pToJSVal = unStereoPannerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StereoPannerOptions where
  pFromJSVal = StereoPannerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StereoPannerOptions where
  toJSVal = return . unStereoPannerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StereoPannerOptions where
  fromJSVal = return . fmap StereoPannerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StereoPannerOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions StereoPannerOptions

instance IsGObject StereoPannerOptions where
  typeGType _ = gTypeStereoPannerOptions
  {-# INLINE typeGType #-}

noStereoPannerOptions :: Maybe StereoPannerOptions
noStereoPannerOptions = Nothing
{-# INLINE noStereoPannerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStereoPannerOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Storage" (html).
newtype Storage = Storage { unStorage :: JSVal }

instance Eq Storage where
  (Storage a) == (Storage b) = js_eq a b

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 = return . fmap Storage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Storage
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Storage where
  typeGType _ = gTypeStorage
  {-# INLINE typeGType #-}

noStorage :: Maybe Storage
noStorage = Nothing
{-# INLINE noStorage #-}

foreign import javascript unsafe "(() => globalThis[\"Storage\"])" gTypeStorage :: GType

-- | Dictionary StorageEstimate (storage)
newtype StorageEstimate = StorageEstimate { unStorageEstimate :: JSVal }

instance Eq StorageEstimate where
  (StorageEstimate a) == (StorageEstimate b) = js_eq a b

instance PToJSVal StorageEstimate where
  pToJSVal = unStorageEstimate
  {-# INLINE pToJSVal #-}

instance PFromJSVal StorageEstimate where
  pFromJSVal = StorageEstimate
  {-# INLINE pFromJSVal #-}

instance ToJSVal StorageEstimate where
  toJSVal = return . unStorageEstimate
  {-# INLINE toJSVal #-}

instance FromJSVal StorageEstimate where
  fromJSVal = return . fmap StorageEstimate . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StorageEstimate
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject StorageEstimate where
  typeGType _ = gTypeStorageEstimate
  {-# INLINE typeGType #-}

noStorageEstimate :: Maybe StorageEstimate
noStorageEstimate = Nothing
{-# INLINE noStorageEstimate #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStorageEstimate :: GType

-- | Functions for this interface are in "GHCJS.DOM.StorageEvent" (html).
newtype StorageEvent = StorageEvent { unStorageEvent :: JSVal }

instance Eq StorageEvent where
  (StorageEvent a) == (StorageEvent b) = js_eq a b

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 = return . fmap StorageEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StorageEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent StorageEvent

instance IsGObject StorageEvent where
  typeGType _ = gTypeStorageEvent
  {-# INLINE typeGType #-}

noStorageEvent :: Maybe StorageEvent
noStorageEvent = Nothing
{-# INLINE noStorageEvent #-}

foreign import javascript unsafe "(() => globalThis[\"StorageEvent\"])" gTypeStorageEvent :: GType

-- | Dictionary StorageEventInit (html)
newtype StorageEventInit = StorageEventInit { unStorageEventInit :: JSVal }

instance Eq StorageEventInit where
  (StorageEventInit a) == (StorageEventInit b) = js_eq a b

instance PToJSVal StorageEventInit where
  pToJSVal = unStorageEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal StorageEventInit where
  pFromJSVal = StorageEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal StorageEventInit where
  toJSVal = return . unStorageEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal StorageEventInit where
  fromJSVal = return . fmap StorageEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StorageEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit StorageEventInit

instance IsGObject StorageEventInit where
  typeGType _ = gTypeStorageEventInit
  {-# INLINE typeGType #-}

noStorageEventInit :: Maybe StorageEventInit
noStorageEventInit = Nothing
{-# INLINE noStorageEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStorageEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.StorageManager" (storage).
newtype StorageManager = StorageManager { unStorageManager :: JSVal }

instance Eq StorageManager where
  (StorageManager a) == (StorageManager b) = js_eq a b

instance PToJSVal StorageManager where
  pToJSVal = unStorageManager
  {-# INLINE pToJSVal #-}

instance PFromJSVal StorageManager where
  pFromJSVal = StorageManager
  {-# INLINE pFromJSVal #-}

instance ToJSVal StorageManager where
  toJSVal = return . unStorageManager
  {-# INLINE toJSVal #-}

instance FromJSVal StorageManager where
  fromJSVal = return . fmap StorageManager . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StorageManager
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject StorageManager where
  typeGType _ = gTypeStorageManager
  {-# INLINE typeGType #-}

noStorageManager :: Maybe StorageManager
noStorageManager = Nothing
{-# INLINE noStorageManager #-}

foreign import javascript unsafe "(() => globalThis[\"StorageManager\"])" gTypeStorageManager :: GType

-- | Dictionary StreamPipeOptions (streams)
newtype StreamPipeOptions = StreamPipeOptions { unStreamPipeOptions :: JSVal }

instance Eq StreamPipeOptions where
  (StreamPipeOptions a) == (StreamPipeOptions b) = js_eq a b

instance PToJSVal StreamPipeOptions where
  pToJSVal = unStreamPipeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StreamPipeOptions where
  pFromJSVal = StreamPipeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StreamPipeOptions where
  toJSVal = return . unStreamPipeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StreamPipeOptions where
  fromJSVal = return . fmap StreamPipeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StreamPipeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject StreamPipeOptions where
  typeGType _ = gTypeStreamPipeOptions
  {-# INLINE typeGType #-}

noStreamPipeOptions :: Maybe StreamPipeOptions
noStreamPipeOptions = Nothing
{-# INLINE noStreamPipeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStreamPipeOptions :: GType

-- | Dictionary StructuredSerializeOptions (html)
newtype StructuredSerializeOptions = StructuredSerializeOptions { unStructuredSerializeOptions :: JSVal }

instance Eq StructuredSerializeOptions where
  (StructuredSerializeOptions a) == (StructuredSerializeOptions b) = js_eq a b

instance PToJSVal StructuredSerializeOptions where
  pToJSVal = unStructuredSerializeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal StructuredSerializeOptions where
  pFromJSVal = StructuredSerializeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal StructuredSerializeOptions where
  toJSVal = return . unStructuredSerializeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal StructuredSerializeOptions where
  fromJSVal = return . fmap StructuredSerializeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StructuredSerializeOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsStructuredSerializeOptions o
toStructuredSerializeOptions :: IsStructuredSerializeOptions o => o -> StructuredSerializeOptions
toStructuredSerializeOptions = StructuredSerializeOptions . coerce

instance IsStructuredSerializeOptions StructuredSerializeOptions

instance IsGObject StructuredSerializeOptions where
  typeGType _ = gTypeStructuredSerializeOptions
  {-# INLINE typeGType #-}

noStructuredSerializeOptions :: Maybe StructuredSerializeOptions
noStructuredSerializeOptions = Nothing
{-# INLINE noStructuredSerializeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeStructuredSerializeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.StylePropertyMap" (css-typed-om-1).
newtype StylePropertyMap = StylePropertyMap { unStylePropertyMap :: JSVal }

instance Eq StylePropertyMap where
  (StylePropertyMap a) == (StylePropertyMap b) = js_eq a b

instance PToJSVal StylePropertyMap where
  pToJSVal = unStylePropertyMap
  {-# INLINE pToJSVal #-}

instance PFromJSVal StylePropertyMap where
  pFromJSVal = StylePropertyMap
  {-# INLINE pFromJSVal #-}

instance ToJSVal StylePropertyMap where
  toJSVal = return . unStylePropertyMap
  {-# INLINE toJSVal #-}

instance FromJSVal StylePropertyMap where
  fromJSVal = return . fmap StylePropertyMap . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StylePropertyMap
  {-# INLINE fromJSValUnchecked #-}

instance IsStylePropertyMapReadOnly StylePropertyMap

instance IsGObject StylePropertyMap where
  typeGType _ = gTypeStylePropertyMap
  {-# INLINE typeGType #-}

noStylePropertyMap :: Maybe StylePropertyMap
noStylePropertyMap = Nothing
{-# INLINE noStylePropertyMap #-}

foreign import javascript unsafe "(() => globalThis[\"StylePropertyMap\"])" gTypeStylePropertyMap :: GType

-- | Functions for this interface are in "GHCJS.DOM.StylePropertyMapReadOnly" (css-typed-om-1).
newtype StylePropertyMapReadOnly = StylePropertyMapReadOnly { unStylePropertyMapReadOnly :: JSVal }

instance Eq StylePropertyMapReadOnly where
  (StylePropertyMapReadOnly a) == (StylePropertyMapReadOnly b) = js_eq a b

instance PToJSVal StylePropertyMapReadOnly where
  pToJSVal = unStylePropertyMapReadOnly
  {-# INLINE pToJSVal #-}

instance PFromJSVal StylePropertyMapReadOnly where
  pFromJSVal = StylePropertyMapReadOnly
  {-# INLINE pFromJSVal #-}

instance ToJSVal StylePropertyMapReadOnly where
  toJSVal = return . unStylePropertyMapReadOnly
  {-# INLINE toJSVal #-}

instance FromJSVal StylePropertyMapReadOnly where
  fromJSVal = return . fmap StylePropertyMapReadOnly . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StylePropertyMapReadOnly
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsStylePropertyMapReadOnly o
toStylePropertyMapReadOnly :: IsStylePropertyMapReadOnly o => o -> StylePropertyMapReadOnly
toStylePropertyMapReadOnly = StylePropertyMapReadOnly . coerce

instance IsStylePropertyMapReadOnly StylePropertyMapReadOnly

instance IsGObject StylePropertyMapReadOnly where
  typeGType _ = gTypeStylePropertyMapReadOnly
  {-# INLINE typeGType #-}

noStylePropertyMapReadOnly :: Maybe StylePropertyMapReadOnly
noStylePropertyMapReadOnly = Nothing
{-# INLINE noStylePropertyMapReadOnly #-}

foreign import javascript unsafe "(() => globalThis[\"StylePropertyMapReadOnly\"])" gTypeStylePropertyMapReadOnly :: GType

-- | Functions for this interface are in "GHCJS.DOM.StyleSheet" (cssom-1).
newtype StyleSheet = StyleSheet { unStyleSheet :: JSVal }

instance Eq StyleSheet where
  (StyleSheet a) == (StyleSheet b) = js_eq a b

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 = return . fmap StyleSheet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StyleSheet
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsStyleSheet o
toStyleSheet :: IsStyleSheet o => o -> StyleSheet
toStyleSheet = StyleSheet . coerce

instance IsStyleSheet StyleSheet

instance IsGObject StyleSheet where
  typeGType _ = gTypeStyleSheet
  {-# INLINE typeGType #-}

noStyleSheet :: Maybe StyleSheet
noStyleSheet = Nothing
{-# INLINE noStyleSheet #-}

foreign import javascript unsafe "(() => globalThis[\"StyleSheet\"])" gTypeStyleSheet :: GType

-- | Functions for this interface are in "GHCJS.DOM.StyleSheetList" (cssom-1).
newtype StyleSheetList = StyleSheetList { unStyleSheetList :: JSVal }

instance Eq StyleSheetList where
  (StyleSheetList a) == (StyleSheetList b) = js_eq a b

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 = return . fmap StyleSheetList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . StyleSheetList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject StyleSheetList where
  typeGType _ = gTypeStyleSheetList
  {-# INLINE typeGType #-}

noStyleSheetList :: Maybe StyleSheetList
noStyleSheetList = Nothing
{-# INLINE noStyleSheetList #-}

foreign import javascript unsafe "(() => globalThis[\"StyleSheetList\"])" gTypeStyleSheetList :: GType

-- | Functions for this interface are in "GHCJS.DOM.SubmitEvent" (html).
newtype SubmitEvent = SubmitEvent { unSubmitEvent :: JSVal }

instance Eq SubmitEvent where
  (SubmitEvent a) == (SubmitEvent b) = js_eq a b

instance PToJSVal SubmitEvent where
  pToJSVal = unSubmitEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal SubmitEvent where
  pFromJSVal = SubmitEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal SubmitEvent where
  toJSVal = return . unSubmitEvent
  {-# INLINE toJSVal #-}

instance FromJSVal SubmitEvent where
  fromJSVal = return . fmap SubmitEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SubmitEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent SubmitEvent

instance IsGObject SubmitEvent where
  typeGType _ = gTypeSubmitEvent
  {-# INLINE typeGType #-}

noSubmitEvent :: Maybe SubmitEvent
noSubmitEvent = Nothing
{-# INLINE noSubmitEvent #-}

foreign import javascript unsafe "(() => globalThis[\"SubmitEvent\"])" gTypeSubmitEvent :: GType

-- | Dictionary SubmitEventInit (html)
newtype SubmitEventInit = SubmitEventInit { unSubmitEventInit :: JSVal }

instance Eq SubmitEventInit where
  (SubmitEventInit a) == (SubmitEventInit b) = js_eq a b

instance PToJSVal SubmitEventInit where
  pToJSVal = unSubmitEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal SubmitEventInit where
  pFromJSVal = SubmitEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal SubmitEventInit where
  toJSVal = return . unSubmitEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal SubmitEventInit where
  fromJSVal = return . fmap SubmitEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SubmitEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit SubmitEventInit

instance IsGObject SubmitEventInit where
  typeGType _ = gTypeSubmitEventInit
  {-# INLINE typeGType #-}

noSubmitEventInit :: Maybe SubmitEventInit
noSubmitEventInit = Nothing
{-# INLINE noSubmitEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSubmitEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.SubtleCrypto" (webcrypto-2).
newtype SubtleCrypto = SubtleCrypto { unSubtleCrypto :: JSVal }

instance Eq SubtleCrypto where
  (SubtleCrypto a) == (SubtleCrypto b) = js_eq a b

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 = return . fmap SubtleCrypto . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SubtleCrypto
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SubtleCrypto where
  typeGType _ = gTypeSubtleCrypto
  {-# INLINE typeGType #-}

noSubtleCrypto :: Maybe SubtleCrypto
noSubtleCrypto = Nothing
{-# INLINE noSubtleCrypto #-}

foreign import javascript unsafe "(() => globalThis[\"SubtleCrypto\"])" gTypeSubtleCrypto :: GType

-- | Dictionary SvcOutputMetadata (webcodecs)
newtype SvcOutputMetadata = SvcOutputMetadata { unSvcOutputMetadata :: JSVal }

instance Eq SvcOutputMetadata where
  (SvcOutputMetadata a) == (SvcOutputMetadata b) = js_eq a b

instance PToJSVal SvcOutputMetadata where
  pToJSVal = unSvcOutputMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal SvcOutputMetadata where
  pFromJSVal = SvcOutputMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal SvcOutputMetadata where
  toJSVal = return . unSvcOutputMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal SvcOutputMetadata where
  fromJSVal = return . fmap SvcOutputMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . SvcOutputMetadata
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject SvcOutputMetadata where
  typeGType _ = gTypeSvcOutputMetadata
  {-# INLINE typeGType #-}

noSvcOutputMetadata :: Maybe SvcOutputMetadata
noSvcOutputMetadata = Nothing
{-# INLINE noSvcOutputMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeSvcOutputMetadata :: GType

-- | Functions for this interface are in "GHCJS.DOM.TaskController" (scheduling-apis).
newtype TaskController = TaskController { unTaskController :: JSVal }

instance Eq TaskController where
  (TaskController a) == (TaskController b) = js_eq a b

instance PToJSVal TaskController where
  pToJSVal = unTaskController
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskController where
  pFromJSVal = TaskController
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskController where
  toJSVal = return . unTaskController
  {-# INLINE toJSVal #-}

instance FromJSVal TaskController where
  fromJSVal = return . fmap TaskController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskController
  {-# INLINE fromJSValUnchecked #-}

instance IsAbortController TaskController

instance IsGObject TaskController where
  typeGType _ = gTypeTaskController
  {-# INLINE typeGType #-}

noTaskController :: Maybe TaskController
noTaskController = Nothing
{-# INLINE noTaskController #-}

foreign import javascript unsafe "(() => globalThis[\"TaskController\"])" gTypeTaskController :: GType

-- | Dictionary TaskControllerInit (scheduling-apis)
newtype TaskControllerInit = TaskControllerInit { unTaskControllerInit :: JSVal }

instance Eq TaskControllerInit where
  (TaskControllerInit a) == (TaskControllerInit b) = js_eq a b

instance PToJSVal TaskControllerInit where
  pToJSVal = unTaskControllerInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskControllerInit where
  pFromJSVal = TaskControllerInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskControllerInit where
  toJSVal = return . unTaskControllerInit
  {-# INLINE toJSVal #-}

instance FromJSVal TaskControllerInit where
  fromJSVal = return . fmap TaskControllerInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskControllerInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TaskControllerInit where
  typeGType _ = gTypeTaskControllerInit
  {-# INLINE typeGType #-}

noTaskControllerInit :: Maybe TaskControllerInit
noTaskControllerInit = Nothing
{-# INLINE noTaskControllerInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTaskControllerInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.TaskPriorityChangeEvent" (scheduling-apis).
newtype TaskPriorityChangeEvent = TaskPriorityChangeEvent { unTaskPriorityChangeEvent :: JSVal }

instance Eq TaskPriorityChangeEvent where
  (TaskPriorityChangeEvent a) == (TaskPriorityChangeEvent b) = js_eq a b

instance PToJSVal TaskPriorityChangeEvent where
  pToJSVal = unTaskPriorityChangeEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskPriorityChangeEvent where
  pFromJSVal = TaskPriorityChangeEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskPriorityChangeEvent where
  toJSVal = return . unTaskPriorityChangeEvent
  {-# INLINE toJSVal #-}

instance FromJSVal TaskPriorityChangeEvent where
  fromJSVal = return . fmap TaskPriorityChangeEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskPriorityChangeEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent TaskPriorityChangeEvent

instance IsGObject TaskPriorityChangeEvent where
  typeGType _ = gTypeTaskPriorityChangeEvent
  {-# INLINE typeGType #-}

noTaskPriorityChangeEvent :: Maybe TaskPriorityChangeEvent
noTaskPriorityChangeEvent = Nothing
{-# INLINE noTaskPriorityChangeEvent #-}

foreign import javascript unsafe "(() => globalThis[\"TaskPriorityChangeEvent\"])" gTypeTaskPriorityChangeEvent :: GType

-- | Dictionary TaskPriorityChangeEventInit (scheduling-apis)
newtype TaskPriorityChangeEventInit = TaskPriorityChangeEventInit { unTaskPriorityChangeEventInit :: JSVal }

instance Eq TaskPriorityChangeEventInit where
  (TaskPriorityChangeEventInit a) == (TaskPriorityChangeEventInit b) = js_eq a b

instance PToJSVal TaskPriorityChangeEventInit where
  pToJSVal = unTaskPriorityChangeEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskPriorityChangeEventInit where
  pFromJSVal = TaskPriorityChangeEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskPriorityChangeEventInit where
  toJSVal = return . unTaskPriorityChangeEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal TaskPriorityChangeEventInit where
  fromJSVal = return . fmap TaskPriorityChangeEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskPriorityChangeEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit TaskPriorityChangeEventInit

instance IsGObject TaskPriorityChangeEventInit where
  typeGType _ = gTypeTaskPriorityChangeEventInit
  {-# INLINE typeGType #-}

noTaskPriorityChangeEventInit :: Maybe TaskPriorityChangeEventInit
noTaskPriorityChangeEventInit = Nothing
{-# INLINE noTaskPriorityChangeEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTaskPriorityChangeEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.TaskSignal" (scheduling-apis).
newtype TaskSignal = TaskSignal { unTaskSignal :: JSVal }

instance Eq TaskSignal where
  (TaskSignal a) == (TaskSignal b) = js_eq a b

instance PToJSVal TaskSignal where
  pToJSVal = unTaskSignal
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskSignal where
  pFromJSVal = TaskSignal
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskSignal where
  toJSVal = return . unTaskSignal
  {-# INLINE toJSVal #-}

instance FromJSVal TaskSignal where
  fromJSVal = return . fmap TaskSignal . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskSignal
  {-# INLINE fromJSValUnchecked #-}

instance IsAbortSignal TaskSignal
instance IsEventTarget TaskSignal

instance IsGObject TaskSignal where
  typeGType _ = gTypeTaskSignal
  {-# INLINE typeGType #-}

noTaskSignal :: Maybe TaskSignal
noTaskSignal = Nothing
{-# INLINE noTaskSignal #-}

foreign import javascript unsafe "(() => globalThis[\"TaskSignal\"])" gTypeTaskSignal :: GType

-- | Dictionary TaskSignalAnyInit (scheduling-apis)
newtype TaskSignalAnyInit = TaskSignalAnyInit { unTaskSignalAnyInit :: JSVal }

instance Eq TaskSignalAnyInit where
  (TaskSignalAnyInit a) == (TaskSignalAnyInit b) = js_eq a b

instance PToJSVal TaskSignalAnyInit where
  pToJSVal = unTaskSignalAnyInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TaskSignalAnyInit where
  pFromJSVal = TaskSignalAnyInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TaskSignalAnyInit where
  toJSVal = return . unTaskSignalAnyInit
  {-# INLINE toJSVal #-}

instance FromJSVal TaskSignalAnyInit where
  fromJSVal = return . fmap TaskSignalAnyInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TaskSignalAnyInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TaskSignalAnyInit where
  typeGType _ = gTypeTaskSignalAnyInit
  {-# INLINE typeGType #-}

noTaskSignalAnyInit :: Maybe TaskSignalAnyInit
noTaskSignalAnyInit = Nothing
{-# INLINE noTaskSignalAnyInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTaskSignalAnyInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.Text" (dom).
newtype Text = Text { unText :: JSVal }

instance Eq Text where
  (Text a) == (Text b) = js_eq a b

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 = return . fmap Text . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Text
  {-# INLINE fromJSValUnchecked #-}

class (IsCharacterData o, IsSlottable o, IsGObject o) => IsText o
toText :: IsText o => o -> Text
toText = Text . coerce

instance IsText Text
instance IsSlottable Text
instance IsCharacterData Text
instance IsChildNode Text
instance IsNonDocumentTypeChildNode Text
instance IsNode Text
instance IsEventTarget Text

instance IsGObject Text where
  typeGType _ = gTypeText
  {-# INLINE typeGType #-}

noText :: Maybe Text
noText = Nothing
{-# INLINE noText #-}

foreign import javascript unsafe "(() => globalThis[\"Text\"])" gTypeText :: GType

-- | Dictionary TextDecodeOptions (encoding)
newtype TextDecodeOptions = TextDecodeOptions { unTextDecodeOptions :: JSVal }

instance Eq TextDecodeOptions where
  (TextDecodeOptions a) == (TextDecodeOptions b) = js_eq a b

instance PToJSVal TextDecodeOptions where
  pToJSVal = unTextDecodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextDecodeOptions where
  pFromJSVal = TextDecodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextDecodeOptions where
  toJSVal = return . unTextDecodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal TextDecodeOptions where
  fromJSVal = return . fmap TextDecodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextDecodeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TextDecodeOptions where
  typeGType _ = gTypeTextDecodeOptions
  {-# INLINE typeGType #-}

noTextDecodeOptions :: Maybe TextDecodeOptions
noTextDecodeOptions = Nothing
{-# INLINE noTextDecodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTextDecodeOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextDecoder" (encoding).
newtype TextDecoder = TextDecoder { unTextDecoder :: JSVal }

instance Eq TextDecoder where
  (TextDecoder a) == (TextDecoder b) = js_eq a b

instance PToJSVal TextDecoder where
  pToJSVal = unTextDecoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextDecoder where
  pFromJSVal = TextDecoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextDecoder where
  toJSVal = return . unTextDecoder
  {-# INLINE toJSVal #-}

instance FromJSVal TextDecoder where
  fromJSVal = return . fmap TextDecoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextDecoder
  {-# INLINE fromJSValUnchecked #-}

instance IsTextDecoderCommon TextDecoder

instance IsGObject TextDecoder where
  typeGType _ = gTypeTextDecoder
  {-# INLINE typeGType #-}

noTextDecoder :: Maybe TextDecoder
noTextDecoder = Nothing
{-# INLINE noTextDecoder #-}

foreign import javascript unsafe "(() => globalThis[\"TextDecoder\"])" gTypeTextDecoder :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextDecoderCommon" (encoding).
newtype TextDecoderCommon = TextDecoderCommon { unTextDecoderCommon :: JSVal }

instance Eq TextDecoderCommon where
  (TextDecoderCommon a) == (TextDecoderCommon b) = js_eq a b

instance PToJSVal TextDecoderCommon where
  pToJSVal = unTextDecoderCommon
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextDecoderCommon where
  pFromJSVal = TextDecoderCommon
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextDecoderCommon where
  toJSVal = return . unTextDecoderCommon
  {-# INLINE toJSVal #-}

instance FromJSVal TextDecoderCommon where
  fromJSVal = return . fmap TextDecoderCommon . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextDecoderCommon
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsTextDecoderCommon o
toTextDecoderCommon :: IsTextDecoderCommon o => o -> TextDecoderCommon
toTextDecoderCommon = TextDecoderCommon . coerce

instance IsTextDecoderCommon TextDecoderCommon

instance IsGObject TextDecoderCommon where
  typeGType _ = gTypeTextDecoderCommon
  {-# INLINE typeGType #-}

noTextDecoderCommon :: Maybe TextDecoderCommon
noTextDecoderCommon = Nothing
{-# INLINE noTextDecoderCommon #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTextDecoderCommon :: GType

-- | Dictionary TextDecoderOptions (encoding)
newtype TextDecoderOptions = TextDecoderOptions { unTextDecoderOptions :: JSVal }

instance Eq TextDecoderOptions where
  (TextDecoderOptions a) == (TextDecoderOptions b) = js_eq a b

instance PToJSVal TextDecoderOptions where
  pToJSVal = unTextDecoderOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextDecoderOptions where
  pFromJSVal = TextDecoderOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextDecoderOptions where
  toJSVal = return . unTextDecoderOptions
  {-# INLINE toJSVal #-}

instance FromJSVal TextDecoderOptions where
  fromJSVal = return . fmap TextDecoderOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextDecoderOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TextDecoderOptions where
  typeGType _ = gTypeTextDecoderOptions
  {-# INLINE typeGType #-}

noTextDecoderOptions :: Maybe TextDecoderOptions
noTextDecoderOptions = Nothing
{-# INLINE noTextDecoderOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTextDecoderOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextDecoderStream" (encoding).
newtype TextDecoderStream = TextDecoderStream { unTextDecoderStream :: JSVal }

instance Eq TextDecoderStream where
  (TextDecoderStream a) == (TextDecoderStream b) = js_eq a b

instance PToJSVal TextDecoderStream where
  pToJSVal = unTextDecoderStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextDecoderStream where
  pFromJSVal = TextDecoderStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextDecoderStream where
  toJSVal = return . unTextDecoderStream
  {-# INLINE toJSVal #-}

instance FromJSVal TextDecoderStream where
  fromJSVal = return . fmap TextDecoderStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextDecoderStream
  {-# INLINE fromJSValUnchecked #-}

instance IsGenericTransformStream TextDecoderStream
instance IsTextDecoderCommon TextDecoderStream

instance IsGObject TextDecoderStream where
  typeGType _ = gTypeTextDecoderStream
  {-# INLINE typeGType #-}

noTextDecoderStream :: Maybe TextDecoderStream
noTextDecoderStream = Nothing
{-# INLINE noTextDecoderStream #-}

foreign import javascript unsafe "(() => globalThis[\"TextDecoderStream\"])" gTypeTextDecoderStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextEncoder" (encoding).
newtype TextEncoder = TextEncoder { unTextEncoder :: JSVal }

instance Eq TextEncoder where
  (TextEncoder a) == (TextEncoder b) = js_eq a b

instance PToJSVal TextEncoder where
  pToJSVal = unTextEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextEncoder where
  pFromJSVal = TextEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextEncoder where
  toJSVal = return . unTextEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal TextEncoder where
  fromJSVal = return . fmap TextEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsTextEncoderCommon TextEncoder

instance IsGObject TextEncoder where
  typeGType _ = gTypeTextEncoder
  {-# INLINE typeGType #-}

noTextEncoder :: Maybe TextEncoder
noTextEncoder = Nothing
{-# INLINE noTextEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"TextEncoder\"])" gTypeTextEncoder :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextEncoderCommon" (encoding).
newtype TextEncoderCommon = TextEncoderCommon { unTextEncoderCommon :: JSVal }

instance Eq TextEncoderCommon where
  (TextEncoderCommon a) == (TextEncoderCommon b) = js_eq a b

instance PToJSVal TextEncoderCommon where
  pToJSVal = unTextEncoderCommon
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextEncoderCommon where
  pFromJSVal = TextEncoderCommon
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextEncoderCommon where
  toJSVal = return . unTextEncoderCommon
  {-# INLINE toJSVal #-}

instance FromJSVal TextEncoderCommon where
  fromJSVal = return . fmap TextEncoderCommon . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextEncoderCommon
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsTextEncoderCommon o
toTextEncoderCommon :: IsTextEncoderCommon o => o -> TextEncoderCommon
toTextEncoderCommon = TextEncoderCommon . coerce

instance IsTextEncoderCommon TextEncoderCommon

instance IsGObject TextEncoderCommon where
  typeGType _ = gTypeTextEncoderCommon
  {-# INLINE typeGType #-}

noTextEncoderCommon :: Maybe TextEncoderCommon
noTextEncoderCommon = Nothing
{-# INLINE noTextEncoderCommon #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTextEncoderCommon :: GType

-- | Dictionary TextEncoderEncodeIntoResult (encoding)
newtype TextEncoderEncodeIntoResult = TextEncoderEncodeIntoResult { unTextEncoderEncodeIntoResult :: JSVal }

instance Eq TextEncoderEncodeIntoResult where
  (TextEncoderEncodeIntoResult a) == (TextEncoderEncodeIntoResult b) = js_eq a b

instance PToJSVal TextEncoderEncodeIntoResult where
  pToJSVal = unTextEncoderEncodeIntoResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextEncoderEncodeIntoResult where
  pFromJSVal = TextEncoderEncodeIntoResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextEncoderEncodeIntoResult where
  toJSVal = return . unTextEncoderEncodeIntoResult
  {-# INLINE toJSVal #-}

instance FromJSVal TextEncoderEncodeIntoResult where
  fromJSVal = return . fmap TextEncoderEncodeIntoResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextEncoderEncodeIntoResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TextEncoderEncodeIntoResult where
  typeGType _ = gTypeTextEncoderEncodeIntoResult
  {-# INLINE typeGType #-}

noTextEncoderEncodeIntoResult :: Maybe TextEncoderEncodeIntoResult
noTextEncoderEncodeIntoResult = Nothing
{-# INLINE noTextEncoderEncodeIntoResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTextEncoderEncodeIntoResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextEncoderStream" (encoding).
newtype TextEncoderStream = TextEncoderStream { unTextEncoderStream :: JSVal }

instance Eq TextEncoderStream where
  (TextEncoderStream a) == (TextEncoderStream b) = js_eq a b

instance PToJSVal TextEncoderStream where
  pToJSVal = unTextEncoderStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal TextEncoderStream where
  pFromJSVal = TextEncoderStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal TextEncoderStream where
  toJSVal = return . unTextEncoderStream
  {-# INLINE toJSVal #-}

instance FromJSVal TextEncoderStream where
  fromJSVal = return . fmap TextEncoderStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextEncoderStream
  {-# INLINE fromJSValUnchecked #-}

instance IsGenericTransformStream TextEncoderStream
instance IsTextEncoderCommon TextEncoderStream

instance IsGObject TextEncoderStream where
  typeGType _ = gTypeTextEncoderStream
  {-# INLINE typeGType #-}

noTextEncoderStream :: Maybe TextEncoderStream
noTextEncoderStream = Nothing
{-# INLINE noTextEncoderStream #-}

foreign import javascript unsafe "(() => globalThis[\"TextEncoderStream\"])" gTypeTextEncoderStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextEvent" (uievents).
newtype TextEvent = TextEvent { unTextEvent :: JSVal }

instance Eq TextEvent where
  (TextEvent a) == (TextEvent b) = js_eq a b

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 = return . fmap TextEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent TextEvent
instance IsEvent TextEvent

instance IsGObject TextEvent where
  typeGType _ = gTypeTextEvent
  {-# INLINE typeGType #-}

noTextEvent :: Maybe TextEvent
noTextEvent = Nothing
{-# INLINE noTextEvent #-}

foreign import javascript unsafe "(() => globalThis[\"TextEvent\"])" gTypeTextEvent :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextMetrics" (html).
newtype TextMetrics = TextMetrics { unTextMetrics :: JSVal }

instance Eq TextMetrics where
  (TextMetrics a) == (TextMetrics b) = js_eq a b

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 = return . fmap TextMetrics . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextMetrics
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TextMetrics where
  typeGType _ = gTypeTextMetrics
  {-# INLINE typeGType #-}

noTextMetrics :: Maybe TextMetrics
noTextMetrics = Nothing
{-# INLINE noTextMetrics #-}

foreign import javascript unsafe "(() => globalThis[\"TextMetrics\"])" gTypeTextMetrics :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextTrack" (html).
newtype TextTrack = TextTrack { unTextTrack :: JSVal }

instance Eq TextTrack where
  (TextTrack a) == (TextTrack b) = js_eq a b

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 = return . fmap TextTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextTrack
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget TextTrack

instance IsGObject TextTrack where
  typeGType _ = gTypeTextTrack
  {-# INLINE typeGType #-}

noTextTrack :: Maybe TextTrack
noTextTrack = Nothing
{-# INLINE noTextTrack #-}

foreign import javascript unsafe "(() => globalThis[\"TextTrack\"])" gTypeTextTrack :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextTrackCue" (html).
newtype TextTrackCue = TextTrackCue { unTextTrackCue :: JSVal }

instance Eq TextTrackCue where
  (TextTrackCue a) == (TextTrackCue b) = js_eq a b

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 = return . fmap TextTrackCue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextTrackCue
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject 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 #-}

noTextTrackCue :: Maybe TextTrackCue
noTextTrackCue = Nothing
{-# INLINE noTextTrackCue #-}

foreign import javascript unsafe "(() => globalThis[\"TextTrackCue\"])" gTypeTextTrackCue :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextTrackCueList" (html).
newtype TextTrackCueList = TextTrackCueList { unTextTrackCueList :: JSVal }

instance Eq TextTrackCueList where
  (TextTrackCueList a) == (TextTrackCueList b) = js_eq a b

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 = return . fmap TextTrackCueList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextTrackCueList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TextTrackCueList where
  typeGType _ = gTypeTextTrackCueList
  {-# INLINE typeGType #-}

noTextTrackCueList :: Maybe TextTrackCueList
noTextTrackCueList = Nothing
{-# INLINE noTextTrackCueList #-}

foreign import javascript unsafe "(() => globalThis[\"TextTrackCueList\"])" gTypeTextTrackCueList :: GType

-- | Functions for this interface are in "GHCJS.DOM.TextTrackList" (html).
newtype TextTrackList = TextTrackList { unTextTrackList :: JSVal }

instance Eq TextTrackList where
  (TextTrackList a) == (TextTrackList b) = js_eq a b

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 = return . fmap TextTrackList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TextTrackList
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget TextTrackList

instance IsGObject TextTrackList where
  typeGType _ = gTypeTextTrackList
  {-# INLINE typeGType #-}

noTextTrackList :: Maybe TextTrackList
noTextTrackList = Nothing
{-# INLINE noTextTrackList #-}

foreign import javascript unsafe "(() => globalThis[\"TextTrackList\"])" gTypeTextTrackList :: GType

-- | Functions for this interface are in "GHCJS.DOM.TimeRanges" (html).
newtype TimeRanges = TimeRanges { unTimeRanges :: JSVal }

instance Eq TimeRanges where
  (TimeRanges a) == (TimeRanges b) = js_eq a b

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 = return . fmap TimeRanges . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TimeRanges
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TimeRanges where
  typeGType _ = gTypeTimeRanges
  {-# INLINE typeGType #-}

noTimeRanges :: Maybe TimeRanges
noTimeRanges = Nothing
{-# INLINE noTimeRanges #-}

foreign import javascript unsafe "(() => globalThis[\"TimeRanges\"])" gTypeTimeRanges :: GType

-- | Dictionary TimelineRangeOffset (web-animations-2)
newtype TimelineRangeOffset = TimelineRangeOffset { unTimelineRangeOffset :: JSVal }

instance Eq TimelineRangeOffset where
  (TimelineRangeOffset a) == (TimelineRangeOffset b) = js_eq a b

instance PToJSVal TimelineRangeOffset where
  pToJSVal = unTimelineRangeOffset
  {-# INLINE pToJSVal #-}

instance PFromJSVal TimelineRangeOffset where
  pFromJSVal = TimelineRangeOffset
  {-# INLINE pFromJSVal #-}

instance ToJSVal TimelineRangeOffset where
  toJSVal = return . unTimelineRangeOffset
  {-# INLINE toJSVal #-}

instance FromJSVal TimelineRangeOffset where
  fromJSVal = return . fmap TimelineRangeOffset . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TimelineRangeOffset
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TimelineRangeOffset where
  typeGType _ = gTypeTimelineRangeOffset
  {-# INLINE typeGType #-}

noTimelineRangeOffset :: Maybe TimelineRangeOffset
noTimelineRangeOffset = Nothing
{-# INLINE noTimelineRangeOffset #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTimelineRangeOffset :: GType

-- | Functions for this interface are in "GHCJS.DOM.ToggleEvent" (html).
newtype ToggleEvent = ToggleEvent { unToggleEvent :: JSVal }

instance Eq ToggleEvent where
  (ToggleEvent a) == (ToggleEvent b) = js_eq a b

instance PToJSVal ToggleEvent where
  pToJSVal = unToggleEvent
  {-# INLINE pToJSVal #-}

instance PFromJSVal ToggleEvent where
  pFromJSVal = ToggleEvent
  {-# INLINE pFromJSVal #-}

instance ToJSVal ToggleEvent where
  toJSVal = return . unToggleEvent
  {-# INLINE toJSVal #-}

instance FromJSVal ToggleEvent where
  fromJSVal = return . fmap ToggleEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ToggleEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent ToggleEvent

instance IsGObject ToggleEvent where
  typeGType _ = gTypeToggleEvent
  {-# INLINE typeGType #-}

noToggleEvent :: Maybe ToggleEvent
noToggleEvent = Nothing
{-# INLINE noToggleEvent #-}

foreign import javascript unsafe "(() => globalThis[\"ToggleEvent\"])" gTypeToggleEvent :: GType

-- | Dictionary ToggleEventInit (html)
newtype ToggleEventInit = ToggleEventInit { unToggleEventInit :: JSVal }

instance Eq ToggleEventInit where
  (ToggleEventInit a) == (ToggleEventInit b) = js_eq a b

instance PToJSVal ToggleEventInit where
  pToJSVal = unToggleEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal ToggleEventInit where
  pFromJSVal = ToggleEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal ToggleEventInit where
  toJSVal = return . unToggleEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal ToggleEventInit where
  fromJSVal = return . fmap ToggleEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ToggleEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit ToggleEventInit

instance IsGObject ToggleEventInit where
  typeGType _ = gTypeToggleEventInit
  {-# INLINE typeGType #-}

noToggleEventInit :: Maybe ToggleEventInit
noToggleEventInit = Nothing
{-# INLINE noToggleEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeToggleEventInit :: GType

-- | Dictionary TogglePopoverOptions (html)
newtype TogglePopoverOptions = TogglePopoverOptions { unTogglePopoverOptions :: JSVal }

instance Eq TogglePopoverOptions where
  (TogglePopoverOptions a) == (TogglePopoverOptions b) = js_eq a b

instance PToJSVal TogglePopoverOptions where
  pToJSVal = unTogglePopoverOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal TogglePopoverOptions where
  pFromJSVal = TogglePopoverOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal TogglePopoverOptions where
  toJSVal = return . unTogglePopoverOptions
  {-# INLINE toJSVal #-}

instance FromJSVal TogglePopoverOptions where
  fromJSVal = return . fmap TogglePopoverOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TogglePopoverOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsShowPopoverOptions TogglePopoverOptions

instance IsGObject TogglePopoverOptions where
  typeGType _ = gTypeTogglePopoverOptions
  {-# INLINE typeGType #-}

noTogglePopoverOptions :: Maybe TogglePopoverOptions
noTogglePopoverOptions = Nothing
{-# INLINE noTogglePopoverOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTogglePopoverOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Touch" (touch-events).
newtype Touch = Touch { unTouch :: JSVal }

instance Eq Touch where
  (Touch a) == (Touch b) = js_eq a b

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 = return . fmap Touch . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Touch
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject Touch where
  typeGType _ = gTypeTouch
  {-# INLINE typeGType #-}

noTouch :: Maybe Touch
noTouch = Nothing
{-# INLINE noTouch #-}

foreign import javascript unsafe "(() => globalThis[\"Touch\"])" gTypeTouch :: GType

-- | Functions for this interface are in "GHCJS.DOM.TouchEvent" (touch-events).
newtype TouchEvent = TouchEvent { unTouchEvent :: JSVal }

instance Eq TouchEvent where
  (TouchEvent a) == (TouchEvent b) = js_eq a b

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 = return . fmap TouchEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TouchEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsUIEvent TouchEvent
instance IsEvent TouchEvent

instance IsGObject TouchEvent where
  typeGType _ = gTypeTouchEvent
  {-# INLINE typeGType #-}

noTouchEvent :: Maybe TouchEvent
noTouchEvent = Nothing
{-# INLINE noTouchEvent #-}

foreign import javascript unsafe "(() => globalThis[\"TouchEvent\"])" gTypeTouchEvent :: GType

-- | Dictionary TouchEventInit (touch-events)
newtype TouchEventInit = TouchEventInit { unTouchEventInit :: JSVal }

instance Eq TouchEventInit where
  (TouchEventInit a) == (TouchEventInit b) = js_eq a b

instance PToJSVal TouchEventInit where
  pToJSVal = unTouchEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TouchEventInit where
  pFromJSVal = TouchEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TouchEventInit where
  toJSVal = return . unTouchEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal TouchEventInit where
  fromJSVal = return . fmap TouchEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TouchEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventModifierInit TouchEventInit
instance IsUIEventInit TouchEventInit
instance IsEventInit TouchEventInit

instance IsGObject TouchEventInit where
  typeGType _ = gTypeTouchEventInit
  {-# INLINE typeGType #-}

noTouchEventInit :: Maybe TouchEventInit
noTouchEventInit = Nothing
{-# INLINE noTouchEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTouchEventInit :: GType

-- | Dictionary TouchInit (touch-events)
newtype TouchInit = TouchInit { unTouchInit :: JSVal }

instance Eq TouchInit where
  (TouchInit a) == (TouchInit b) = js_eq a b

instance PToJSVal TouchInit where
  pToJSVal = unTouchInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TouchInit where
  pFromJSVal = TouchInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TouchInit where
  toJSVal = return . unTouchInit
  {-# INLINE toJSVal #-}

instance FromJSVal TouchInit where
  fromJSVal = return . fmap TouchInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TouchInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TouchInit where
  typeGType _ = gTypeTouchInit
  {-# INLINE typeGType #-}

noTouchInit :: Maybe TouchInit
noTouchInit = Nothing
{-# INLINE noTouchInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTouchInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.TouchList" (touch-events).
newtype TouchList = TouchList { unTouchList :: JSVal }

instance Eq TouchList where
  (TouchList a) == (TouchList b) = js_eq a b

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 = return . fmap TouchList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TouchList
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TouchList where
  typeGType _ = gTypeTouchList
  {-# INLINE typeGType #-}

noTouchList :: Maybe TouchList
noTouchList = Nothing
{-# INLINE noTouchList #-}

foreign import javascript unsafe "(() => globalThis[\"TouchList\"])" gTypeTouchList :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrackEvent" (html).
newtype TrackEvent = TrackEvent { unTrackEvent :: JSVal }

instance Eq TrackEvent where
  (TrackEvent a) == (TrackEvent b) = js_eq a b

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 = return . fmap TrackEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrackEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent TrackEvent

instance IsGObject TrackEvent where
  typeGType _ = gTypeTrackEvent
  {-# INLINE typeGType #-}

noTrackEvent :: Maybe TrackEvent
noTrackEvent = Nothing
{-# INLINE noTrackEvent #-}

foreign import javascript unsafe "(() => globalThis[\"TrackEvent\"])" gTypeTrackEvent :: GType

-- | Dictionary TrackEventInit (html)
newtype TrackEventInit = TrackEventInit { unTrackEventInit :: JSVal }

instance Eq TrackEventInit where
  (TrackEventInit a) == (TrackEventInit b) = js_eq a b

instance PToJSVal TrackEventInit where
  pToJSVal = unTrackEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrackEventInit where
  pFromJSVal = TrackEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrackEventInit where
  toJSVal = return . unTrackEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal TrackEventInit where
  fromJSVal = return . fmap TrackEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrackEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit TrackEventInit

instance IsGObject TrackEventInit where
  typeGType _ = gTypeTrackEventInit
  {-# INLINE typeGType #-}

noTrackEventInit :: Maybe TrackEventInit
noTrackEventInit = Nothing
{-# INLINE noTrackEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTrackEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.TransformStream" (streams).
newtype TransformStream = TransformStream { unTransformStream :: JSVal }

instance Eq TransformStream where
  (TransformStream a) == (TransformStream b) = js_eq a b

instance PToJSVal TransformStream where
  pToJSVal = unTransformStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal TransformStream where
  pFromJSVal = TransformStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal TransformStream where
  toJSVal = return . unTransformStream
  {-# INLINE toJSVal #-}

instance FromJSVal TransformStream where
  fromJSVal = return . fmap TransformStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TransformStream
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TransformStream where
  typeGType _ = gTypeTransformStream
  {-# INLINE typeGType #-}

noTransformStream :: Maybe TransformStream
noTransformStream = Nothing
{-# INLINE noTransformStream #-}

foreign import javascript unsafe "(() => globalThis[\"TransformStream\"])" gTypeTransformStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.TransformStreamDefaultController" (streams).
newtype TransformStreamDefaultController = TransformStreamDefaultController { unTransformStreamDefaultController :: JSVal }

instance Eq TransformStreamDefaultController where
  (TransformStreamDefaultController a) == (TransformStreamDefaultController b) = js_eq a b

instance PToJSVal TransformStreamDefaultController where
  pToJSVal = unTransformStreamDefaultController
  {-# INLINE pToJSVal #-}

instance PFromJSVal TransformStreamDefaultController where
  pFromJSVal = TransformStreamDefaultController
  {-# INLINE pFromJSVal #-}

instance ToJSVal TransformStreamDefaultController where
  toJSVal = return . unTransformStreamDefaultController
  {-# INLINE toJSVal #-}

instance FromJSVal TransformStreamDefaultController where
  fromJSVal = return . fmap TransformStreamDefaultController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TransformStreamDefaultController
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TransformStreamDefaultController where
  typeGType _ = gTypeTransformStreamDefaultController
  {-# INLINE typeGType #-}

noTransformStreamDefaultController :: Maybe TransformStreamDefaultController
noTransformStreamDefaultController = Nothing
{-# INLINE noTransformStreamDefaultController #-}

foreign import javascript unsafe "(() => globalThis[\"TransformStreamDefaultController\"])" gTypeTransformStreamDefaultController :: GType

-- | Functions for this interface are in "GHCJS.DOM.TransitionEvent" (css-transitions-1).
newtype TransitionEvent = TransitionEvent { unTransitionEvent :: JSVal }

instance Eq TransitionEvent where
  (TransitionEvent a) == (TransitionEvent b) = js_eq a b

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 = return . fmap TransitionEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TransitionEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent TransitionEvent

instance IsGObject TransitionEvent where
  typeGType _ = gTypeTransitionEvent
  {-# INLINE typeGType #-}

noTransitionEvent :: Maybe TransitionEvent
noTransitionEvent = Nothing
{-# INLINE noTransitionEvent #-}

foreign import javascript unsafe "(() => globalThis[\"TransitionEvent\"])" gTypeTransitionEvent :: GType

-- | Dictionary TransitionEventInit (css-transitions-1)
newtype TransitionEventInit = TransitionEventInit { unTransitionEventInit :: JSVal }

instance Eq TransitionEventInit where
  (TransitionEventInit a) == (TransitionEventInit b) = js_eq a b

instance PToJSVal TransitionEventInit where
  pToJSVal = unTransitionEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal TransitionEventInit where
  pFromJSVal = TransitionEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal TransitionEventInit where
  toJSVal = return . unTransitionEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal TransitionEventInit where
  fromJSVal = return . fmap TransitionEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TransitionEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit TransitionEventInit

instance IsGObject TransitionEventInit where
  typeGType _ = gTypeTransitionEventInit
  {-# INLINE typeGType #-}

noTransitionEventInit :: Maybe TransitionEventInit
noTransitionEventInit = Nothing
{-# INLINE noTransitionEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTransitionEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.TreeWalker" (dom).
newtype TreeWalker = TreeWalker { unTreeWalker :: JSVal }

instance Eq TreeWalker where
  (TreeWalker a) == (TreeWalker b) = js_eq a b

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 = return . fmap TreeWalker . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TreeWalker
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TreeWalker where
  typeGType _ = gTypeTreeWalker
  {-# INLINE typeGType #-}

noTreeWalker :: Maybe TreeWalker
noTreeWalker = Nothing
{-# INLINE noTreeWalker #-}

foreign import javascript unsafe "(() => globalThis[\"TreeWalker\"])" gTypeTreeWalker :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrustedHTML" (trusted-types).
newtype TrustedHTML = TrustedHTML { unTrustedHTML :: JSVal }

instance Eq TrustedHTML where
  (TrustedHTML a) == (TrustedHTML b) = js_eq a b

instance PToJSVal TrustedHTML where
  pToJSVal = unTrustedHTML
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedHTML where
  pFromJSVal = TrustedHTML
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedHTML where
  toJSVal = return . unTrustedHTML
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedHTML where
  fromJSVal = return . fmap TrustedHTML . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedHTML
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedHTML where
  typeGType _ = gTypeTrustedHTML
  {-# INLINE typeGType #-}

noTrustedHTML :: Maybe TrustedHTML
noTrustedHTML = Nothing
{-# INLINE noTrustedHTML #-}

foreign import javascript unsafe "(() => globalThis[\"TrustedHTML\"])" gTypeTrustedHTML :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrustedHTMLParserOptions" (trusted-types).
newtype TrustedHTMLParserOptions = TrustedHTMLParserOptions { unTrustedHTMLParserOptions :: JSVal }

instance Eq TrustedHTMLParserOptions where
  (TrustedHTMLParserOptions a) == (TrustedHTMLParserOptions b) = js_eq a b

instance PToJSVal TrustedHTMLParserOptions where
  pToJSVal = unTrustedHTMLParserOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedHTMLParserOptions where
  pFromJSVal = TrustedHTMLParserOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedHTMLParserOptions where
  toJSVal = return . unTrustedHTMLParserOptions
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedHTMLParserOptions where
  fromJSVal = return . fmap TrustedHTMLParserOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedHTMLParserOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedHTMLParserOptions where
  typeGType _ = gTypeTrustedHTMLParserOptions
  {-# INLINE typeGType #-}

noTrustedHTMLParserOptions :: Maybe TrustedHTMLParserOptions
noTrustedHTMLParserOptions = Nothing
{-# INLINE noTrustedHTMLParserOptions #-}

foreign import javascript unsafe "(() => globalThis[\"TrustedHTMLParserOptions\"])" gTypeTrustedHTMLParserOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrustedScript" (trusted-types).
newtype TrustedScript = TrustedScript { unTrustedScript :: JSVal }

instance Eq TrustedScript where
  (TrustedScript a) == (TrustedScript b) = js_eq a b

instance PToJSVal TrustedScript where
  pToJSVal = unTrustedScript
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedScript where
  pFromJSVal = TrustedScript
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedScript where
  toJSVal = return . unTrustedScript
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedScript where
  fromJSVal = return . fmap TrustedScript . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedScript
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedScript where
  typeGType _ = gTypeTrustedScript
  {-# INLINE typeGType #-}

noTrustedScript :: Maybe TrustedScript
noTrustedScript = Nothing
{-# INLINE noTrustedScript #-}

foreign import javascript unsafe "(() => globalThis[\"TrustedScript\"])" gTypeTrustedScript :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrustedScriptURL" (trusted-types).
newtype TrustedScriptURL = TrustedScriptURL { unTrustedScriptURL :: JSVal }

instance Eq TrustedScriptURL where
  (TrustedScriptURL a) == (TrustedScriptURL b) = js_eq a b

instance PToJSVal TrustedScriptURL where
  pToJSVal = unTrustedScriptURL
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedScriptURL where
  pFromJSVal = TrustedScriptURL
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedScriptURL where
  toJSVal = return . unTrustedScriptURL
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedScriptURL where
  fromJSVal = return . fmap TrustedScriptURL . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedScriptURL
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedScriptURL where
  typeGType _ = gTypeTrustedScriptURL
  {-# INLINE typeGType #-}

noTrustedScriptURL :: Maybe TrustedScriptURL
noTrustedScriptURL = Nothing
{-# INLINE noTrustedScriptURL #-}

foreign import javascript unsafe "(() => globalThis[\"TrustedScriptURL\"])" gTypeTrustedScriptURL :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrustedTypePolicy" (trusted-types).
newtype TrustedTypePolicy = TrustedTypePolicy { unTrustedTypePolicy :: JSVal }

instance Eq TrustedTypePolicy where
  (TrustedTypePolicy a) == (TrustedTypePolicy b) = js_eq a b

instance PToJSVal TrustedTypePolicy where
  pToJSVal = unTrustedTypePolicy
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedTypePolicy where
  pFromJSVal = TrustedTypePolicy
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedTypePolicy where
  toJSVal = return . unTrustedTypePolicy
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedTypePolicy where
  fromJSVal = return . fmap TrustedTypePolicy . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedTypePolicy
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedTypePolicy where
  typeGType _ = gTypeTrustedTypePolicy
  {-# INLINE typeGType #-}

noTrustedTypePolicy :: Maybe TrustedTypePolicy
noTrustedTypePolicy = Nothing
{-# INLINE noTrustedTypePolicy #-}

foreign import javascript unsafe "(() => globalThis[\"TrustedTypePolicy\"])" gTypeTrustedTypePolicy :: GType

-- | Functions for this interface are in "GHCJS.DOM.TrustedTypePolicyFactory" (trusted-types).
newtype TrustedTypePolicyFactory = TrustedTypePolicyFactory { unTrustedTypePolicyFactory :: JSVal }

instance Eq TrustedTypePolicyFactory where
  (TrustedTypePolicyFactory a) == (TrustedTypePolicyFactory b) = js_eq a b

instance PToJSVal TrustedTypePolicyFactory where
  pToJSVal = unTrustedTypePolicyFactory
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedTypePolicyFactory where
  pFromJSVal = TrustedTypePolicyFactory
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedTypePolicyFactory where
  toJSVal = return . unTrustedTypePolicyFactory
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedTypePolicyFactory where
  fromJSVal = return . fmap TrustedTypePolicyFactory . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedTypePolicyFactory
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedTypePolicyFactory where
  typeGType _ = gTypeTrustedTypePolicyFactory
  {-# INLINE typeGType #-}

noTrustedTypePolicyFactory :: Maybe TrustedTypePolicyFactory
noTrustedTypePolicyFactory = Nothing
{-# INLINE noTrustedTypePolicyFactory #-}

foreign import javascript unsafe "(() => globalThis[\"TrustedTypePolicyFactory\"])" gTypeTrustedTypePolicyFactory :: GType

-- | Dictionary TrustedTypePolicyOptions (trusted-types)
newtype TrustedTypePolicyOptions = TrustedTypePolicyOptions { unTrustedTypePolicyOptions :: JSVal }

instance Eq TrustedTypePolicyOptions where
  (TrustedTypePolicyOptions a) == (TrustedTypePolicyOptions b) = js_eq a b

instance PToJSVal TrustedTypePolicyOptions where
  pToJSVal = unTrustedTypePolicyOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal TrustedTypePolicyOptions where
  pFromJSVal = TrustedTypePolicyOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal TrustedTypePolicyOptions where
  toJSVal = return . unTrustedTypePolicyOptions
  {-# INLINE toJSVal #-}

instance FromJSVal TrustedTypePolicyOptions where
  fromJSVal = return . fmap TrustedTypePolicyOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . TrustedTypePolicyOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject TrustedTypePolicyOptions where
  typeGType _ = gTypeTrustedTypePolicyOptions
  {-# INLINE typeGType #-}

noTrustedTypePolicyOptions :: Maybe TrustedTypePolicyOptions
noTrustedTypePolicyOptions = Nothing
{-# INLINE noTrustedTypePolicyOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeTrustedTypePolicyOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.UIEvent" (uievents).
newtype UIEvent = UIEvent { unUIEvent :: JSVal }

instance Eq UIEvent where
  (UIEvent a) == (UIEvent b) = js_eq a b

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 = return . fmap UIEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . UIEvent
  {-# INLINE fromJSValUnchecked #-}

class (IsEvent o, IsGObject 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 #-}

noUIEvent :: Maybe UIEvent
noUIEvent = Nothing
{-# INLINE noUIEvent #-}

foreign import javascript unsafe "(() => globalThis[\"UIEvent\"])" gTypeUIEvent :: GType

-- | Dictionary UIEventInit (uievents)
newtype UIEventInit = UIEventInit { unUIEventInit :: JSVal }

instance Eq UIEventInit where
  (UIEventInit a) == (UIEventInit b) = js_eq a b

instance PToJSVal UIEventInit where
  pToJSVal = unUIEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal UIEventInit where
  pFromJSVal = UIEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal UIEventInit where
  toJSVal = return . unUIEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal UIEventInit where
  fromJSVal = return . fmap UIEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . UIEventInit
  {-# INLINE fromJSValUnchecked #-}

class (IsEventInit o, IsGObject o) => IsUIEventInit o
toUIEventInit :: IsUIEventInit o => o -> UIEventInit
toUIEventInit = UIEventInit . coerce

instance IsUIEventInit UIEventInit
instance IsEventInit UIEventInit

instance IsGObject UIEventInit where
  typeGType _ = gTypeUIEventInit
  {-# INLINE typeGType #-}

noUIEventInit :: Maybe UIEventInit
noUIEventInit = Nothing
{-# INLINE noUIEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeUIEventInit :: GType

-- | Dictionary ULongRange (mediacapture-streams)
newtype ULongRange = ULongRange { unULongRange :: JSVal }

instance Eq ULongRange where
  (ULongRange a) == (ULongRange b) = js_eq a b

instance PToJSVal ULongRange where
  pToJSVal = unULongRange
  {-# INLINE pToJSVal #-}

instance PFromJSVal ULongRange where
  pFromJSVal = ULongRange
  {-# INLINE pFromJSVal #-}

instance ToJSVal ULongRange where
  toJSVal = return . unULongRange
  {-# INLINE toJSVal #-}

instance FromJSVal ULongRange where
  fromJSVal = return . fmap ULongRange . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ULongRange
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsULongRange o
toULongRange :: IsULongRange o => o -> ULongRange
toULongRange = ULongRange . coerce

instance IsULongRange ULongRange

instance IsGObject ULongRange where
  typeGType _ = gTypeULongRange
  {-# INLINE typeGType #-}

noULongRange :: Maybe ULongRange
noULongRange = Nothing
{-# INLINE noULongRange #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeULongRange :: GType

-- | Functions for this interface are in "GHCJS.DOM.URL" (url).
newtype URL = URL { unURL :: JSVal }

instance Eq URL where
  (URL a) == (URL b) = js_eq a b

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 = return . fmap URL . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URL
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URL where
  typeGType _ = gTypeURL
  {-# INLINE typeGType #-}

noURL :: Maybe URL
noURL = Nothing
{-# INLINE noURL #-}

foreign import javascript unsafe "(() => globalThis[\"URL\"])" gTypeURL :: GType

-- | Functions for this interface are in "GHCJS.DOM.URLPattern" (urlpattern).
newtype URLPattern = URLPattern { unURLPattern :: JSVal }

instance Eq URLPattern where
  (URLPattern a) == (URLPattern b) = js_eq a b

instance PToJSVal URLPattern where
  pToJSVal = unURLPattern
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPattern where
  pFromJSVal = URLPattern
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPattern where
  toJSVal = return . unURLPattern
  {-# INLINE toJSVal #-}

instance FromJSVal URLPattern where
  fromJSVal = return . fmap URLPattern . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPattern
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URLPattern where
  typeGType _ = gTypeURLPattern
  {-# INLINE typeGType #-}

noURLPattern :: Maybe URLPattern
noURLPattern = Nothing
{-# INLINE noURLPattern #-}

foreign import javascript unsafe "(() => globalThis[\"URLPattern\"])" gTypeURLPattern :: GType

-- | Dictionary URLPatternComponentResult (urlpattern)
newtype URLPatternComponentResult = URLPatternComponentResult { unURLPatternComponentResult :: JSVal }

instance Eq URLPatternComponentResult where
  (URLPatternComponentResult a) == (URLPatternComponentResult b) = js_eq a b

instance PToJSVal URLPatternComponentResult where
  pToJSVal = unURLPatternComponentResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPatternComponentResult where
  pFromJSVal = URLPatternComponentResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPatternComponentResult where
  toJSVal = return . unURLPatternComponentResult
  {-# INLINE toJSVal #-}

instance FromJSVal URLPatternComponentResult where
  fromJSVal = return . fmap URLPatternComponentResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPatternComponentResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URLPatternComponentResult where
  typeGType _ = gTypeURLPatternComponentResult
  {-# INLINE typeGType #-}

noURLPatternComponentResult :: Maybe URLPatternComponentResult
noURLPatternComponentResult = Nothing
{-# INLINE noURLPatternComponentResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeURLPatternComponentResult :: GType

-- | Dictionary URLPatternInit (urlpattern)
newtype URLPatternInit = URLPatternInit { unURLPatternInit :: JSVal }

instance Eq URLPatternInit where
  (URLPatternInit a) == (URLPatternInit b) = js_eq a b

instance PToJSVal URLPatternInit where
  pToJSVal = unURLPatternInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPatternInit where
  pFromJSVal = URLPatternInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPatternInit where
  toJSVal = return . unURLPatternInit
  {-# INLINE toJSVal #-}

instance FromJSVal URLPatternInit where
  fromJSVal = return . fmap URLPatternInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPatternInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URLPatternInit where
  typeGType _ = gTypeURLPatternInit
  {-# INLINE typeGType #-}

noURLPatternInit :: Maybe URLPatternInit
noURLPatternInit = Nothing
{-# INLINE noURLPatternInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeURLPatternInit :: GType

-- | Dictionary URLPatternOptions (urlpattern)
newtype URLPatternOptions = URLPatternOptions { unURLPatternOptions :: JSVal }

instance Eq URLPatternOptions where
  (URLPatternOptions a) == (URLPatternOptions b) = js_eq a b

instance PToJSVal URLPatternOptions where
  pToJSVal = unURLPatternOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPatternOptions where
  pFromJSVal = URLPatternOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPatternOptions where
  toJSVal = return . unURLPatternOptions
  {-# INLINE toJSVal #-}

instance FromJSVal URLPatternOptions where
  fromJSVal = return . fmap URLPatternOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPatternOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URLPatternOptions where
  typeGType _ = gTypeURLPatternOptions
  {-# INLINE typeGType #-}

noURLPatternOptions :: Maybe URLPatternOptions
noURLPatternOptions = Nothing
{-# INLINE noURLPatternOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeURLPatternOptions :: GType

-- | Dictionary URLPatternResult (urlpattern)
newtype URLPatternResult = URLPatternResult { unURLPatternResult :: JSVal }

instance Eq URLPatternResult where
  (URLPatternResult a) == (URLPatternResult b) = js_eq a b

instance PToJSVal URLPatternResult where
  pToJSVal = unURLPatternResult
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLPatternResult where
  pFromJSVal = URLPatternResult
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLPatternResult where
  toJSVal = return . unURLPatternResult
  {-# INLINE toJSVal #-}

instance FromJSVal URLPatternResult where
  fromJSVal = return . fmap URLPatternResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLPatternResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URLPatternResult where
  typeGType _ = gTypeURLPatternResult
  {-# INLINE typeGType #-}

noURLPatternResult :: Maybe URLPatternResult
noURLPatternResult = Nothing
{-# INLINE noURLPatternResult #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeURLPatternResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.URLSearchParams" (url).
newtype URLSearchParams = URLSearchParams { unURLSearchParams :: JSVal }

instance Eq URLSearchParams where
  (URLSearchParams a) == (URLSearchParams b) = js_eq a b

instance PToJSVal URLSearchParams where
  pToJSVal = unURLSearchParams
  {-# INLINE pToJSVal #-}

instance PFromJSVal URLSearchParams where
  pFromJSVal = URLSearchParams
  {-# INLINE pFromJSVal #-}

instance ToJSVal URLSearchParams where
  toJSVal = return . unURLSearchParams
  {-# INLINE toJSVal #-}

instance FromJSVal URLSearchParams where
  fromJSVal = return . fmap URLSearchParams . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . URLSearchParams
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject URLSearchParams where
  typeGType _ = gTypeURLSearchParams
  {-# INLINE typeGType #-}

noURLSearchParams :: Maybe URLSearchParams
noURLSearchParams = Nothing
{-# INLINE noURLSearchParams #-}

foreign import javascript unsafe "(() => globalThis[\"URLSearchParams\"])" gTypeURLSearchParams :: GType

-- | Dictionary UnknownCredentialOptions (webauthn-4)
newtype UnknownCredentialOptions = UnknownCredentialOptions { unUnknownCredentialOptions :: JSVal }

instance Eq UnknownCredentialOptions where
  (UnknownCredentialOptions a) == (UnknownCredentialOptions b) = js_eq a b

instance PToJSVal UnknownCredentialOptions where
  pToJSVal = unUnknownCredentialOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal UnknownCredentialOptions where
  pFromJSVal = UnknownCredentialOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal UnknownCredentialOptions where
  toJSVal = return . unUnknownCredentialOptions
  {-# INLINE toJSVal #-}

instance FromJSVal UnknownCredentialOptions where
  fromJSVal = return . fmap UnknownCredentialOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . UnknownCredentialOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject UnknownCredentialOptions where
  typeGType _ = gTypeUnknownCredentialOptions
  {-# INLINE typeGType #-}

noUnknownCredentialOptions :: Maybe UnknownCredentialOptions
noUnknownCredentialOptions = Nothing
{-# INLINE noUnknownCredentialOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeUnknownCredentialOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.UserActivation" (html).
newtype UserActivation = UserActivation { unUserActivation :: JSVal }

instance Eq UserActivation where
  (UserActivation a) == (UserActivation b) = js_eq a b

instance PToJSVal UserActivation where
  pToJSVal = unUserActivation
  {-# INLINE pToJSVal #-}

instance PFromJSVal UserActivation where
  pFromJSVal = UserActivation
  {-# INLINE pFromJSVal #-}

instance ToJSVal UserActivation where
  toJSVal = return . unUserActivation
  {-# INLINE toJSVal #-}

instance FromJSVal UserActivation where
  fromJSVal = return . fmap UserActivation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . UserActivation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject UserActivation where
  typeGType _ = gTypeUserActivation
  {-# INLINE typeGType #-}

noUserActivation :: Maybe UserActivation
noUserActivation = Nothing
{-# INLINE noUserActivation #-}

foreign import javascript unsafe "(() => globalThis[\"UserActivation\"])" gTypeUserActivation :: GType

-- | Functions for this interface are in "GHCJS.DOM.VTTCue" (webvtt1).
newtype VTTCue = VTTCue { unVTTCue :: JSVal }

instance Eq VTTCue where
  (VTTCue a) == (VTTCue b) = js_eq a b

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 = return . fmap VTTCue . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VTTCue
  {-# INLINE fromJSValUnchecked #-}

instance IsTextTrackCue VTTCue
instance IsEventTarget VTTCue

instance IsGObject VTTCue where
  typeGType _ = gTypeVTTCue
  {-# INLINE typeGType #-}

noVTTCue :: Maybe VTTCue
noVTTCue = Nothing
{-# INLINE noVTTCue #-}

foreign import javascript unsafe "(() => globalThis[\"VTTCue\"])" gTypeVTTCue :: GType

-- | Functions for this interface are in "GHCJS.DOM.VTTRegion" (webvtt1).
newtype VTTRegion = VTTRegion { unVTTRegion :: JSVal }

instance Eq VTTRegion where
  (VTTRegion a) == (VTTRegion b) = js_eq a b

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 = return . fmap VTTRegion . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VTTRegion
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VTTRegion where
  typeGType _ = gTypeVTTRegion
  {-# INLINE typeGType #-}

noVTTRegion :: Maybe VTTRegion
noVTTRegion = Nothing
{-# INLINE noVTTRegion #-}

foreign import javascript unsafe "(() => globalThis[\"VTTRegion\"])" gTypeVTTRegion :: GType

-- | Functions for this interface are in "GHCJS.DOM.ValidityState" (html).
newtype ValidityState = ValidityState { unValidityState :: JSVal }

instance Eq ValidityState where
  (ValidityState a) == (ValidityState b) = js_eq a b

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 = return . fmap ValidityState . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ValidityState
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ValidityState where
  typeGType _ = gTypeValidityState
  {-# INLINE typeGType #-}

noValidityState :: Maybe ValidityState
noValidityState = Nothing
{-# INLINE noValidityState #-}

foreign import javascript unsafe "(() => globalThis[\"ValidityState\"])" gTypeValidityState :: GType

-- | Dictionary ValidityStateFlags (html)
newtype ValidityStateFlags = ValidityStateFlags { unValidityStateFlags :: JSVal }

instance Eq ValidityStateFlags where
  (ValidityStateFlags a) == (ValidityStateFlags b) = js_eq a b

instance PToJSVal ValidityStateFlags where
  pToJSVal = unValidityStateFlags
  {-# INLINE pToJSVal #-}

instance PFromJSVal ValidityStateFlags where
  pFromJSVal = ValidityStateFlags
  {-# INLINE pFromJSVal #-}

instance ToJSVal ValidityStateFlags where
  toJSVal = return . unValidityStateFlags
  {-# INLINE toJSVal #-}

instance FromJSVal ValidityStateFlags where
  fromJSVal = return . fmap ValidityStateFlags . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ValidityStateFlags
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ValidityStateFlags where
  typeGType _ = gTypeValidityStateFlags
  {-# INLINE typeGType #-}

noValidityStateFlags :: Maybe ValidityStateFlags
noValidityStateFlags = Nothing
{-# INLINE noValidityStateFlags #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeValidityStateFlags :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoColorSpace" (webcodecs).
newtype VideoColorSpace = VideoColorSpace { unVideoColorSpace :: JSVal }

instance Eq VideoColorSpace where
  (VideoColorSpace a) == (VideoColorSpace b) = js_eq a b

instance PToJSVal VideoColorSpace where
  pToJSVal = unVideoColorSpace
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoColorSpace where
  pFromJSVal = VideoColorSpace
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoColorSpace where
  toJSVal = return . unVideoColorSpace
  {-# INLINE toJSVal #-}

instance FromJSVal VideoColorSpace where
  fromJSVal = return . fmap VideoColorSpace . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoColorSpace
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoColorSpace where
  typeGType _ = gTypeVideoColorSpace
  {-# INLINE typeGType #-}

noVideoColorSpace :: Maybe VideoColorSpace
noVideoColorSpace = Nothing
{-# INLINE noVideoColorSpace #-}

foreign import javascript unsafe "(() => globalThis[\"VideoColorSpace\"])" gTypeVideoColorSpace :: GType

-- | Dictionary VideoColorSpaceInit (webcodecs)
newtype VideoColorSpaceInit = VideoColorSpaceInit { unVideoColorSpaceInit :: JSVal }

instance Eq VideoColorSpaceInit where
  (VideoColorSpaceInit a) == (VideoColorSpaceInit b) = js_eq a b

instance PToJSVal VideoColorSpaceInit where
  pToJSVal = unVideoColorSpaceInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoColorSpaceInit where
  pFromJSVal = VideoColorSpaceInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoColorSpaceInit where
  toJSVal = return . unVideoColorSpaceInit
  {-# INLINE toJSVal #-}

instance FromJSVal VideoColorSpaceInit where
  fromJSVal = return . fmap VideoColorSpaceInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoColorSpaceInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoColorSpaceInit where
  typeGType _ = gTypeVideoColorSpaceInit
  {-# INLINE typeGType #-}

noVideoColorSpaceInit :: Maybe VideoColorSpaceInit
noVideoColorSpaceInit = Nothing
{-# INLINE noVideoColorSpaceInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoColorSpaceInit :: GType

-- | Dictionary VideoConfiguration (media-capabilities)
newtype VideoConfiguration = VideoConfiguration { unVideoConfiguration :: JSVal }

instance Eq VideoConfiguration where
  (VideoConfiguration a) == (VideoConfiguration b) = js_eq a b

instance PToJSVal VideoConfiguration where
  pToJSVal = unVideoConfiguration
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoConfiguration where
  pFromJSVal = VideoConfiguration
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoConfiguration where
  toJSVal = return . unVideoConfiguration
  {-# INLINE toJSVal #-}

instance FromJSVal VideoConfiguration where
  fromJSVal = return . fmap VideoConfiguration . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoConfiguration
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoConfiguration where
  typeGType _ = gTypeVideoConfiguration
  {-# INLINE typeGType #-}

noVideoConfiguration :: Maybe VideoConfiguration
noVideoConfiguration = Nothing
{-# INLINE noVideoConfiguration #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoConfiguration :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoDecoder" (webcodecs).
newtype VideoDecoder = VideoDecoder { unVideoDecoder :: JSVal }

instance Eq VideoDecoder where
  (VideoDecoder a) == (VideoDecoder b) = js_eq a b

instance PToJSVal VideoDecoder where
  pToJSVal = unVideoDecoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoDecoder where
  pFromJSVal = VideoDecoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoDecoder where
  toJSVal = return . unVideoDecoder
  {-# INLINE toJSVal #-}

instance FromJSVal VideoDecoder where
  fromJSVal = return . fmap VideoDecoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoDecoder
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget VideoDecoder

instance IsGObject VideoDecoder where
  typeGType _ = gTypeVideoDecoder
  {-# INLINE typeGType #-}

noVideoDecoder :: Maybe VideoDecoder
noVideoDecoder = Nothing
{-# INLINE noVideoDecoder #-}

foreign import javascript unsafe "(() => globalThis[\"VideoDecoder\"])" gTypeVideoDecoder :: GType

-- | Dictionary VideoDecoderConfig (webcodecs)
newtype VideoDecoderConfig = VideoDecoderConfig { unVideoDecoderConfig :: JSVal }

instance Eq VideoDecoderConfig where
  (VideoDecoderConfig a) == (VideoDecoderConfig b) = js_eq a b

instance PToJSVal VideoDecoderConfig where
  pToJSVal = unVideoDecoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoDecoderConfig where
  pFromJSVal = VideoDecoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoDecoderConfig where
  toJSVal = return . unVideoDecoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal VideoDecoderConfig where
  fromJSVal = return . fmap VideoDecoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoDecoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoDecoderConfig where
  typeGType _ = gTypeVideoDecoderConfig
  {-# INLINE typeGType #-}

noVideoDecoderConfig :: Maybe VideoDecoderConfig
noVideoDecoderConfig = Nothing
{-# INLINE noVideoDecoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoDecoderConfig :: GType

-- | Dictionary VideoDecoderInit (webcodecs)
newtype VideoDecoderInit = VideoDecoderInit { unVideoDecoderInit :: JSVal }

instance Eq VideoDecoderInit where
  (VideoDecoderInit a) == (VideoDecoderInit b) = js_eq a b

instance PToJSVal VideoDecoderInit where
  pToJSVal = unVideoDecoderInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoDecoderInit where
  pFromJSVal = VideoDecoderInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoDecoderInit where
  toJSVal = return . unVideoDecoderInit
  {-# INLINE toJSVal #-}

instance FromJSVal VideoDecoderInit where
  fromJSVal = return . fmap VideoDecoderInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoDecoderInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoDecoderInit where
  typeGType _ = gTypeVideoDecoderInit
  {-# INLINE typeGType #-}

noVideoDecoderInit :: Maybe VideoDecoderInit
noVideoDecoderInit = Nothing
{-# INLINE noVideoDecoderInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoDecoderInit :: GType

-- | Dictionary VideoDecoderSupport (webcodecs)
newtype VideoDecoderSupport = VideoDecoderSupport { unVideoDecoderSupport :: JSVal }

instance Eq VideoDecoderSupport where
  (VideoDecoderSupport a) == (VideoDecoderSupport b) = js_eq a b

instance PToJSVal VideoDecoderSupport where
  pToJSVal = unVideoDecoderSupport
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoDecoderSupport where
  pFromJSVal = VideoDecoderSupport
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoDecoderSupport where
  toJSVal = return . unVideoDecoderSupport
  {-# INLINE toJSVal #-}

instance FromJSVal VideoDecoderSupport where
  fromJSVal = return . fmap VideoDecoderSupport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoDecoderSupport
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoDecoderSupport where
  typeGType _ = gTypeVideoDecoderSupport
  {-# INLINE typeGType #-}

noVideoDecoderSupport :: Maybe VideoDecoderSupport
noVideoDecoderSupport = Nothing
{-# INLINE noVideoDecoderSupport #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoDecoderSupport :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoEncoder" (webcodecs).
newtype VideoEncoder = VideoEncoder { unVideoEncoder :: JSVal }

instance Eq VideoEncoder where
  (VideoEncoder a) == (VideoEncoder b) = js_eq a b

instance PToJSVal VideoEncoder where
  pToJSVal = unVideoEncoder
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoder where
  pFromJSVal = VideoEncoder
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoder where
  toJSVal = return . unVideoEncoder
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoder where
  fromJSVal = return . fmap VideoEncoder . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoder
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget VideoEncoder

instance IsGObject VideoEncoder where
  typeGType _ = gTypeVideoEncoder
  {-# INLINE typeGType #-}

noVideoEncoder :: Maybe VideoEncoder
noVideoEncoder = Nothing
{-# INLINE noVideoEncoder #-}

foreign import javascript unsafe "(() => globalThis[\"VideoEncoder\"])" gTypeVideoEncoder :: GType

-- | Dictionary VideoEncoderConfig (webcodecs)
newtype VideoEncoderConfig = VideoEncoderConfig { unVideoEncoderConfig :: JSVal }

instance Eq VideoEncoderConfig where
  (VideoEncoderConfig a) == (VideoEncoderConfig b) = js_eq a b

instance PToJSVal VideoEncoderConfig where
  pToJSVal = unVideoEncoderConfig
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderConfig where
  pFromJSVal = VideoEncoderConfig
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderConfig where
  toJSVal = return . unVideoEncoderConfig
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderConfig where
  fromJSVal = return . fmap VideoEncoderConfig . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderConfig
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderConfig where
  typeGType _ = gTypeVideoEncoderConfig
  {-# INLINE typeGType #-}

noVideoEncoderConfig :: Maybe VideoEncoderConfig
noVideoEncoderConfig = Nothing
{-# INLINE noVideoEncoderConfig #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderConfig :: GType

-- | Dictionary VideoEncoderEncodeOptions (webcodecs)
newtype VideoEncoderEncodeOptions = VideoEncoderEncodeOptions { unVideoEncoderEncodeOptions :: JSVal }

instance Eq VideoEncoderEncodeOptions where
  (VideoEncoderEncodeOptions a) == (VideoEncoderEncodeOptions b) = js_eq a b

instance PToJSVal VideoEncoderEncodeOptions where
  pToJSVal = unVideoEncoderEncodeOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderEncodeOptions where
  pFromJSVal = VideoEncoderEncodeOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderEncodeOptions where
  toJSVal = return . unVideoEncoderEncodeOptions
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderEncodeOptions where
  fromJSVal = return . fmap VideoEncoderEncodeOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderEncodeOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderEncodeOptions where
  typeGType _ = gTypeVideoEncoderEncodeOptions
  {-# INLINE typeGType #-}

noVideoEncoderEncodeOptions :: Maybe VideoEncoderEncodeOptions
noVideoEncoderEncodeOptions = Nothing
{-# INLINE noVideoEncoderEncodeOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderEncodeOptions :: GType

-- | Dictionary VideoEncoderEncodeOptionsForAv1 (webcodecs-av1-codec-registration)
newtype VideoEncoderEncodeOptionsForAv1 = VideoEncoderEncodeOptionsForAv1 { unVideoEncoderEncodeOptionsForAv1 :: JSVal }

instance Eq VideoEncoderEncodeOptionsForAv1 where
  (VideoEncoderEncodeOptionsForAv1 a) == (VideoEncoderEncodeOptionsForAv1 b) = js_eq a b

instance PToJSVal VideoEncoderEncodeOptionsForAv1 where
  pToJSVal = unVideoEncoderEncodeOptionsForAv1
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderEncodeOptionsForAv1 where
  pFromJSVal = VideoEncoderEncodeOptionsForAv1
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderEncodeOptionsForAv1 where
  toJSVal = return . unVideoEncoderEncodeOptionsForAv1
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderEncodeOptionsForAv1 where
  fromJSVal = return . fmap VideoEncoderEncodeOptionsForAv1 . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderEncodeOptionsForAv1
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderEncodeOptionsForAv1 where
  typeGType _ = gTypeVideoEncoderEncodeOptionsForAv1
  {-# INLINE typeGType #-}

noVideoEncoderEncodeOptionsForAv1 :: Maybe VideoEncoderEncodeOptionsForAv1
noVideoEncoderEncodeOptionsForAv1 = Nothing
{-# INLINE noVideoEncoderEncodeOptionsForAv1 #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderEncodeOptionsForAv1 :: GType

-- | Dictionary VideoEncoderEncodeOptionsForAvc (webcodecs-avc-codec-registration)
newtype VideoEncoderEncodeOptionsForAvc = VideoEncoderEncodeOptionsForAvc { unVideoEncoderEncodeOptionsForAvc :: JSVal }

instance Eq VideoEncoderEncodeOptionsForAvc where
  (VideoEncoderEncodeOptionsForAvc a) == (VideoEncoderEncodeOptionsForAvc b) = js_eq a b

instance PToJSVal VideoEncoderEncodeOptionsForAvc where
  pToJSVal = unVideoEncoderEncodeOptionsForAvc
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderEncodeOptionsForAvc where
  pFromJSVal = VideoEncoderEncodeOptionsForAvc
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderEncodeOptionsForAvc where
  toJSVal = return . unVideoEncoderEncodeOptionsForAvc
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderEncodeOptionsForAvc where
  fromJSVal = return . fmap VideoEncoderEncodeOptionsForAvc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderEncodeOptionsForAvc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderEncodeOptionsForAvc where
  typeGType _ = gTypeVideoEncoderEncodeOptionsForAvc
  {-# INLINE typeGType #-}

noVideoEncoderEncodeOptionsForAvc :: Maybe VideoEncoderEncodeOptionsForAvc
noVideoEncoderEncodeOptionsForAvc = Nothing
{-# INLINE noVideoEncoderEncodeOptionsForAvc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderEncodeOptionsForAvc :: GType

-- | Dictionary VideoEncoderEncodeOptionsForHevc (webcodecs-hevc-codec-registration)
newtype VideoEncoderEncodeOptionsForHevc = VideoEncoderEncodeOptionsForHevc { unVideoEncoderEncodeOptionsForHevc :: JSVal }

instance Eq VideoEncoderEncodeOptionsForHevc where
  (VideoEncoderEncodeOptionsForHevc a) == (VideoEncoderEncodeOptionsForHevc b) = js_eq a b

instance PToJSVal VideoEncoderEncodeOptionsForHevc where
  pToJSVal = unVideoEncoderEncodeOptionsForHevc
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderEncodeOptionsForHevc where
  pFromJSVal = VideoEncoderEncodeOptionsForHevc
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderEncodeOptionsForHevc where
  toJSVal = return . unVideoEncoderEncodeOptionsForHevc
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderEncodeOptionsForHevc where
  fromJSVal = return . fmap VideoEncoderEncodeOptionsForHevc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderEncodeOptionsForHevc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderEncodeOptionsForHevc where
  typeGType _ = gTypeVideoEncoderEncodeOptionsForHevc
  {-# INLINE typeGType #-}

noVideoEncoderEncodeOptionsForHevc :: Maybe VideoEncoderEncodeOptionsForHevc
noVideoEncoderEncodeOptionsForHevc = Nothing
{-# INLINE noVideoEncoderEncodeOptionsForHevc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderEncodeOptionsForHevc :: GType

-- | Dictionary VideoEncoderEncodeOptionsForVp9 (webcodecs-vp9-codec-registration)
newtype VideoEncoderEncodeOptionsForVp9 = VideoEncoderEncodeOptionsForVp9 { unVideoEncoderEncodeOptionsForVp9 :: JSVal }

instance Eq VideoEncoderEncodeOptionsForVp9 where
  (VideoEncoderEncodeOptionsForVp9 a) == (VideoEncoderEncodeOptionsForVp9 b) = js_eq a b

instance PToJSVal VideoEncoderEncodeOptionsForVp9 where
  pToJSVal = unVideoEncoderEncodeOptionsForVp9
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderEncodeOptionsForVp9 where
  pFromJSVal = VideoEncoderEncodeOptionsForVp9
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderEncodeOptionsForVp9 where
  toJSVal = return . unVideoEncoderEncodeOptionsForVp9
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderEncodeOptionsForVp9 where
  fromJSVal = return . fmap VideoEncoderEncodeOptionsForVp9 . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderEncodeOptionsForVp9
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderEncodeOptionsForVp9 where
  typeGType _ = gTypeVideoEncoderEncodeOptionsForVp9
  {-# INLINE typeGType #-}

noVideoEncoderEncodeOptionsForVp9 :: Maybe VideoEncoderEncodeOptionsForVp9
noVideoEncoderEncodeOptionsForVp9 = Nothing
{-# INLINE noVideoEncoderEncodeOptionsForVp9 #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderEncodeOptionsForVp9 :: GType

-- | Dictionary VideoEncoderInit (webcodecs)
newtype VideoEncoderInit = VideoEncoderInit { unVideoEncoderInit :: JSVal }

instance Eq VideoEncoderInit where
  (VideoEncoderInit a) == (VideoEncoderInit b) = js_eq a b

instance PToJSVal VideoEncoderInit where
  pToJSVal = unVideoEncoderInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderInit where
  pFromJSVal = VideoEncoderInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderInit where
  toJSVal = return . unVideoEncoderInit
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderInit where
  fromJSVal = return . fmap VideoEncoderInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderInit where
  typeGType _ = gTypeVideoEncoderInit
  {-# INLINE typeGType #-}

noVideoEncoderInit :: Maybe VideoEncoderInit
noVideoEncoderInit = Nothing
{-# INLINE noVideoEncoderInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderInit :: GType

-- | Dictionary VideoEncoderSupport (webcodecs)
newtype VideoEncoderSupport = VideoEncoderSupport { unVideoEncoderSupport :: JSVal }

instance Eq VideoEncoderSupport where
  (VideoEncoderSupport a) == (VideoEncoderSupport b) = js_eq a b

instance PToJSVal VideoEncoderSupport where
  pToJSVal = unVideoEncoderSupport
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoEncoderSupport where
  pFromJSVal = VideoEncoderSupport
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoEncoderSupport where
  toJSVal = return . unVideoEncoderSupport
  {-# INLINE toJSVal #-}

instance FromJSVal VideoEncoderSupport where
  fromJSVal = return . fmap VideoEncoderSupport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoEncoderSupport
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoEncoderSupport where
  typeGType _ = gTypeVideoEncoderSupport
  {-# INLINE typeGType #-}

noVideoEncoderSupport :: Maybe VideoEncoderSupport
noVideoEncoderSupport = Nothing
{-# INLINE noVideoEncoderSupport #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoEncoderSupport :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoFrame" (webcodecs).
newtype VideoFrame = VideoFrame { unVideoFrame :: JSVal }

instance Eq VideoFrame where
  (VideoFrame a) == (VideoFrame b) = js_eq a b

instance PToJSVal VideoFrame where
  pToJSVal = unVideoFrame
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoFrame where
  pFromJSVal = VideoFrame
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoFrame where
  toJSVal = return . unVideoFrame
  {-# INLINE toJSVal #-}

instance FromJSVal VideoFrame where
  fromJSVal = return . fmap VideoFrame . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoFrame
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoFrame where
  typeGType _ = gTypeVideoFrame
  {-# INLINE typeGType #-}

noVideoFrame :: Maybe VideoFrame
noVideoFrame = Nothing
{-# INLINE noVideoFrame #-}

foreign import javascript unsafe "(() => globalThis[\"VideoFrame\"])" gTypeVideoFrame :: GType

-- | Dictionary VideoFrameBufferInit (webcodecs)
newtype VideoFrameBufferInit = VideoFrameBufferInit { unVideoFrameBufferInit :: JSVal }

instance Eq VideoFrameBufferInit where
  (VideoFrameBufferInit a) == (VideoFrameBufferInit b) = js_eq a b

instance PToJSVal VideoFrameBufferInit where
  pToJSVal = unVideoFrameBufferInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoFrameBufferInit where
  pFromJSVal = VideoFrameBufferInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoFrameBufferInit where
  toJSVal = return . unVideoFrameBufferInit
  {-# INLINE toJSVal #-}

instance FromJSVal VideoFrameBufferInit where
  fromJSVal = return . fmap VideoFrameBufferInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoFrameBufferInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoFrameBufferInit where
  typeGType _ = gTypeVideoFrameBufferInit
  {-# INLINE typeGType #-}

noVideoFrameBufferInit :: Maybe VideoFrameBufferInit
noVideoFrameBufferInit = Nothing
{-# INLINE noVideoFrameBufferInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoFrameBufferInit :: GType

-- | Dictionary VideoFrameCallbackMetadata (video-rvfc)
newtype VideoFrameCallbackMetadata = VideoFrameCallbackMetadata { unVideoFrameCallbackMetadata :: JSVal }

instance Eq VideoFrameCallbackMetadata where
  (VideoFrameCallbackMetadata a) == (VideoFrameCallbackMetadata b) = js_eq a b

instance PToJSVal VideoFrameCallbackMetadata where
  pToJSVal = unVideoFrameCallbackMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoFrameCallbackMetadata where
  pFromJSVal = VideoFrameCallbackMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoFrameCallbackMetadata where
  toJSVal = return . unVideoFrameCallbackMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal VideoFrameCallbackMetadata where
  fromJSVal = return . fmap VideoFrameCallbackMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoFrameCallbackMetadata
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoFrameCallbackMetadata where
  typeGType _ = gTypeVideoFrameCallbackMetadata
  {-# INLINE typeGType #-}

noVideoFrameCallbackMetadata :: Maybe VideoFrameCallbackMetadata
noVideoFrameCallbackMetadata = Nothing
{-# INLINE noVideoFrameCallbackMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoFrameCallbackMetadata :: GType

-- | Dictionary VideoFrameCopyToOptions (webcodecs)
newtype VideoFrameCopyToOptions = VideoFrameCopyToOptions { unVideoFrameCopyToOptions :: JSVal }

instance Eq VideoFrameCopyToOptions where
  (VideoFrameCopyToOptions a) == (VideoFrameCopyToOptions b) = js_eq a b

instance PToJSVal VideoFrameCopyToOptions where
  pToJSVal = unVideoFrameCopyToOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoFrameCopyToOptions where
  pFromJSVal = VideoFrameCopyToOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoFrameCopyToOptions where
  toJSVal = return . unVideoFrameCopyToOptions
  {-# INLINE toJSVal #-}

instance FromJSVal VideoFrameCopyToOptions where
  fromJSVal = return . fmap VideoFrameCopyToOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoFrameCopyToOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoFrameCopyToOptions where
  typeGType _ = gTypeVideoFrameCopyToOptions
  {-# INLINE typeGType #-}

noVideoFrameCopyToOptions :: Maybe VideoFrameCopyToOptions
noVideoFrameCopyToOptions = Nothing
{-# INLINE noVideoFrameCopyToOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoFrameCopyToOptions :: GType

-- | Dictionary VideoFrameInit (webcodecs)
newtype VideoFrameInit = VideoFrameInit { unVideoFrameInit :: JSVal }

instance Eq VideoFrameInit where
  (VideoFrameInit a) == (VideoFrameInit b) = js_eq a b

instance PToJSVal VideoFrameInit where
  pToJSVal = unVideoFrameInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoFrameInit where
  pFromJSVal = VideoFrameInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoFrameInit where
  toJSVal = return . unVideoFrameInit
  {-# INLINE toJSVal #-}

instance FromJSVal VideoFrameInit where
  fromJSVal = return . fmap VideoFrameInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoFrameInit
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoFrameInit where
  typeGType _ = gTypeVideoFrameInit
  {-# INLINE typeGType #-}

noVideoFrameInit :: Maybe VideoFrameInit
noVideoFrameInit = Nothing
{-# INLINE noVideoFrameInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoFrameInit :: GType

-- | Dictionary VideoFrameMetadata (webcodecs)
newtype VideoFrameMetadata = VideoFrameMetadata { unVideoFrameMetadata :: JSVal }

instance Eq VideoFrameMetadata where
  (VideoFrameMetadata a) == (VideoFrameMetadata b) = js_eq a b

instance PToJSVal VideoFrameMetadata where
  pToJSVal = unVideoFrameMetadata
  {-# INLINE pToJSVal #-}

instance PFromJSVal VideoFrameMetadata where
  pFromJSVal = VideoFrameMetadata
  {-# INLINE pFromJSVal #-}

instance ToJSVal VideoFrameMetadata where
  toJSVal = return . unVideoFrameMetadata
  {-# INLINE toJSVal #-}

instance FromJSVal VideoFrameMetadata where
  fromJSVal = return . fmap VideoFrameMetadata . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoFrameMetadata
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoFrameMetadata where
  typeGType _ = gTypeVideoFrameMetadata
  {-# INLINE typeGType #-}

noVideoFrameMetadata :: Maybe VideoFrameMetadata
noVideoFrameMetadata = Nothing
{-# INLINE noVideoFrameMetadata #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeVideoFrameMetadata :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoPlaybackQuality" (media-playback-quality).
newtype VideoPlaybackQuality = VideoPlaybackQuality { unVideoPlaybackQuality :: JSVal }

instance Eq VideoPlaybackQuality where
  (VideoPlaybackQuality a) == (VideoPlaybackQuality b) = js_eq a b

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 = return . fmap VideoPlaybackQuality . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoPlaybackQuality
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoPlaybackQuality where
  typeGType _ = gTypeVideoPlaybackQuality
  {-# INLINE typeGType #-}

noVideoPlaybackQuality :: Maybe VideoPlaybackQuality
noVideoPlaybackQuality = Nothing
{-# INLINE noVideoPlaybackQuality #-}

foreign import javascript unsafe "(() => globalThis[\"VideoPlaybackQuality\"])" gTypeVideoPlaybackQuality :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoTrack" (html).
newtype VideoTrack = VideoTrack { unVideoTrack :: JSVal }

instance Eq VideoTrack where
  (VideoTrack a) == (VideoTrack b) = js_eq a b

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 = return . fmap VideoTrack . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoTrack
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject VideoTrack where
  typeGType _ = gTypeVideoTrack
  {-# INLINE typeGType #-}

noVideoTrack :: Maybe VideoTrack
noVideoTrack = Nothing
{-# INLINE noVideoTrack #-}

foreign import javascript unsafe "(() => globalThis[\"VideoTrack\"])" gTypeVideoTrack :: GType

-- | Functions for this interface are in "GHCJS.DOM.VideoTrackList" (html).
newtype VideoTrackList = VideoTrackList { unVideoTrackList :: JSVal }

instance Eq VideoTrackList where
  (VideoTrackList a) == (VideoTrackList b) = js_eq a b

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 = return . fmap VideoTrackList . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VideoTrackList
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget VideoTrackList

instance IsGObject VideoTrackList where
  typeGType _ = gTypeVideoTrackList
  {-# INLINE typeGType #-}

noVideoTrackList :: Maybe VideoTrackList
noVideoTrackList = Nothing
{-# INLINE noVideoTrackList #-}

foreign import javascript unsafe "(() => globalThis[\"VideoTrackList\"])" gTypeVideoTrackList :: GType

-- | Functions for this interface are in "GHCJS.DOM.ViewTimeline" (scroll-animations-1).
newtype ViewTimeline = ViewTimeline { unViewTimeline :: JSVal }

instance Eq ViewTimeline where
  (ViewTimeline a) == (ViewTimeline b) = js_eq a b

instance PToJSVal ViewTimeline where
  pToJSVal = unViewTimeline
  {-# INLINE pToJSVal #-}

instance PFromJSVal ViewTimeline where
  pFromJSVal = ViewTimeline
  {-# INLINE pFromJSVal #-}

instance ToJSVal ViewTimeline where
  toJSVal = return . unViewTimeline
  {-# INLINE toJSVal #-}

instance FromJSVal ViewTimeline where
  fromJSVal = return . fmap ViewTimeline . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ViewTimeline
  {-# INLINE fromJSValUnchecked #-}

instance IsScrollTimeline ViewTimeline
instance IsAnimationTimeline ViewTimeline

instance IsGObject ViewTimeline where
  typeGType _ = gTypeViewTimeline
  {-# INLINE typeGType #-}

noViewTimeline :: Maybe ViewTimeline
noViewTimeline = Nothing
{-# INLINE noViewTimeline #-}

foreign import javascript unsafe "(() => globalThis[\"ViewTimeline\"])" gTypeViewTimeline :: GType

-- | Dictionary ViewTimelineOptions (scroll-animations-1)
newtype ViewTimelineOptions = ViewTimelineOptions { unViewTimelineOptions :: JSVal }

instance Eq ViewTimelineOptions where
  (ViewTimelineOptions a) == (ViewTimelineOptions b) = js_eq a b

instance PToJSVal ViewTimelineOptions where
  pToJSVal = unViewTimelineOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal ViewTimelineOptions where
  pFromJSVal = ViewTimelineOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal ViewTimelineOptions where
  toJSVal = return . unViewTimelineOptions
  {-# INLINE toJSVal #-}

instance FromJSVal ViewTimelineOptions where
  fromJSVal = return . fmap ViewTimelineOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ViewTimelineOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ViewTimelineOptions where
  typeGType _ = gTypeViewTimelineOptions
  {-# INLINE typeGType #-}

noViewTimelineOptions :: Maybe ViewTimelineOptions
noViewTimelineOptions = Nothing
{-# INLINE noViewTimelineOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeViewTimelineOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.ViewTransition" (css-view-transitions-2).
newtype ViewTransition = ViewTransition { unViewTransition :: JSVal }

instance Eq ViewTransition where
  (ViewTransition a) == (ViewTransition b) = js_eq a b

instance PToJSVal ViewTransition where
  pToJSVal = unViewTransition
  {-# INLINE pToJSVal #-}

instance PFromJSVal ViewTransition where
  pFromJSVal = ViewTransition
  {-# INLINE pFromJSVal #-}

instance ToJSVal ViewTransition where
  toJSVal = return . unViewTransition
  {-# INLINE toJSVal #-}

instance FromJSVal ViewTransition where
  fromJSVal = return . fmap ViewTransition . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ViewTransition
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ViewTransition where
  typeGType _ = gTypeViewTransition
  {-# INLINE typeGType #-}

noViewTransition :: Maybe ViewTransition
noViewTransition = Nothing
{-# INLINE noViewTransition #-}

foreign import javascript unsafe "(() => globalThis[\"ViewTransition\"])" gTypeViewTransition :: GType

-- | Functions for this interface are in "GHCJS.DOM.ViewTransitionTypeSet" (css-view-transitions-2).
newtype ViewTransitionTypeSet = ViewTransitionTypeSet { unViewTransitionTypeSet :: JSVal }

instance Eq ViewTransitionTypeSet where
  (ViewTransitionTypeSet a) == (ViewTransitionTypeSet b) = js_eq a b

instance PToJSVal ViewTransitionTypeSet where
  pToJSVal = unViewTransitionTypeSet
  {-# INLINE pToJSVal #-}

instance PFromJSVal ViewTransitionTypeSet where
  pFromJSVal = ViewTransitionTypeSet
  {-# INLINE pFromJSVal #-}

instance ToJSVal ViewTransitionTypeSet where
  toJSVal = return . unViewTransitionTypeSet
  {-# INLINE toJSVal #-}

instance FromJSVal ViewTransitionTypeSet where
  fromJSVal = return . fmap ViewTransitionTypeSet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . ViewTransitionTypeSet
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject ViewTransitionTypeSet where
  typeGType _ = gTypeViewTransitionTypeSet
  {-# INLINE typeGType #-}

noViewTransitionTypeSet :: Maybe ViewTransitionTypeSet
noViewTransitionTypeSet = Nothing
{-# INLINE noViewTransitionTypeSet #-}

foreign import javascript unsafe "(() => globalThis[\"ViewTransitionTypeSet\"])" gTypeViewTransitionTypeSet :: GType

-- | Functions for this interface are in "GHCJS.DOM.VisualViewport" (cssom-view-1).
newtype VisualViewport = VisualViewport { unVisualViewport :: JSVal }

instance Eq VisualViewport where
  (VisualViewport a) == (VisualViewport b) = js_eq a b

instance PToJSVal VisualViewport where
  pToJSVal = unVisualViewport
  {-# INLINE pToJSVal #-}

instance PFromJSVal VisualViewport where
  pFromJSVal = VisualViewport
  {-# INLINE pFromJSVal #-}

instance ToJSVal VisualViewport where
  toJSVal = return . unVisualViewport
  {-# INLINE toJSVal #-}

instance FromJSVal VisualViewport where
  fromJSVal = return . fmap VisualViewport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . VisualViewport
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget VisualViewport

instance IsGObject VisualViewport where
  typeGType _ = gTypeVisualViewport
  {-# INLINE typeGType #-}

noVisualViewport :: Maybe VisualViewport
noVisualViewport = Nothing
{-# INLINE noVisualViewport #-}

foreign import javascript unsafe "(() => globalThis[\"VisualViewport\"])" gTypeVisualViewport :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_color_buffer_float" (WEBGL_color_buffer_float).
newtype WEBGL_color_buffer_float = WEBGL_color_buffer_float { unWEBGL_color_buffer_float :: JSVal }

instance Eq WEBGL_color_buffer_float where
  (WEBGL_color_buffer_float a) == (WEBGL_color_buffer_float b) = js_eq a b

instance PToJSVal WEBGL_color_buffer_float where
  pToJSVal = unWEBGL_color_buffer_float
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_color_buffer_float where
  pFromJSVal = WEBGL_color_buffer_float
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_color_buffer_float where
  toJSVal = return . unWEBGL_color_buffer_float
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_color_buffer_float where
  fromJSVal = return . fmap WEBGL_color_buffer_float . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_color_buffer_float
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_color_buffer_float where
  typeGType _ = gTypeWEBGL_color_buffer_float
  {-# INLINE typeGType #-}

noWEBGL_color_buffer_float :: Maybe WEBGL_color_buffer_float
noWEBGL_color_buffer_float = Nothing
{-# INLINE noWEBGL_color_buffer_float #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_color_buffer_float :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_compressed_texture_astc" (WEBGL_compressed_texture_astc).
newtype WEBGL_compressed_texture_astc = WEBGL_compressed_texture_astc { unWEBGL_compressed_texture_astc :: JSVal }

instance Eq WEBGL_compressed_texture_astc where
  (WEBGL_compressed_texture_astc a) == (WEBGL_compressed_texture_astc b) = js_eq a b

instance PToJSVal WEBGL_compressed_texture_astc where
  pToJSVal = unWEBGL_compressed_texture_astc
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_compressed_texture_astc where
  pFromJSVal = WEBGL_compressed_texture_astc
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_compressed_texture_astc where
  toJSVal = return . unWEBGL_compressed_texture_astc
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_compressed_texture_astc where
  fromJSVal = return . fmap WEBGL_compressed_texture_astc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_compressed_texture_astc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_compressed_texture_astc where
  typeGType _ = gTypeWEBGL_compressed_texture_astc
  {-# INLINE typeGType #-}

noWEBGL_compressed_texture_astc :: Maybe WEBGL_compressed_texture_astc
noWEBGL_compressed_texture_astc = Nothing
{-# INLINE noWEBGL_compressed_texture_astc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_compressed_texture_astc :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_compressed_texture_etc" (WEBGL_compressed_texture_etc).
newtype WEBGL_compressed_texture_etc = WEBGL_compressed_texture_etc { unWEBGL_compressed_texture_etc :: JSVal }

instance Eq WEBGL_compressed_texture_etc where
  (WEBGL_compressed_texture_etc a) == (WEBGL_compressed_texture_etc b) = js_eq a b

instance PToJSVal WEBGL_compressed_texture_etc where
  pToJSVal = unWEBGL_compressed_texture_etc
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_compressed_texture_etc where
  pFromJSVal = WEBGL_compressed_texture_etc
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_compressed_texture_etc where
  toJSVal = return . unWEBGL_compressed_texture_etc
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_compressed_texture_etc where
  fromJSVal = return . fmap WEBGL_compressed_texture_etc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_compressed_texture_etc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_compressed_texture_etc where
  typeGType _ = gTypeWEBGL_compressed_texture_etc
  {-# INLINE typeGType #-}

noWEBGL_compressed_texture_etc :: Maybe WEBGL_compressed_texture_etc
noWEBGL_compressed_texture_etc = Nothing
{-# INLINE noWEBGL_compressed_texture_etc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_compressed_texture_etc :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_compressed_texture_etc1" (WEBGL_compressed_texture_etc1).
newtype WEBGL_compressed_texture_etc1 = WEBGL_compressed_texture_etc1 { unWEBGL_compressed_texture_etc1 :: JSVal }

instance Eq WEBGL_compressed_texture_etc1 where
  (WEBGL_compressed_texture_etc1 a) == (WEBGL_compressed_texture_etc1 b) = js_eq a b

instance PToJSVal WEBGL_compressed_texture_etc1 where
  pToJSVal = unWEBGL_compressed_texture_etc1
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_compressed_texture_etc1 where
  pFromJSVal = WEBGL_compressed_texture_etc1
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_compressed_texture_etc1 where
  toJSVal = return . unWEBGL_compressed_texture_etc1
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_compressed_texture_etc1 where
  fromJSVal = return . fmap WEBGL_compressed_texture_etc1 . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_compressed_texture_etc1
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_compressed_texture_etc1 where
  typeGType _ = gTypeWEBGL_compressed_texture_etc1
  {-# INLINE typeGType #-}

noWEBGL_compressed_texture_etc1 :: Maybe WEBGL_compressed_texture_etc1
noWEBGL_compressed_texture_etc1 = Nothing
{-# INLINE noWEBGL_compressed_texture_etc1 #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_compressed_texture_etc1 :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_compressed_texture_pvrtc" (WEBGL_compressed_texture_pvrtc).
newtype WEBGL_compressed_texture_pvrtc = WEBGL_compressed_texture_pvrtc { unWEBGL_compressed_texture_pvrtc :: JSVal }

instance Eq WEBGL_compressed_texture_pvrtc where
  (WEBGL_compressed_texture_pvrtc a) == (WEBGL_compressed_texture_pvrtc b) = js_eq a b

instance PToJSVal WEBGL_compressed_texture_pvrtc where
  pToJSVal = unWEBGL_compressed_texture_pvrtc
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_compressed_texture_pvrtc where
  pFromJSVal = WEBGL_compressed_texture_pvrtc
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_compressed_texture_pvrtc where
  toJSVal = return . unWEBGL_compressed_texture_pvrtc
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_compressed_texture_pvrtc where
  fromJSVal = return . fmap WEBGL_compressed_texture_pvrtc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_compressed_texture_pvrtc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_compressed_texture_pvrtc where
  typeGType _ = gTypeWEBGL_compressed_texture_pvrtc
  {-# INLINE typeGType #-}

noWEBGL_compressed_texture_pvrtc :: Maybe WEBGL_compressed_texture_pvrtc
noWEBGL_compressed_texture_pvrtc = Nothing
{-# INLINE noWEBGL_compressed_texture_pvrtc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_compressed_texture_pvrtc :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_compressed_texture_s3tc" (WEBGL_compressed_texture_s3tc).
newtype WEBGL_compressed_texture_s3tc = WEBGL_compressed_texture_s3tc { unWEBGL_compressed_texture_s3tc :: JSVal }

instance Eq WEBGL_compressed_texture_s3tc where
  (WEBGL_compressed_texture_s3tc a) == (WEBGL_compressed_texture_s3tc b) = js_eq a b

instance PToJSVal WEBGL_compressed_texture_s3tc where
  pToJSVal = unWEBGL_compressed_texture_s3tc
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_compressed_texture_s3tc where
  pFromJSVal = WEBGL_compressed_texture_s3tc
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_compressed_texture_s3tc where
  toJSVal = return . unWEBGL_compressed_texture_s3tc
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_compressed_texture_s3tc where
  fromJSVal = return . fmap WEBGL_compressed_texture_s3tc . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_compressed_texture_s3tc
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_compressed_texture_s3tc where
  typeGType _ = gTypeWEBGL_compressed_texture_s3tc
  {-# INLINE typeGType #-}

noWEBGL_compressed_texture_s3tc :: Maybe WEBGL_compressed_texture_s3tc
noWEBGL_compressed_texture_s3tc = Nothing
{-# INLINE noWEBGL_compressed_texture_s3tc #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_compressed_texture_s3tc :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_compressed_texture_s3tc_srgb" (WEBGL_compressed_texture_s3tc_srgb).
newtype WEBGL_compressed_texture_s3tc_srgb = WEBGL_compressed_texture_s3tc_srgb { unWEBGL_compressed_texture_s3tc_srgb :: JSVal }

instance Eq WEBGL_compressed_texture_s3tc_srgb where
  (WEBGL_compressed_texture_s3tc_srgb a) == (WEBGL_compressed_texture_s3tc_srgb b) = js_eq a b

instance PToJSVal WEBGL_compressed_texture_s3tc_srgb where
  pToJSVal = unWEBGL_compressed_texture_s3tc_srgb
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_compressed_texture_s3tc_srgb where
  pFromJSVal = WEBGL_compressed_texture_s3tc_srgb
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_compressed_texture_s3tc_srgb where
  toJSVal = return . unWEBGL_compressed_texture_s3tc_srgb
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_compressed_texture_s3tc_srgb where
  fromJSVal = return . fmap WEBGL_compressed_texture_s3tc_srgb . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_compressed_texture_s3tc_srgb
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_compressed_texture_s3tc_srgb where
  typeGType _ = gTypeWEBGL_compressed_texture_s3tc_srgb
  {-# INLINE typeGType #-}

noWEBGL_compressed_texture_s3tc_srgb :: Maybe WEBGL_compressed_texture_s3tc_srgb
noWEBGL_compressed_texture_s3tc_srgb = Nothing
{-# INLINE noWEBGL_compressed_texture_s3tc_srgb #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_compressed_texture_s3tc_srgb :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_debug_renderer_info" (WEBGL_debug_renderer_info).
newtype WEBGL_debug_renderer_info = WEBGL_debug_renderer_info { unWEBGL_debug_renderer_info :: JSVal }

instance Eq WEBGL_debug_renderer_info where
  (WEBGL_debug_renderer_info a) == (WEBGL_debug_renderer_info b) = js_eq a b

instance PToJSVal WEBGL_debug_renderer_info where
  pToJSVal = unWEBGL_debug_renderer_info
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_debug_renderer_info where
  pFromJSVal = WEBGL_debug_renderer_info
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_debug_renderer_info where
  toJSVal = return . unWEBGL_debug_renderer_info
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_debug_renderer_info where
  fromJSVal = return . fmap WEBGL_debug_renderer_info . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_debug_renderer_info
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_debug_renderer_info where
  typeGType _ = gTypeWEBGL_debug_renderer_info
  {-# INLINE typeGType #-}

noWEBGL_debug_renderer_info :: Maybe WEBGL_debug_renderer_info
noWEBGL_debug_renderer_info = Nothing
{-# INLINE noWEBGL_debug_renderer_info #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_debug_renderer_info :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_debug_shaders" (WEBGL_debug_shaders).
newtype WEBGL_debug_shaders = WEBGL_debug_shaders { unWEBGL_debug_shaders :: JSVal }

instance Eq WEBGL_debug_shaders where
  (WEBGL_debug_shaders a) == (WEBGL_debug_shaders b) = js_eq a b

instance PToJSVal WEBGL_debug_shaders where
  pToJSVal = unWEBGL_debug_shaders
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_debug_shaders where
  pFromJSVal = WEBGL_debug_shaders
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_debug_shaders where
  toJSVal = return . unWEBGL_debug_shaders
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_debug_shaders where
  fromJSVal = return . fmap WEBGL_debug_shaders . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_debug_shaders
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_debug_shaders where
  typeGType _ = gTypeWEBGL_debug_shaders
  {-# INLINE typeGType #-}

noWEBGL_debug_shaders :: Maybe WEBGL_debug_shaders
noWEBGL_debug_shaders = Nothing
{-# INLINE noWEBGL_debug_shaders #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_debug_shaders :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_depth_texture" (WEBGL_depth_texture).
newtype WEBGL_depth_texture = WEBGL_depth_texture { unWEBGL_depth_texture :: JSVal }

instance Eq WEBGL_depth_texture where
  (WEBGL_depth_texture a) == (WEBGL_depth_texture b) = js_eq a b

instance PToJSVal WEBGL_depth_texture where
  pToJSVal = unWEBGL_depth_texture
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_depth_texture where
  pFromJSVal = WEBGL_depth_texture
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_depth_texture where
  toJSVal = return . unWEBGL_depth_texture
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_depth_texture where
  fromJSVal = return . fmap WEBGL_depth_texture . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_depth_texture
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_depth_texture where
  typeGType _ = gTypeWEBGL_depth_texture
  {-# INLINE typeGType #-}

noWEBGL_depth_texture :: Maybe WEBGL_depth_texture
noWEBGL_depth_texture = Nothing
{-# INLINE noWEBGL_depth_texture #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_depth_texture :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_draw_buffers" (WEBGL_draw_buffers).
newtype WEBGL_draw_buffers = WEBGL_draw_buffers { unWEBGL_draw_buffers :: JSVal }

instance Eq WEBGL_draw_buffers where
  (WEBGL_draw_buffers a) == (WEBGL_draw_buffers b) = js_eq a b

instance PToJSVal WEBGL_draw_buffers where
  pToJSVal = unWEBGL_draw_buffers
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_draw_buffers where
  pFromJSVal = WEBGL_draw_buffers
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_draw_buffers where
  toJSVal = return . unWEBGL_draw_buffers
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_draw_buffers where
  fromJSVal = return . fmap WEBGL_draw_buffers . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_draw_buffers
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_draw_buffers where
  typeGType _ = gTypeWEBGL_draw_buffers
  {-# INLINE typeGType #-}

noWEBGL_draw_buffers :: Maybe WEBGL_draw_buffers
noWEBGL_draw_buffers = Nothing
{-# INLINE noWEBGL_draw_buffers #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_draw_buffers :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_lose_context" (WEBGL_lose_context).
newtype WEBGL_lose_context = WEBGL_lose_context { unWEBGL_lose_context :: JSVal }

instance Eq WEBGL_lose_context where
  (WEBGL_lose_context a) == (WEBGL_lose_context b) = js_eq a b

instance PToJSVal WEBGL_lose_context where
  pToJSVal = unWEBGL_lose_context
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_lose_context where
  pFromJSVal = WEBGL_lose_context
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_lose_context where
  toJSVal = return . unWEBGL_lose_context
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_lose_context where
  fromJSVal = return . fmap WEBGL_lose_context . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_lose_context
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_lose_context where
  typeGType _ = gTypeWEBGL_lose_context
  {-# INLINE typeGType #-}

noWEBGL_lose_context :: Maybe WEBGL_lose_context
noWEBGL_lose_context = Nothing
{-# INLINE noWEBGL_lose_context #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_lose_context :: GType

-- | Functions for this interface are in "GHCJS.DOM.WEBGL_multi_draw" (WEBGL_multi_draw).
newtype WEBGL_multi_draw = WEBGL_multi_draw { unWEBGL_multi_draw :: JSVal }

instance Eq WEBGL_multi_draw where
  (WEBGL_multi_draw a) == (WEBGL_multi_draw b) = js_eq a b

instance PToJSVal WEBGL_multi_draw where
  pToJSVal = unWEBGL_multi_draw
  {-# INLINE pToJSVal #-}

instance PFromJSVal WEBGL_multi_draw where
  pFromJSVal = WEBGL_multi_draw
  {-# INLINE pFromJSVal #-}

instance ToJSVal WEBGL_multi_draw where
  toJSVal = return . unWEBGL_multi_draw
  {-# INLINE toJSVal #-}

instance FromJSVal WEBGL_multi_draw where
  fromJSVal = return . fmap WEBGL_multi_draw . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WEBGL_multi_draw
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WEBGL_multi_draw where
  typeGType _ = gTypeWEBGL_multi_draw
  {-# INLINE typeGType #-}

noWEBGL_multi_draw :: Maybe WEBGL_multi_draw
noWEBGL_multi_draw = Nothing
{-# INLINE noWEBGL_multi_draw #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWEBGL_multi_draw :: GType

-- | Functions for this interface are in "GHCJS.DOM.WGSLLanguageFeatures" (webgpu).
newtype WGSLLanguageFeatures = WGSLLanguageFeatures { unWGSLLanguageFeatures :: JSVal }

instance Eq WGSLLanguageFeatures where
  (WGSLLanguageFeatures a) == (WGSLLanguageFeatures b) = js_eq a b

instance PToJSVal WGSLLanguageFeatures where
  pToJSVal = unWGSLLanguageFeatures
  {-# INLINE pToJSVal #-}

instance PFromJSVal WGSLLanguageFeatures where
  pFromJSVal = WGSLLanguageFeatures
  {-# INLINE pFromJSVal #-}

instance ToJSVal WGSLLanguageFeatures where
  toJSVal = return . unWGSLLanguageFeatures
  {-# INLINE toJSVal #-}

instance FromJSVal WGSLLanguageFeatures where
  fromJSVal = return . fmap WGSLLanguageFeatures . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WGSLLanguageFeatures
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WGSLLanguageFeatures where
  typeGType _ = gTypeWGSLLanguageFeatures
  {-# INLINE typeGType #-}

noWGSLLanguageFeatures :: Maybe WGSLLanguageFeatures
noWGSLLanguageFeatures = Nothing
{-# INLINE noWGSLLanguageFeatures #-}

foreign import javascript unsafe "(() => globalThis[\"WGSLLanguageFeatures\"])" gTypeWGSLLanguageFeatures :: GType

-- | Functions for this interface are in "GHCJS.DOM.WakeLock" (screen-wake-lock).
newtype WakeLock = WakeLock { unWakeLock :: JSVal }

instance Eq WakeLock where
  (WakeLock a) == (WakeLock b) = js_eq a b

instance PToJSVal WakeLock where
  pToJSVal = unWakeLock
  {-# INLINE pToJSVal #-}

instance PFromJSVal WakeLock where
  pFromJSVal = WakeLock
  {-# INLINE pFromJSVal #-}

instance ToJSVal WakeLock where
  toJSVal = return . unWakeLock
  {-# INLINE toJSVal #-}

instance FromJSVal WakeLock where
  fromJSVal = return . fmap WakeLock . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WakeLock
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WakeLock where
  typeGType _ = gTypeWakeLock
  {-# INLINE typeGType #-}

noWakeLock :: Maybe WakeLock
noWakeLock = Nothing
{-# INLINE noWakeLock #-}

foreign import javascript unsafe "(() => globalThis[\"WakeLock\"])" gTypeWakeLock :: GType

-- | Functions for this interface are in "GHCJS.DOM.WakeLockSentinel" (screen-wake-lock).
newtype WakeLockSentinel = WakeLockSentinel { unWakeLockSentinel :: JSVal }

instance Eq WakeLockSentinel where
  (WakeLockSentinel a) == (WakeLockSentinel b) = js_eq a b

instance PToJSVal WakeLockSentinel where
  pToJSVal = unWakeLockSentinel
  {-# INLINE pToJSVal #-}

instance PFromJSVal WakeLockSentinel where
  pFromJSVal = WakeLockSentinel
  {-# INLINE pFromJSVal #-}

instance ToJSVal WakeLockSentinel where
  toJSVal = return . unWakeLockSentinel
  {-# INLINE toJSVal #-}

instance FromJSVal WakeLockSentinel where
  fromJSVal = return . fmap WakeLockSentinel . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WakeLockSentinel
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget WakeLockSentinel

instance IsGObject WakeLockSentinel where
  typeGType _ = gTypeWakeLockSentinel
  {-# INLINE typeGType #-}

noWakeLockSentinel :: Maybe WakeLockSentinel
noWakeLockSentinel = Nothing
{-# INLINE noWakeLockSentinel #-}

foreign import javascript unsafe "(() => globalThis[\"WakeLockSentinel\"])" gTypeWakeLockSentinel :: GType

-- | Functions for this interface are in "GHCJS.DOM.WaveShaperNode" (webaudio-1.1).
newtype WaveShaperNode = WaveShaperNode { unWaveShaperNode :: JSVal }

instance Eq WaveShaperNode where
  (WaveShaperNode a) == (WaveShaperNode b) = js_eq a b

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 = return . fmap WaveShaperNode . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WaveShaperNode
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNode WaveShaperNode
instance IsEventTarget WaveShaperNode

instance IsGObject WaveShaperNode where
  typeGType _ = gTypeWaveShaperNode
  {-# INLINE typeGType #-}

noWaveShaperNode :: Maybe WaveShaperNode
noWaveShaperNode = Nothing
{-# INLINE noWaveShaperNode #-}

foreign import javascript unsafe "(() => globalThis[\"WaveShaperNode\"])" gTypeWaveShaperNode :: GType

-- | Dictionary WaveShaperOptions (webaudio-1.1)
newtype WaveShaperOptions = WaveShaperOptions { unWaveShaperOptions :: JSVal }

instance Eq WaveShaperOptions where
  (WaveShaperOptions a) == (WaveShaperOptions b) = js_eq a b

instance PToJSVal WaveShaperOptions where
  pToJSVal = unWaveShaperOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WaveShaperOptions where
  pFromJSVal = WaveShaperOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WaveShaperOptions where
  toJSVal = return . unWaveShaperOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WaveShaperOptions where
  fromJSVal = return . fmap WaveShaperOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WaveShaperOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsAudioNodeOptions WaveShaperOptions

instance IsGObject WaveShaperOptions where
  typeGType _ = gTypeWaveShaperOptions
  {-# INLINE typeGType #-}

noWaveShaperOptions :: Maybe WaveShaperOptions
noWaveShaperOptions = Nothing
{-# INLINE noWaveShaperOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWaveShaperOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGL2RenderingContext" (webgl2).
newtype WebGL2RenderingContext = WebGL2RenderingContext { unWebGL2RenderingContext :: JSVal }

instance Eq WebGL2RenderingContext where
  (WebGL2RenderingContext a) == (WebGL2RenderingContext b) = js_eq a b

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 = return . fmap WebGL2RenderingContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGL2RenderingContext
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGL2RenderingContextBase WebGL2RenderingContext
instance IsWebGL2RenderingContextOverloads WebGL2RenderingContext
instance IsWebGLRenderingContextBase WebGL2RenderingContext

instance IsGObject WebGL2RenderingContext where
  typeGType _ = gTypeWebGL2RenderingContext
  {-# INLINE typeGType #-}

noWebGL2RenderingContext :: Maybe WebGL2RenderingContext
noWebGL2RenderingContext = Nothing
{-# INLINE noWebGL2RenderingContext #-}

foreign import javascript unsafe "(() => globalThis[\"WebGL2RenderingContext\"])" gTypeWebGL2RenderingContext :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGL2RenderingContextBase" (webgl2).
newtype WebGL2RenderingContextBase = WebGL2RenderingContextBase { unWebGL2RenderingContextBase :: JSVal }

instance Eq WebGL2RenderingContextBase where
  (WebGL2RenderingContextBase a) == (WebGL2RenderingContextBase b) = js_eq a b

instance PToJSVal WebGL2RenderingContextBase where
  pToJSVal = unWebGL2RenderingContextBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebGL2RenderingContextBase where
  pFromJSVal = WebGL2RenderingContextBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebGL2RenderingContextBase where
  toJSVal = return . unWebGL2RenderingContextBase
  {-# INLINE toJSVal #-}

instance FromJSVal WebGL2RenderingContextBase where
  fromJSVal = return . fmap WebGL2RenderingContextBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGL2RenderingContextBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWebGL2RenderingContextBase o
toWebGL2RenderingContextBase :: IsWebGL2RenderingContextBase o => o -> WebGL2RenderingContextBase
toWebGL2RenderingContextBase = WebGL2RenderingContextBase . coerce

instance IsWebGL2RenderingContextBase WebGL2RenderingContextBase

instance IsGObject WebGL2RenderingContextBase where
  typeGType _ = gTypeWebGL2RenderingContextBase
  {-# INLINE typeGType #-}

noWebGL2RenderingContextBase :: Maybe WebGL2RenderingContextBase
noWebGL2RenderingContextBase = Nothing
{-# INLINE noWebGL2RenderingContextBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGL2RenderingContextBase :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGL2RenderingContextOverloads" (webgl2).
newtype WebGL2RenderingContextOverloads = WebGL2RenderingContextOverloads { unWebGL2RenderingContextOverloads :: JSVal }

instance Eq WebGL2RenderingContextOverloads where
  (WebGL2RenderingContextOverloads a) == (WebGL2RenderingContextOverloads b) = js_eq a b

instance PToJSVal WebGL2RenderingContextOverloads where
  pToJSVal = unWebGL2RenderingContextOverloads
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebGL2RenderingContextOverloads where
  pFromJSVal = WebGL2RenderingContextOverloads
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebGL2RenderingContextOverloads where
  toJSVal = return . unWebGL2RenderingContextOverloads
  {-# INLINE toJSVal #-}

instance FromJSVal WebGL2RenderingContextOverloads where
  fromJSVal = return . fmap WebGL2RenderingContextOverloads . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGL2RenderingContextOverloads
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWebGL2RenderingContextOverloads o
toWebGL2RenderingContextOverloads :: IsWebGL2RenderingContextOverloads o => o -> WebGL2RenderingContextOverloads
toWebGL2RenderingContextOverloads = WebGL2RenderingContextOverloads . coerce

instance IsWebGL2RenderingContextOverloads WebGL2RenderingContextOverloads

instance IsGObject WebGL2RenderingContextOverloads where
  typeGType _ = gTypeWebGL2RenderingContextOverloads
  {-# INLINE typeGType #-}

noWebGL2RenderingContextOverloads :: Maybe WebGL2RenderingContextOverloads
noWebGL2RenderingContextOverloads = Nothing
{-# INLINE noWebGL2RenderingContextOverloads #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGL2RenderingContextOverloads :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLActiveInfo" (webgl1).
newtype WebGLActiveInfo = WebGLActiveInfo { unWebGLActiveInfo :: JSVal }

instance Eq WebGLActiveInfo where
  (WebGLActiveInfo a) == (WebGLActiveInfo b) = js_eq a b

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 = return . fmap WebGLActiveInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLActiveInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebGLActiveInfo where
  typeGType _ = gTypeWebGLActiveInfo
  {-# INLINE typeGType #-}

noWebGLActiveInfo :: Maybe WebGLActiveInfo
noWebGLActiveInfo = Nothing
{-# INLINE noWebGLActiveInfo #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLActiveInfo\"])" gTypeWebGLActiveInfo :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLBuffer" (webgl1).
newtype WebGLBuffer = WebGLBuffer { unWebGLBuffer :: JSVal }

instance Eq WebGLBuffer where
  (WebGLBuffer a) == (WebGLBuffer b) = js_eq a b

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 = return . fmap WebGLBuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLBuffer
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLBuffer

instance IsGObject WebGLBuffer where
  typeGType _ = gTypeWebGLBuffer
  {-# INLINE typeGType #-}

noWebGLBuffer :: Maybe WebGLBuffer
noWebGLBuffer = Nothing
{-# INLINE noWebGLBuffer #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLBuffer\"])" gTypeWebGLBuffer :: GType

-- | Dictionary WebGLContextAttributes (webgl1)
newtype WebGLContextAttributes = WebGLContextAttributes { unWebGLContextAttributes :: JSVal }

instance Eq WebGLContextAttributes where
  (WebGLContextAttributes a) == (WebGLContextAttributes b) = js_eq a b

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 = return . fmap WebGLContextAttributes . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLContextAttributes
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebGLContextAttributes where
  typeGType _ = gTypeWebGLContextAttributes
  {-# INLINE typeGType #-}

noWebGLContextAttributes :: Maybe WebGLContextAttributes
noWebGLContextAttributes = Nothing
{-# INLINE noWebGLContextAttributes #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGLContextAttributes :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLContextEvent" (webgl1).
newtype WebGLContextEvent = WebGLContextEvent { unWebGLContextEvent :: JSVal }

instance Eq WebGLContextEvent where
  (WebGLContextEvent a) == (WebGLContextEvent b) = js_eq a b

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 = return . fmap WebGLContextEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLContextEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsEvent WebGLContextEvent

instance IsGObject WebGLContextEvent where
  typeGType _ = gTypeWebGLContextEvent
  {-# INLINE typeGType #-}

noWebGLContextEvent :: Maybe WebGLContextEvent
noWebGLContextEvent = Nothing
{-# INLINE noWebGLContextEvent #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLContextEvent\"])" gTypeWebGLContextEvent :: GType

-- | Dictionary WebGLContextEventInit (webgl1)
newtype WebGLContextEventInit = WebGLContextEventInit { unWebGLContextEventInit :: JSVal }

instance Eq WebGLContextEventInit where
  (WebGLContextEventInit a) == (WebGLContextEventInit b) = js_eq a b

instance PToJSVal WebGLContextEventInit where
  pToJSVal = unWebGLContextEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebGLContextEventInit where
  pFromJSVal = WebGLContextEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebGLContextEventInit where
  toJSVal = return . unWebGLContextEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal WebGLContextEventInit where
  fromJSVal = return . fmap WebGLContextEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLContextEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsEventInit WebGLContextEventInit

instance IsGObject WebGLContextEventInit where
  typeGType _ = gTypeWebGLContextEventInit
  {-# INLINE typeGType #-}

noWebGLContextEventInit :: Maybe WebGLContextEventInit
noWebGLContextEventInit = Nothing
{-# INLINE noWebGLContextEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGLContextEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLFramebuffer" (webgl1).
newtype WebGLFramebuffer = WebGLFramebuffer { unWebGLFramebuffer :: JSVal }

instance Eq WebGLFramebuffer where
  (WebGLFramebuffer a) == (WebGLFramebuffer b) = js_eq a b

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 = return . fmap WebGLFramebuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLFramebuffer
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLFramebuffer

instance IsGObject WebGLFramebuffer where
  typeGType _ = gTypeWebGLFramebuffer
  {-# INLINE typeGType #-}

noWebGLFramebuffer :: Maybe WebGLFramebuffer
noWebGLFramebuffer = Nothing
{-# INLINE noWebGLFramebuffer #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLFramebuffer\"])" gTypeWebGLFramebuffer :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLObject" (webgl1).
newtype WebGLObject = WebGLObject { unWebGLObject :: JSVal }

instance Eq WebGLObject where
  (WebGLObject a) == (WebGLObject b) = js_eq a b

instance PToJSVal WebGLObject where
  pToJSVal = unWebGLObject
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebGLObject where
  pFromJSVal = WebGLObject
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebGLObject where
  toJSVal = return . unWebGLObject
  {-# INLINE toJSVal #-}

instance FromJSVal WebGLObject where
  fromJSVal = return . fmap WebGLObject . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLObject
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWebGLObject o
toWebGLObject :: IsWebGLObject o => o -> WebGLObject
toWebGLObject = WebGLObject . coerce

instance IsWebGLObject WebGLObject

instance IsGObject WebGLObject where
  typeGType _ = gTypeWebGLObject
  {-# INLINE typeGType #-}

noWebGLObject :: Maybe WebGLObject
noWebGLObject = Nothing
{-# INLINE noWebGLObject #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLObject\"])" gTypeWebGLObject :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLProgram" (webgl1).
newtype WebGLProgram = WebGLProgram { unWebGLProgram :: JSVal }

instance Eq WebGLProgram where
  (WebGLProgram a) == (WebGLProgram b) = js_eq a b

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 = return . fmap WebGLProgram . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLProgram
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLProgram

instance IsGObject WebGLProgram where
  typeGType _ = gTypeWebGLProgram
  {-# INLINE typeGType #-}

noWebGLProgram :: Maybe WebGLProgram
noWebGLProgram = Nothing
{-# INLINE noWebGLProgram #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLProgram\"])" gTypeWebGLProgram :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLQuery" (webgl2).
newtype WebGLQuery = WebGLQuery { unWebGLQuery :: JSVal }

instance Eq WebGLQuery where
  (WebGLQuery a) == (WebGLQuery b) = js_eq a b

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 = return . fmap WebGLQuery . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLQuery
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLQuery

instance IsGObject WebGLQuery where
  typeGType _ = gTypeWebGLQuery
  {-# INLINE typeGType #-}

noWebGLQuery :: Maybe WebGLQuery
noWebGLQuery = Nothing
{-# INLINE noWebGLQuery #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLQuery\"])" gTypeWebGLQuery :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLRenderbuffer" (webgl1).
newtype WebGLRenderbuffer = WebGLRenderbuffer { unWebGLRenderbuffer :: JSVal }

instance Eq WebGLRenderbuffer where
  (WebGLRenderbuffer a) == (WebGLRenderbuffer b) = js_eq a b

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 = return . fmap WebGLRenderbuffer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLRenderbuffer
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLRenderbuffer

instance IsGObject WebGLRenderbuffer where
  typeGType _ = gTypeWebGLRenderbuffer
  {-# INLINE typeGType #-}

noWebGLRenderbuffer :: Maybe WebGLRenderbuffer
noWebGLRenderbuffer = Nothing
{-# INLINE noWebGLRenderbuffer #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLRenderbuffer\"])" gTypeWebGLRenderbuffer :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLRenderingContext" (webgl1).
newtype WebGLRenderingContext = WebGLRenderingContext { unWebGLRenderingContext :: JSVal }

instance Eq WebGLRenderingContext where
  (WebGLRenderingContext a) == (WebGLRenderingContext b) = js_eq a b

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 = return . fmap WebGLRenderingContext . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLRenderingContext
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLRenderingContextBase WebGLRenderingContext
instance IsWebGLRenderingContextOverloads WebGLRenderingContext

instance IsGObject WebGLRenderingContext where
  typeGType _ = gTypeWebGLRenderingContext
  {-# INLINE typeGType #-}

noWebGLRenderingContext :: Maybe WebGLRenderingContext
noWebGLRenderingContext = Nothing
{-# INLINE noWebGLRenderingContext #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLRenderingContext\"])" gTypeWebGLRenderingContext :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLRenderingContextBase" (webgl1).
newtype WebGLRenderingContextBase = WebGLRenderingContextBase { unWebGLRenderingContextBase :: JSVal }

instance Eq WebGLRenderingContextBase where
  (WebGLRenderingContextBase a) == (WebGLRenderingContextBase b) = js_eq a b

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 = return . fmap WebGLRenderingContextBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLRenderingContextBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWebGLRenderingContextBase o
toWebGLRenderingContextBase :: IsWebGLRenderingContextBase o => o -> WebGLRenderingContextBase
toWebGLRenderingContextBase = WebGLRenderingContextBase . coerce

instance IsWebGLRenderingContextBase WebGLRenderingContextBase

instance IsGObject WebGLRenderingContextBase where
  typeGType _ = gTypeWebGLRenderingContextBase
  {-# INLINE typeGType #-}

noWebGLRenderingContextBase :: Maybe WebGLRenderingContextBase
noWebGLRenderingContextBase = Nothing
{-# INLINE noWebGLRenderingContextBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGLRenderingContextBase :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLRenderingContextOverloads" (webgl1).
newtype WebGLRenderingContextOverloads = WebGLRenderingContextOverloads { unWebGLRenderingContextOverloads :: JSVal }

instance Eq WebGLRenderingContextOverloads where
  (WebGLRenderingContextOverloads a) == (WebGLRenderingContextOverloads b) = js_eq a b

instance PToJSVal WebGLRenderingContextOverloads where
  pToJSVal = unWebGLRenderingContextOverloads
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebGLRenderingContextOverloads where
  pFromJSVal = WebGLRenderingContextOverloads
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebGLRenderingContextOverloads where
  toJSVal = return . unWebGLRenderingContextOverloads
  {-# INLINE toJSVal #-}

instance FromJSVal WebGLRenderingContextOverloads where
  fromJSVal = return . fmap WebGLRenderingContextOverloads . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLRenderingContextOverloads
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWebGLRenderingContextOverloads o
toWebGLRenderingContextOverloads :: IsWebGLRenderingContextOverloads o => o -> WebGLRenderingContextOverloads
toWebGLRenderingContextOverloads = WebGLRenderingContextOverloads . coerce

instance IsWebGLRenderingContextOverloads WebGLRenderingContextOverloads

instance IsGObject WebGLRenderingContextOverloads where
  typeGType _ = gTypeWebGLRenderingContextOverloads
  {-# INLINE typeGType #-}

noWebGLRenderingContextOverloads :: Maybe WebGLRenderingContextOverloads
noWebGLRenderingContextOverloads = Nothing
{-# INLINE noWebGLRenderingContextOverloads #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGLRenderingContextOverloads :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLSampler" (webgl2).
newtype WebGLSampler = WebGLSampler { unWebGLSampler :: JSVal }

instance Eq WebGLSampler where
  (WebGLSampler a) == (WebGLSampler b) = js_eq a b

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 = return . fmap WebGLSampler . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLSampler
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLSampler

instance IsGObject WebGLSampler where
  typeGType _ = gTypeWebGLSampler
  {-# INLINE typeGType #-}

noWebGLSampler :: Maybe WebGLSampler
noWebGLSampler = Nothing
{-# INLINE noWebGLSampler #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLSampler\"])" gTypeWebGLSampler :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLShader" (webgl1).
newtype WebGLShader = WebGLShader { unWebGLShader :: JSVal }

instance Eq WebGLShader where
  (WebGLShader a) == (WebGLShader b) = js_eq a b

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 = return . fmap WebGLShader . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLShader
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLShader

instance IsGObject WebGLShader where
  typeGType _ = gTypeWebGLShader
  {-# INLINE typeGType #-}

noWebGLShader :: Maybe WebGLShader
noWebGLShader = Nothing
{-# INLINE noWebGLShader #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLShader\"])" gTypeWebGLShader :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLShaderPrecisionFormat" (webgl1).
newtype WebGLShaderPrecisionFormat = WebGLShaderPrecisionFormat { unWebGLShaderPrecisionFormat :: JSVal }

instance Eq WebGLShaderPrecisionFormat where
  (WebGLShaderPrecisionFormat a) == (WebGLShaderPrecisionFormat b) = js_eq a b

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 = return . fmap WebGLShaderPrecisionFormat . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLShaderPrecisionFormat
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebGLShaderPrecisionFormat where
  typeGType _ = gTypeWebGLShaderPrecisionFormat
  {-# INLINE typeGType #-}

noWebGLShaderPrecisionFormat :: Maybe WebGLShaderPrecisionFormat
noWebGLShaderPrecisionFormat = Nothing
{-# INLINE noWebGLShaderPrecisionFormat #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLShaderPrecisionFormat\"])" gTypeWebGLShaderPrecisionFormat :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLSync" (webgl2).
newtype WebGLSync = WebGLSync { unWebGLSync :: JSVal }

instance Eq WebGLSync where
  (WebGLSync a) == (WebGLSync b) = js_eq a b

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 = return . fmap WebGLSync . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLSync
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLSync

instance IsGObject WebGLSync where
  typeGType _ = gTypeWebGLSync
  {-# INLINE typeGType #-}

noWebGLSync :: Maybe WebGLSync
noWebGLSync = Nothing
{-# INLINE noWebGLSync #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLSync\"])" gTypeWebGLSync :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLTexture" (webgl1).
newtype WebGLTexture = WebGLTexture { unWebGLTexture :: JSVal }

instance Eq WebGLTexture where
  (WebGLTexture a) == (WebGLTexture b) = js_eq a b

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 = return . fmap WebGLTexture . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLTexture
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLTexture

instance IsGObject WebGLTexture where
  typeGType _ = gTypeWebGLTexture
  {-# INLINE typeGType #-}

noWebGLTexture :: Maybe WebGLTexture
noWebGLTexture = Nothing
{-# INLINE noWebGLTexture #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLTexture\"])" gTypeWebGLTexture :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLTransformFeedback" (webgl2).
newtype WebGLTransformFeedback = WebGLTransformFeedback { unWebGLTransformFeedback :: JSVal }

instance Eq WebGLTransformFeedback where
  (WebGLTransformFeedback a) == (WebGLTransformFeedback b) = js_eq a b

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 = return . fmap WebGLTransformFeedback . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLTransformFeedback
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLTransformFeedback

instance IsGObject WebGLTransformFeedback where
  typeGType _ = gTypeWebGLTransformFeedback
  {-# INLINE typeGType #-}

noWebGLTransformFeedback :: Maybe WebGLTransformFeedback
noWebGLTransformFeedback = Nothing
{-# INLINE noWebGLTransformFeedback #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLTransformFeedback\"])" gTypeWebGLTransformFeedback :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLUniformLocation" (webgl1).
newtype WebGLUniformLocation = WebGLUniformLocation { unWebGLUniformLocation :: JSVal }

instance Eq WebGLUniformLocation where
  (WebGLUniformLocation a) == (WebGLUniformLocation b) = js_eq a b

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 = return . fmap WebGLUniformLocation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLUniformLocation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebGLUniformLocation where
  typeGType _ = gTypeWebGLUniformLocation
  {-# INLINE typeGType #-}

noWebGLUniformLocation :: Maybe WebGLUniformLocation
noWebGLUniformLocation = Nothing
{-# INLINE noWebGLUniformLocation #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLUniformLocation\"])" gTypeWebGLUniformLocation :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLVertexArrayObject" (webgl2).
newtype WebGLVertexArrayObject = WebGLVertexArrayObject { unWebGLVertexArrayObject :: JSVal }

instance Eq WebGLVertexArrayObject where
  (WebGLVertexArrayObject a) == (WebGLVertexArrayObject b) = js_eq a b

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 = return . fmap WebGLVertexArrayObject . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLVertexArrayObject
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLVertexArrayObject

instance IsGObject WebGLVertexArrayObject where
  typeGType _ = gTypeWebGLVertexArrayObject
  {-# INLINE typeGType #-}

noWebGLVertexArrayObject :: Maybe WebGLVertexArrayObject
noWebGLVertexArrayObject = Nothing
{-# INLINE noWebGLVertexArrayObject #-}

foreign import javascript unsafe "(() => globalThis[\"WebGLVertexArrayObject\"])" gTypeWebGLVertexArrayObject :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebGLVertexArrayObjectOES" (OES_vertex_array_object).
newtype WebGLVertexArrayObjectOES = WebGLVertexArrayObjectOES { unWebGLVertexArrayObjectOES :: JSVal }

instance Eq WebGLVertexArrayObjectOES where
  (WebGLVertexArrayObjectOES a) == (WebGLVertexArrayObjectOES b) = js_eq a b

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 = return . fmap WebGLVertexArrayObjectOES . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebGLVertexArrayObjectOES
  {-# INLINE fromJSValUnchecked #-}

instance IsWebGLObject WebGLVertexArrayObjectOES

instance IsGObject WebGLVertexArrayObjectOES where
  typeGType _ = gTypeWebGLVertexArrayObjectOES
  {-# INLINE typeGType #-}

noWebGLVertexArrayObjectOES :: Maybe WebGLVertexArrayObjectOES
noWebGLVertexArrayObjectOES = Nothing
{-# INLINE noWebGLVertexArrayObjectOES #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebGLVertexArrayObjectOES :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebSocket" (websockets).
newtype WebSocket = WebSocket { unWebSocket :: JSVal }

instance Eq WebSocket where
  (WebSocket a) == (WebSocket b) = js_eq a b

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 = return . fmap WebSocket . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebSocket
  {-# INLINE fromJSValUnchecked #-}

instance IsEventTarget WebSocket

instance IsGObject WebSocket where
  typeGType _ = gTypeWebSocket
  {-# INLINE typeGType #-}

noWebSocket :: Maybe WebSocket
noWebSocket = Nothing
{-# INLINE noWebSocket #-}

foreign import javascript unsafe "(() => globalThis[\"WebSocket\"])" gTypeWebSocket :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransport" (webtransport).
newtype WebTransport = WebTransport { unWebTransport :: JSVal }

instance Eq WebTransport where
  (WebTransport a) == (WebTransport b) = js_eq a b

instance PToJSVal WebTransport where
  pToJSVal = unWebTransport
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransport where
  pFromJSVal = WebTransport
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransport where
  toJSVal = return . unWebTransport
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransport where
  fromJSVal = return . fmap WebTransport . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransport
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransport where
  typeGType _ = gTypeWebTransport
  {-# INLINE typeGType #-}

noWebTransport :: Maybe WebTransport
noWebTransport = Nothing
{-# INLINE noWebTransport #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransport\"])" gTypeWebTransport :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportBidirectionalStream" (webtransport).
newtype WebTransportBidirectionalStream = WebTransportBidirectionalStream { unWebTransportBidirectionalStream :: JSVal }

instance Eq WebTransportBidirectionalStream where
  (WebTransportBidirectionalStream a) == (WebTransportBidirectionalStream b) = js_eq a b

instance PToJSVal WebTransportBidirectionalStream where
  pToJSVal = unWebTransportBidirectionalStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportBidirectionalStream where
  pFromJSVal = WebTransportBidirectionalStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportBidirectionalStream where
  toJSVal = return . unWebTransportBidirectionalStream
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportBidirectionalStream where
  fromJSVal = return . fmap WebTransportBidirectionalStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportBidirectionalStream
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportBidirectionalStream where
  typeGType _ = gTypeWebTransportBidirectionalStream
  {-# INLINE typeGType #-}

noWebTransportBidirectionalStream :: Maybe WebTransportBidirectionalStream
noWebTransportBidirectionalStream = Nothing
{-# INLINE noWebTransportBidirectionalStream #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportBidirectionalStream\"])" gTypeWebTransportBidirectionalStream :: GType

-- | Dictionary WebTransportCloseInfo (webtransport)
newtype WebTransportCloseInfo = WebTransportCloseInfo { unWebTransportCloseInfo :: JSVal }

instance Eq WebTransportCloseInfo where
  (WebTransportCloseInfo a) == (WebTransportCloseInfo b) = js_eq a b

instance PToJSVal WebTransportCloseInfo where
  pToJSVal = unWebTransportCloseInfo
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportCloseInfo where
  pFromJSVal = WebTransportCloseInfo
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportCloseInfo where
  toJSVal = return . unWebTransportCloseInfo
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportCloseInfo where
  fromJSVal = return . fmap WebTransportCloseInfo . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportCloseInfo
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportCloseInfo where
  typeGType _ = gTypeWebTransportCloseInfo
  {-# INLINE typeGType #-}

noWebTransportCloseInfo :: Maybe WebTransportCloseInfo
noWebTransportCloseInfo = Nothing
{-# INLINE noWebTransportCloseInfo #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportCloseInfo :: GType

-- | Dictionary WebTransportConnectionStats (webtransport)
newtype WebTransportConnectionStats = WebTransportConnectionStats { unWebTransportConnectionStats :: JSVal }

instance Eq WebTransportConnectionStats where
  (WebTransportConnectionStats a) == (WebTransportConnectionStats b) = js_eq a b

instance PToJSVal WebTransportConnectionStats where
  pToJSVal = unWebTransportConnectionStats
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportConnectionStats where
  pFromJSVal = WebTransportConnectionStats
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportConnectionStats where
  toJSVal = return . unWebTransportConnectionStats
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportConnectionStats where
  fromJSVal = return . fmap WebTransportConnectionStats . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportConnectionStats
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportConnectionStats where
  typeGType _ = gTypeWebTransportConnectionStats
  {-# INLINE typeGType #-}

noWebTransportConnectionStats :: Maybe WebTransportConnectionStats
noWebTransportConnectionStats = Nothing
{-# INLINE noWebTransportConnectionStats #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportConnectionStats :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportDatagramDuplexStream" (webtransport).
newtype WebTransportDatagramDuplexStream = WebTransportDatagramDuplexStream { unWebTransportDatagramDuplexStream :: JSVal }

instance Eq WebTransportDatagramDuplexStream where
  (WebTransportDatagramDuplexStream a) == (WebTransportDatagramDuplexStream b) = js_eq a b

instance PToJSVal WebTransportDatagramDuplexStream where
  pToJSVal = unWebTransportDatagramDuplexStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportDatagramDuplexStream where
  pFromJSVal = WebTransportDatagramDuplexStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportDatagramDuplexStream where
  toJSVal = return . unWebTransportDatagramDuplexStream
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportDatagramDuplexStream where
  fromJSVal = return . fmap WebTransportDatagramDuplexStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportDatagramDuplexStream
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportDatagramDuplexStream where
  typeGType _ = gTypeWebTransportDatagramDuplexStream
  {-# INLINE typeGType #-}

noWebTransportDatagramDuplexStream :: Maybe WebTransportDatagramDuplexStream
noWebTransportDatagramDuplexStream = Nothing
{-# INLINE noWebTransportDatagramDuplexStream #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportDatagramDuplexStream\"])" gTypeWebTransportDatagramDuplexStream :: GType

-- | Dictionary WebTransportDatagramStats (webtransport)
newtype WebTransportDatagramStats = WebTransportDatagramStats { unWebTransportDatagramStats :: JSVal }

instance Eq WebTransportDatagramStats where
  (WebTransportDatagramStats a) == (WebTransportDatagramStats b) = js_eq a b

instance PToJSVal WebTransportDatagramStats where
  pToJSVal = unWebTransportDatagramStats
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportDatagramStats where
  pFromJSVal = WebTransportDatagramStats
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportDatagramStats where
  toJSVal = return . unWebTransportDatagramStats
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportDatagramStats where
  fromJSVal = return . fmap WebTransportDatagramStats . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportDatagramStats
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportDatagramStats where
  typeGType _ = gTypeWebTransportDatagramStats
  {-# INLINE typeGType #-}

noWebTransportDatagramStats :: Maybe WebTransportDatagramStats
noWebTransportDatagramStats = Nothing
{-# INLINE noWebTransportDatagramStats #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportDatagramStats :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportDatagramsWritable" (webtransport).
newtype WebTransportDatagramsWritable = WebTransportDatagramsWritable { unWebTransportDatagramsWritable :: JSVal }

instance Eq WebTransportDatagramsWritable where
  (WebTransportDatagramsWritable a) == (WebTransportDatagramsWritable b) = js_eq a b

instance PToJSVal WebTransportDatagramsWritable where
  pToJSVal = unWebTransportDatagramsWritable
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportDatagramsWritable where
  pFromJSVal = WebTransportDatagramsWritable
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportDatagramsWritable where
  toJSVal = return . unWebTransportDatagramsWritable
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportDatagramsWritable where
  fromJSVal = return . fmap WebTransportDatagramsWritable . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportDatagramsWritable
  {-# INLINE fromJSValUnchecked #-}

instance IsWritableStream WebTransportDatagramsWritable

instance IsGObject WebTransportDatagramsWritable where
  typeGType _ = gTypeWebTransportDatagramsWritable
  {-# INLINE typeGType #-}

noWebTransportDatagramsWritable :: Maybe WebTransportDatagramsWritable
noWebTransportDatagramsWritable = Nothing
{-# INLINE noWebTransportDatagramsWritable #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportDatagramsWritable\"])" gTypeWebTransportDatagramsWritable :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportError" (webtransport).
newtype WebTransportError = WebTransportError { unWebTransportError :: JSVal }

instance Eq WebTransportError where
  (WebTransportError a) == (WebTransportError b) = js_eq a b

instance PToJSVal WebTransportError where
  pToJSVal = unWebTransportError
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportError where
  pFromJSVal = WebTransportError
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportError where
  toJSVal = return . unWebTransportError
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportError where
  fromJSVal = return . fmap WebTransportError . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportError
  {-# INLINE fromJSValUnchecked #-}

instance IsDOMException WebTransportError

instance IsGObject WebTransportError where
  typeGType _ = gTypeWebTransportError
  {-# INLINE typeGType #-}

noWebTransportError :: Maybe WebTransportError
noWebTransportError = Nothing
{-# INLINE noWebTransportError #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportError\"])" gTypeWebTransportError :: GType

-- | Dictionary WebTransportErrorOptions (webtransport)
newtype WebTransportErrorOptions = WebTransportErrorOptions { unWebTransportErrorOptions :: JSVal }

instance Eq WebTransportErrorOptions where
  (WebTransportErrorOptions a) == (WebTransportErrorOptions b) = js_eq a b

instance PToJSVal WebTransportErrorOptions where
  pToJSVal = unWebTransportErrorOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportErrorOptions where
  pFromJSVal = WebTransportErrorOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportErrorOptions where
  toJSVal = return . unWebTransportErrorOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportErrorOptions where
  fromJSVal = return . fmap WebTransportErrorOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportErrorOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportErrorOptions where
  typeGType _ = gTypeWebTransportErrorOptions
  {-# INLINE typeGType #-}

noWebTransportErrorOptions :: Maybe WebTransportErrorOptions
noWebTransportErrorOptions = Nothing
{-# INLINE noWebTransportErrorOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportErrorOptions :: GType

-- | Dictionary WebTransportHash (webtransport)
newtype WebTransportHash = WebTransportHash { unWebTransportHash :: JSVal }

instance Eq WebTransportHash where
  (WebTransportHash a) == (WebTransportHash b) = js_eq a b

instance PToJSVal WebTransportHash where
  pToJSVal = unWebTransportHash
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportHash where
  pFromJSVal = WebTransportHash
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportHash where
  toJSVal = return . unWebTransportHash
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportHash where
  fromJSVal = return . fmap WebTransportHash . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportHash
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportHash where
  typeGType _ = gTypeWebTransportHash
  {-# INLINE typeGType #-}

noWebTransportHash :: Maybe WebTransportHash
noWebTransportHash = Nothing
{-# INLINE noWebTransportHash #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportHash :: GType

-- | Dictionary WebTransportOptions (webtransport)
newtype WebTransportOptions = WebTransportOptions { unWebTransportOptions :: JSVal }

instance Eq WebTransportOptions where
  (WebTransportOptions a) == (WebTransportOptions b) = js_eq a b

instance PToJSVal WebTransportOptions where
  pToJSVal = unWebTransportOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportOptions where
  pFromJSVal = WebTransportOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportOptions where
  toJSVal = return . unWebTransportOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportOptions where
  fromJSVal = return . fmap WebTransportOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportOptions where
  typeGType _ = gTypeWebTransportOptions
  {-# INLINE typeGType #-}

noWebTransportOptions :: Maybe WebTransportOptions
noWebTransportOptions = Nothing
{-# INLINE noWebTransportOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportReceiveStream" (webtransport).
newtype WebTransportReceiveStream = WebTransportReceiveStream { unWebTransportReceiveStream :: JSVal }

instance Eq WebTransportReceiveStream where
  (WebTransportReceiveStream a) == (WebTransportReceiveStream b) = js_eq a b

instance PToJSVal WebTransportReceiveStream where
  pToJSVal = unWebTransportReceiveStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportReceiveStream where
  pFromJSVal = WebTransportReceiveStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportReceiveStream where
  toJSVal = return . unWebTransportReceiveStream
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportReceiveStream where
  fromJSVal = return . fmap WebTransportReceiveStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportReceiveStream
  {-# INLINE fromJSValUnchecked #-}

instance IsReadableStream WebTransportReceiveStream

instance IsGObject WebTransportReceiveStream where
  typeGType _ = gTypeWebTransportReceiveStream
  {-# INLINE typeGType #-}

noWebTransportReceiveStream :: Maybe WebTransportReceiveStream
noWebTransportReceiveStream = Nothing
{-# INLINE noWebTransportReceiveStream #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportReceiveStream\"])" gTypeWebTransportReceiveStream :: GType

-- | Dictionary WebTransportReceiveStreamStats (webtransport)
newtype WebTransportReceiveStreamStats = WebTransportReceiveStreamStats { unWebTransportReceiveStreamStats :: JSVal }

instance Eq WebTransportReceiveStreamStats where
  (WebTransportReceiveStreamStats a) == (WebTransportReceiveStreamStats b) = js_eq a b

instance PToJSVal WebTransportReceiveStreamStats where
  pToJSVal = unWebTransportReceiveStreamStats
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportReceiveStreamStats where
  pFromJSVal = WebTransportReceiveStreamStats
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportReceiveStreamStats where
  toJSVal = return . unWebTransportReceiveStreamStats
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportReceiveStreamStats where
  fromJSVal = return . fmap WebTransportReceiveStreamStats . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportReceiveStreamStats
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportReceiveStreamStats where
  typeGType _ = gTypeWebTransportReceiveStreamStats
  {-# INLINE typeGType #-}

noWebTransportReceiveStreamStats :: Maybe WebTransportReceiveStreamStats
noWebTransportReceiveStreamStats = Nothing
{-# INLINE noWebTransportReceiveStreamStats #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportReceiveStreamStats :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportSendGroup" (webtransport).
newtype WebTransportSendGroup = WebTransportSendGroup { unWebTransportSendGroup :: JSVal }

instance Eq WebTransportSendGroup where
  (WebTransportSendGroup a) == (WebTransportSendGroup b) = js_eq a b

instance PToJSVal WebTransportSendGroup where
  pToJSVal = unWebTransportSendGroup
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportSendGroup where
  pFromJSVal = WebTransportSendGroup
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportSendGroup where
  toJSVal = return . unWebTransportSendGroup
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportSendGroup where
  fromJSVal = return . fmap WebTransportSendGroup . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportSendGroup
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportSendGroup where
  typeGType _ = gTypeWebTransportSendGroup
  {-# INLINE typeGType #-}

noWebTransportSendGroup :: Maybe WebTransportSendGroup
noWebTransportSendGroup = Nothing
{-# INLINE noWebTransportSendGroup #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportSendGroup\"])" gTypeWebTransportSendGroup :: GType

-- | Dictionary WebTransportSendOptions (webtransport)
newtype WebTransportSendOptions = WebTransportSendOptions { unWebTransportSendOptions :: JSVal }

instance Eq WebTransportSendOptions where
  (WebTransportSendOptions a) == (WebTransportSendOptions b) = js_eq a b

instance PToJSVal WebTransportSendOptions where
  pToJSVal = unWebTransportSendOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportSendOptions where
  pFromJSVal = WebTransportSendOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportSendOptions where
  toJSVal = return . unWebTransportSendOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportSendOptions where
  fromJSVal = return . fmap WebTransportSendOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportSendOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWebTransportSendOptions o
toWebTransportSendOptions :: IsWebTransportSendOptions o => o -> WebTransportSendOptions
toWebTransportSendOptions = WebTransportSendOptions . coerce

instance IsWebTransportSendOptions WebTransportSendOptions

instance IsGObject WebTransportSendOptions where
  typeGType _ = gTypeWebTransportSendOptions
  {-# INLINE typeGType #-}

noWebTransportSendOptions :: Maybe WebTransportSendOptions
noWebTransportSendOptions = Nothing
{-# INLINE noWebTransportSendOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportSendOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportSendStream" (webtransport).
newtype WebTransportSendStream = WebTransportSendStream { unWebTransportSendStream :: JSVal }

instance Eq WebTransportSendStream where
  (WebTransportSendStream a) == (WebTransportSendStream b) = js_eq a b

instance PToJSVal WebTransportSendStream where
  pToJSVal = unWebTransportSendStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportSendStream where
  pFromJSVal = WebTransportSendStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportSendStream where
  toJSVal = return . unWebTransportSendStream
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportSendStream where
  fromJSVal = return . fmap WebTransportSendStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportSendStream
  {-# INLINE fromJSValUnchecked #-}

instance IsWritableStream WebTransportSendStream

instance IsGObject WebTransportSendStream where
  typeGType _ = gTypeWebTransportSendStream
  {-# INLINE typeGType #-}

noWebTransportSendStream :: Maybe WebTransportSendStream
noWebTransportSendStream = Nothing
{-# INLINE noWebTransportSendStream #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportSendStream\"])" gTypeWebTransportSendStream :: GType

-- | Dictionary WebTransportSendStreamOptions (webtransport)
newtype WebTransportSendStreamOptions = WebTransportSendStreamOptions { unWebTransportSendStreamOptions :: JSVal }

instance Eq WebTransportSendStreamOptions where
  (WebTransportSendStreamOptions a) == (WebTransportSendStreamOptions b) = js_eq a b

instance PToJSVal WebTransportSendStreamOptions where
  pToJSVal = unWebTransportSendStreamOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportSendStreamOptions where
  pFromJSVal = WebTransportSendStreamOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportSendStreamOptions where
  toJSVal = return . unWebTransportSendStreamOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportSendStreamOptions where
  fromJSVal = return . fmap WebTransportSendStreamOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportSendStreamOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsWebTransportSendOptions WebTransportSendStreamOptions

instance IsGObject WebTransportSendStreamOptions where
  typeGType _ = gTypeWebTransportSendStreamOptions
  {-# INLINE typeGType #-}

noWebTransportSendStreamOptions :: Maybe WebTransportSendStreamOptions
noWebTransportSendStreamOptions = Nothing
{-# INLINE noWebTransportSendStreamOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportSendStreamOptions :: GType

-- | Dictionary WebTransportSendStreamStats (webtransport)
newtype WebTransportSendStreamStats = WebTransportSendStreamStats { unWebTransportSendStreamStats :: JSVal }

instance Eq WebTransportSendStreamStats where
  (WebTransportSendStreamStats a) == (WebTransportSendStreamStats b) = js_eq a b

instance PToJSVal WebTransportSendStreamStats where
  pToJSVal = unWebTransportSendStreamStats
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportSendStreamStats where
  pFromJSVal = WebTransportSendStreamStats
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportSendStreamStats where
  toJSVal = return . unWebTransportSendStreamStats
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportSendStreamStats where
  fromJSVal = return . fmap WebTransportSendStreamStats . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportSendStreamStats
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WebTransportSendStreamStats where
  typeGType _ = gTypeWebTransportSendStreamStats
  {-# INLINE typeGType #-}

noWebTransportSendStreamStats :: Maybe WebTransportSendStreamStats
noWebTransportSendStreamStats = Nothing
{-# INLINE noWebTransportSendStreamStats #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWebTransportSendStreamStats :: GType

-- | Functions for this interface are in "GHCJS.DOM.WebTransportWriter" (webtransport).
newtype WebTransportWriter = WebTransportWriter { unWebTransportWriter :: JSVal }

instance Eq WebTransportWriter where
  (WebTransportWriter a) == (WebTransportWriter b) = js_eq a b

instance PToJSVal WebTransportWriter where
  pToJSVal = unWebTransportWriter
  {-# INLINE pToJSVal #-}

instance PFromJSVal WebTransportWriter where
  pFromJSVal = WebTransportWriter
  {-# INLINE pFromJSVal #-}

instance ToJSVal WebTransportWriter where
  toJSVal = return . unWebTransportWriter
  {-# INLINE toJSVal #-}

instance FromJSVal WebTransportWriter where
  fromJSVal = return . fmap WebTransportWriter . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WebTransportWriter
  {-# INLINE fromJSValUnchecked #-}

instance IsWritableStreamDefaultWriter WebTransportWriter

instance IsGObject WebTransportWriter where
  typeGType _ = gTypeWebTransportWriter
  {-# INLINE typeGType #-}

noWebTransportWriter :: Maybe WebTransportWriter
noWebTransportWriter = Nothing
{-# INLINE noWebTransportWriter #-}

foreign import javascript unsafe "(() => globalThis[\"WebTransportWriter\"])" gTypeWebTransportWriter :: GType

-- | Functions for this interface are in "GHCJS.DOM.WheelEvent" (pointerevents4).
newtype WheelEvent = WheelEvent { unWheelEvent :: JSVal }

instance Eq WheelEvent where
  (WheelEvent a) == (WheelEvent b) = js_eq a b

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 = return . fmap WheelEvent . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WheelEvent
  {-# INLINE fromJSValUnchecked #-}

instance IsMouseEvent WheelEvent
instance IsUIEvent WheelEvent
instance IsEvent WheelEvent

instance IsGObject WheelEvent where
  typeGType _ = gTypeWheelEvent
  {-# INLINE typeGType #-}

noWheelEvent :: Maybe WheelEvent
noWheelEvent = Nothing
{-# INLINE noWheelEvent #-}

foreign import javascript unsafe "(() => globalThis[\"WheelEvent\"])" gTypeWheelEvent :: GType

-- | Dictionary WheelEventInit (pointerevents4)
newtype WheelEventInit = WheelEventInit { unWheelEventInit :: JSVal }

instance Eq WheelEventInit where
  (WheelEventInit a) == (WheelEventInit b) = js_eq a b

instance PToJSVal WheelEventInit where
  pToJSVal = unWheelEventInit
  {-# INLINE pToJSVal #-}

instance PFromJSVal WheelEventInit where
  pFromJSVal = WheelEventInit
  {-# INLINE pFromJSVal #-}

instance ToJSVal WheelEventInit where
  toJSVal = return . unWheelEventInit
  {-# INLINE toJSVal #-}

instance FromJSVal WheelEventInit where
  fromJSVal = return . fmap WheelEventInit . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WheelEventInit
  {-# INLINE fromJSValUnchecked #-}

instance IsMouseEventInit WheelEventInit
instance IsEventModifierInit WheelEventInit
instance IsUIEventInit WheelEventInit
instance IsEventInit WheelEventInit

instance IsGObject WheelEventInit where
  typeGType _ = gTypeWheelEventInit
  {-# INLINE typeGType #-}

noWheelEventInit :: Maybe WheelEventInit
noWheelEventInit = Nothing
{-# INLINE noWheelEventInit #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWheelEventInit :: GType

-- | Functions for this interface are in "GHCJS.DOM.Window" (html).
newtype Window = Window { unWindow :: JSVal }

instance Eq Window where
  (Window a) == (Window b) = js_eq a b

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 = return . fmap Window . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Window
  {-# INLINE fromJSValUnchecked #-}

instance IsAnimationFrameProvider Window
instance IsGlobalEventHandlers Window
instance IsPushManagerAttribute Window
instance IsWindowEventHandlers Window
instance IsWindowLocalStorage Window
instance IsWindowOrWorkerGlobalScope Window
instance IsWindowSessionStorage Window
instance IsEventTarget Window

instance IsGObject Window where
  typeGType _ = gTypeWindow
  {-# INLINE typeGType #-}

noWindow :: Maybe Window
noWindow = Nothing
{-# INLINE noWindow #-}

foreign import javascript unsafe "(() => globalThis[\"Window\"])" gTypeWindow :: GType

-- | Functions for this interface are in "GHCJS.DOM.WindowClient" (service-workers).
newtype WindowClient = WindowClient { unWindowClient :: JSVal }

instance Eq WindowClient where
  (WindowClient a) == (WindowClient b) = js_eq a b

instance PToJSVal WindowClient where
  pToJSVal = unWindowClient
  {-# INLINE pToJSVal #-}

instance PFromJSVal WindowClient where
  pFromJSVal = WindowClient
  {-# INLINE pFromJSVal #-}

instance ToJSVal WindowClient where
  toJSVal = return . unWindowClient
  {-# INLINE toJSVal #-}

instance FromJSVal WindowClient where
  fromJSVal = return . fmap WindowClient . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WindowClient
  {-# INLINE fromJSValUnchecked #-}

instance IsClient WindowClient

instance IsGObject WindowClient where
  typeGType _ = gTypeWindowClient
  {-# INLINE typeGType #-}

noWindowClient :: Maybe WindowClient
noWindowClient = Nothing
{-# INLINE noWindowClient #-}

foreign import javascript unsafe "(() => globalThis[\"WindowClient\"])" gTypeWindowClient :: GType

-- | Functions for this interface are in "GHCJS.DOM.WindowEventHandlers" (html).
newtype WindowEventHandlers = WindowEventHandlers { unWindowEventHandlers :: JSVal }

instance Eq WindowEventHandlers where
  (WindowEventHandlers a) == (WindowEventHandlers b) = js_eq a b

instance PToJSVal WindowEventHandlers where
  pToJSVal = unWindowEventHandlers
  {-# INLINE pToJSVal #-}

instance PFromJSVal WindowEventHandlers where
  pFromJSVal = WindowEventHandlers
  {-# INLINE pFromJSVal #-}

instance ToJSVal WindowEventHandlers where
  toJSVal = return . unWindowEventHandlers
  {-# INLINE toJSVal #-}

instance FromJSVal WindowEventHandlers where
  fromJSVal = return . fmap WindowEventHandlers . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WindowEventHandlers
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWindowEventHandlers o
toWindowEventHandlers :: IsWindowEventHandlers o => o -> WindowEventHandlers
toWindowEventHandlers = WindowEventHandlers . coerce

instance IsWindowEventHandlers WindowEventHandlers

instance IsGObject WindowEventHandlers where
  typeGType _ = gTypeWindowEventHandlers
  {-# INLINE typeGType #-}

noWindowEventHandlers :: Maybe WindowEventHandlers
noWindowEventHandlers = Nothing
{-# INLINE noWindowEventHandlers #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWindowEventHandlers :: GType

-- | Functions for this interface are in "GHCJS.DOM.WindowLocalStorage" (html).
newtype WindowLocalStorage = WindowLocalStorage { unWindowLocalStorage :: JSVal }

instance Eq WindowLocalStorage where
  (WindowLocalStorage a) == (WindowLocalStorage b) = js_eq a b

instance PToJSVal WindowLocalStorage where
  pToJSVal = unWindowLocalStorage
  {-# INLINE pToJSVal #-}

instance PFromJSVal WindowLocalStorage where
  pFromJSVal = WindowLocalStorage
  {-# INLINE pFromJSVal #-}

instance ToJSVal WindowLocalStorage where
  toJSVal = return . unWindowLocalStorage
  {-# INLINE toJSVal #-}

instance FromJSVal WindowLocalStorage where
  fromJSVal = return . fmap WindowLocalStorage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WindowLocalStorage
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWindowLocalStorage o
toWindowLocalStorage :: IsWindowLocalStorage o => o -> WindowLocalStorage
toWindowLocalStorage = WindowLocalStorage . coerce

instance IsWindowLocalStorage WindowLocalStorage

instance IsGObject WindowLocalStorage where
  typeGType _ = gTypeWindowLocalStorage
  {-# INLINE typeGType #-}

noWindowLocalStorage :: Maybe WindowLocalStorage
noWindowLocalStorage = Nothing
{-# INLINE noWindowLocalStorage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWindowLocalStorage :: GType

-- | Functions for this interface are in "GHCJS.DOM.WindowOrWorkerGlobalScope" (html).
newtype WindowOrWorkerGlobalScope = WindowOrWorkerGlobalScope { unWindowOrWorkerGlobalScope :: JSVal }

instance Eq WindowOrWorkerGlobalScope where
  (WindowOrWorkerGlobalScope a) == (WindowOrWorkerGlobalScope b) = js_eq a b

instance PToJSVal WindowOrWorkerGlobalScope where
  pToJSVal = unWindowOrWorkerGlobalScope
  {-# INLINE pToJSVal #-}

instance PFromJSVal WindowOrWorkerGlobalScope where
  pFromJSVal = WindowOrWorkerGlobalScope
  {-# INLINE pFromJSVal #-}

instance ToJSVal WindowOrWorkerGlobalScope where
  toJSVal = return . unWindowOrWorkerGlobalScope
  {-# INLINE toJSVal #-}

instance FromJSVal WindowOrWorkerGlobalScope where
  fromJSVal = return . fmap WindowOrWorkerGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WindowOrWorkerGlobalScope
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWindowOrWorkerGlobalScope o
toWindowOrWorkerGlobalScope :: IsWindowOrWorkerGlobalScope o => o -> WindowOrWorkerGlobalScope
toWindowOrWorkerGlobalScope = WindowOrWorkerGlobalScope . coerce

instance IsWindowOrWorkerGlobalScope WindowOrWorkerGlobalScope

instance IsGObject WindowOrWorkerGlobalScope where
  typeGType _ = gTypeWindowOrWorkerGlobalScope
  {-# INLINE typeGType #-}

noWindowOrWorkerGlobalScope :: Maybe WindowOrWorkerGlobalScope
noWindowOrWorkerGlobalScope = Nothing
{-# INLINE noWindowOrWorkerGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWindowOrWorkerGlobalScope :: GType

-- | Dictionary WindowPostMessageOptions (html)
newtype WindowPostMessageOptions = WindowPostMessageOptions { unWindowPostMessageOptions :: JSVal }

instance Eq WindowPostMessageOptions where
  (WindowPostMessageOptions a) == (WindowPostMessageOptions b) = js_eq a b

instance PToJSVal WindowPostMessageOptions where
  pToJSVal = unWindowPostMessageOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WindowPostMessageOptions where
  pFromJSVal = WindowPostMessageOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WindowPostMessageOptions where
  toJSVal = return . unWindowPostMessageOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WindowPostMessageOptions where
  fromJSVal = return . fmap WindowPostMessageOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WindowPostMessageOptions
  {-# INLINE fromJSValUnchecked #-}

instance IsStructuredSerializeOptions WindowPostMessageOptions

instance IsGObject WindowPostMessageOptions where
  typeGType _ = gTypeWindowPostMessageOptions
  {-# INLINE typeGType #-}

noWindowPostMessageOptions :: Maybe WindowPostMessageOptions
noWindowPostMessageOptions = Nothing
{-# INLINE noWindowPostMessageOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWindowPostMessageOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.WindowSessionStorage" (html).
newtype WindowSessionStorage = WindowSessionStorage { unWindowSessionStorage :: JSVal }

instance Eq WindowSessionStorage where
  (WindowSessionStorage a) == (WindowSessionStorage b) = js_eq a b

instance PToJSVal WindowSessionStorage where
  pToJSVal = unWindowSessionStorage
  {-# INLINE pToJSVal #-}

instance PFromJSVal WindowSessionStorage where
  pFromJSVal = WindowSessionStorage
  {-# INLINE pFromJSVal #-}

instance ToJSVal WindowSessionStorage where
  toJSVal = return . unWindowSessionStorage
  {-# INLINE toJSVal #-}

instance FromJSVal WindowSessionStorage where
  fromJSVal = return . fmap WindowSessionStorage . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WindowSessionStorage
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWindowSessionStorage o
toWindowSessionStorage :: IsWindowSessionStorage o => o -> WindowSessionStorage
toWindowSessionStorage = WindowSessionStorage . coerce

instance IsWindowSessionStorage WindowSessionStorage

instance IsGObject WindowSessionStorage where
  typeGType _ = gTypeWindowSessionStorage
  {-# INLINE typeGType #-}

noWindowSessionStorage :: Maybe WindowSessionStorage
noWindowSessionStorage = Nothing
{-# INLINE noWindowSessionStorage #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWindowSessionStorage :: GType

-- | Functions for this interface are in "GHCJS.DOM.Worker" (html).
newtype Worker = Worker { unWorker :: JSVal }

instance Eq Worker where
  (Worker a) == (Worker b) = js_eq a b

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 = return . fmap Worker . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Worker
  {-# INLINE fromJSValUnchecked #-}

instance IsAbstractWorker Worker
instance IsMessageEventTarget Worker
instance IsEventTarget Worker

instance IsGObject Worker where
  typeGType _ = gTypeWorker
  {-# INLINE typeGType #-}

noWorker :: Maybe Worker
noWorker = Nothing
{-# INLINE noWorker #-}

foreign import javascript unsafe "(() => globalThis[\"Worker\"])" gTypeWorker :: GType

-- | Dictionary WorkerAndParameters (webrtc-encoded-transform)
newtype WorkerAndParameters = WorkerAndParameters { unWorkerAndParameters :: JSVal }

instance Eq WorkerAndParameters where
  (WorkerAndParameters a) == (WorkerAndParameters b) = js_eq a b

instance PToJSVal WorkerAndParameters where
  pToJSVal = unWorkerAndParameters
  {-# INLINE pToJSVal #-}

instance PFromJSVal WorkerAndParameters where
  pFromJSVal = WorkerAndParameters
  {-# INLINE pFromJSVal #-}

instance ToJSVal WorkerAndParameters where
  toJSVal = return . unWorkerAndParameters
  {-# INLINE toJSVal #-}

instance FromJSVal WorkerAndParameters where
  fromJSVal = return . fmap WorkerAndParameters . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkerAndParameters
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WorkerAndParameters where
  typeGType _ = gTypeWorkerAndParameters
  {-# INLINE typeGType #-}

noWorkerAndParameters :: Maybe WorkerAndParameters
noWorkerAndParameters = Nothing
{-# INLINE noWorkerAndParameters #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWorkerAndParameters :: GType

-- | Functions for this interface are in "GHCJS.DOM.WorkerGlobalScope" (html).
newtype WorkerGlobalScope = WorkerGlobalScope { unWorkerGlobalScope :: JSVal }

instance Eq WorkerGlobalScope where
  (WorkerGlobalScope a) == (WorkerGlobalScope b) = js_eq a b

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 = return . fmap WorkerGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkerGlobalScope
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsFontFaceSource o, IsWindowOrWorkerGlobalScope o, IsGObject o) => IsWorkerGlobalScope o
toWorkerGlobalScope :: IsWorkerGlobalScope o => o -> WorkerGlobalScope
toWorkerGlobalScope = WorkerGlobalScope . coerce

instance IsWorkerGlobalScope WorkerGlobalScope
instance IsFontFaceSource WorkerGlobalScope
instance IsWindowOrWorkerGlobalScope WorkerGlobalScope
instance IsEventTarget WorkerGlobalScope

instance IsGObject WorkerGlobalScope where
  typeGType _ = gTypeWorkerGlobalScope
  {-# INLINE typeGType #-}

noWorkerGlobalScope :: Maybe WorkerGlobalScope
noWorkerGlobalScope = Nothing
{-# INLINE noWorkerGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"WorkerGlobalScope\"])" gTypeWorkerGlobalScope :: GType

-- | Functions for this interface are in "GHCJS.DOM.WorkerLocation" (html).
newtype WorkerLocation = WorkerLocation { unWorkerLocation :: JSVal }

instance Eq WorkerLocation where
  (WorkerLocation a) == (WorkerLocation b) = js_eq a b

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 = return . fmap WorkerLocation . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkerLocation
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WorkerLocation where
  typeGType _ = gTypeWorkerLocation
  {-# INLINE typeGType #-}

noWorkerLocation :: Maybe WorkerLocation
noWorkerLocation = Nothing
{-# INLINE noWorkerLocation #-}

foreign import javascript unsafe "(() => globalThis[\"WorkerLocation\"])" gTypeWorkerLocation :: GType

-- | Functions for this interface are in "GHCJS.DOM.WorkerNavigator" (html).
newtype WorkerNavigator = WorkerNavigator { unWorkerNavigator :: JSVal }

instance Eq WorkerNavigator where
  (WorkerNavigator a) == (WorkerNavigator b) = js_eq a b

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 = return . fmap WorkerNavigator . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkerNavigator
  {-# INLINE fromJSValUnchecked #-}

instance IsNavigatorBadge WorkerNavigator
instance IsNavigatorConcurrentHardware WorkerNavigator
instance IsNavigatorGPU WorkerNavigator
instance IsNavigatorID WorkerNavigator
instance IsNavigatorLanguage WorkerNavigator
instance IsNavigatorLocks WorkerNavigator
instance IsNavigatorOnLine WorkerNavigator
instance IsNavigatorStorage WorkerNavigator

instance IsGObject WorkerNavigator where
  typeGType _ = gTypeWorkerNavigator
  {-# INLINE typeGType #-}

noWorkerNavigator :: Maybe WorkerNavigator
noWorkerNavigator = Nothing
{-# INLINE noWorkerNavigator #-}

foreign import javascript unsafe "(() => globalThis[\"WorkerNavigator\"])" gTypeWorkerNavigator :: GType

-- | Dictionary WorkerOptions (html)
newtype WorkerOptions = WorkerOptions { unWorkerOptions :: JSVal }

instance Eq WorkerOptions where
  (WorkerOptions a) == (WorkerOptions b) = js_eq a b

instance PToJSVal WorkerOptions where
  pToJSVal = unWorkerOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WorkerOptions where
  pFromJSVal = WorkerOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WorkerOptions where
  toJSVal = return . unWorkerOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WorkerOptions where
  fromJSVal = return . fmap WorkerOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkerOptions
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWorkerOptions o
toWorkerOptions :: IsWorkerOptions o => o -> WorkerOptions
toWorkerOptions = WorkerOptions . coerce

instance IsWorkerOptions WorkerOptions

instance IsGObject WorkerOptions where
  typeGType _ = gTypeWorkerOptions
  {-# INLINE typeGType #-}

noWorkerOptions :: Maybe WorkerOptions
noWorkerOptions = Nothing
{-# INLINE noWorkerOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWorkerOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.Worklet" (html).
newtype Worklet = Worklet { unWorklet :: JSVal }

instance Eq Worklet where
  (Worklet a) == (Worklet b) = js_eq a b

instance PToJSVal Worklet where
  pToJSVal = unWorklet
  {-# INLINE pToJSVal #-}

instance PFromJSVal Worklet where
  pFromJSVal = Worklet
  {-# INLINE pFromJSVal #-}

instance ToJSVal Worklet where
  toJSVal = return . unWorklet
  {-# INLINE toJSVal #-}

instance FromJSVal Worklet where
  fromJSVal = return . fmap Worklet . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . Worklet
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWorklet o
toWorklet :: IsWorklet o => o -> Worklet
toWorklet = Worklet . coerce

instance IsWorklet Worklet

instance IsGObject Worklet where
  typeGType _ = gTypeWorklet
  {-# INLINE typeGType #-}

noWorklet :: Maybe Worklet
noWorklet = Nothing
{-# INLINE noWorklet #-}

foreign import javascript unsafe "(() => globalThis[\"Worklet\"])" gTypeWorklet :: GType

-- | Functions for this interface are in "GHCJS.DOM.WorkletGlobalScope" (html).
newtype WorkletGlobalScope = WorkletGlobalScope { unWorkletGlobalScope :: JSVal }

instance Eq WorkletGlobalScope where
  (WorkletGlobalScope a) == (WorkletGlobalScope b) = js_eq a b

instance PToJSVal WorkletGlobalScope where
  pToJSVal = unWorkletGlobalScope
  {-# INLINE pToJSVal #-}

instance PFromJSVal WorkletGlobalScope where
  pFromJSVal = WorkletGlobalScope
  {-# INLINE pFromJSVal #-}

instance ToJSVal WorkletGlobalScope where
  toJSVal = return . unWorkletGlobalScope
  {-# INLINE toJSVal #-}

instance FromJSVal WorkletGlobalScope where
  fromJSVal = return . fmap WorkletGlobalScope . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkletGlobalScope
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWorkletGlobalScope o
toWorkletGlobalScope :: IsWorkletGlobalScope o => o -> WorkletGlobalScope
toWorkletGlobalScope = WorkletGlobalScope . coerce

instance IsWorkletGlobalScope WorkletGlobalScope

instance IsGObject WorkletGlobalScope where
  typeGType _ = gTypeWorkletGlobalScope
  {-# INLINE typeGType #-}

noWorkletGlobalScope :: Maybe WorkletGlobalScope
noWorkletGlobalScope = Nothing
{-# INLINE noWorkletGlobalScope #-}

foreign import javascript unsafe "(() => globalThis[\"WorkletGlobalScope\"])" gTypeWorkletGlobalScope :: GType

-- | Dictionary WorkletOptions (html)
newtype WorkletOptions = WorkletOptions { unWorkletOptions :: JSVal }

instance Eq WorkletOptions where
  (WorkletOptions a) == (WorkletOptions b) = js_eq a b

instance PToJSVal WorkletOptions where
  pToJSVal = unWorkletOptions
  {-# INLINE pToJSVal #-}

instance PFromJSVal WorkletOptions where
  pFromJSVal = WorkletOptions
  {-# INLINE pFromJSVal #-}

instance ToJSVal WorkletOptions where
  toJSVal = return . unWorkletOptions
  {-# INLINE toJSVal #-}

instance FromJSVal WorkletOptions where
  fromJSVal = return . fmap WorkletOptions . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WorkletOptions
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WorkletOptions where
  typeGType _ = gTypeWorkletOptions
  {-# INLINE typeGType #-}

noWorkletOptions :: Maybe WorkletOptions
noWorkletOptions = Nothing
{-# INLINE noWorkletOptions #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWorkletOptions :: GType

-- | Functions for this interface are in "GHCJS.DOM.WritableStream" (streams).
newtype WritableStream = WritableStream { unWritableStream :: JSVal }

instance Eq WritableStream where
  (WritableStream a) == (WritableStream b) = js_eq a b

instance PToJSVal WritableStream where
  pToJSVal = unWritableStream
  {-# INLINE pToJSVal #-}

instance PFromJSVal WritableStream where
  pFromJSVal = WritableStream
  {-# INLINE pFromJSVal #-}

instance ToJSVal WritableStream where
  toJSVal = return . unWritableStream
  {-# INLINE toJSVal #-}

instance FromJSVal WritableStream where
  fromJSVal = return . fmap WritableStream . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WritableStream
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWritableStream o
toWritableStream :: IsWritableStream o => o -> WritableStream
toWritableStream = WritableStream . coerce

instance IsWritableStream WritableStream

instance IsGObject WritableStream where
  typeGType _ = gTypeWritableStream
  {-# INLINE typeGType #-}

noWritableStream :: Maybe WritableStream
noWritableStream = Nothing
{-# INLINE noWritableStream #-}

foreign import javascript unsafe "(() => globalThis[\"WritableStream\"])" gTypeWritableStream :: GType

-- | Functions for this interface are in "GHCJS.DOM.WritableStreamDefaultController" (streams).
newtype WritableStreamDefaultController = WritableStreamDefaultController { unWritableStreamDefaultController :: JSVal }

instance Eq WritableStreamDefaultController where
  (WritableStreamDefaultController a) == (WritableStreamDefaultController b) = js_eq a b

instance PToJSVal WritableStreamDefaultController where
  pToJSVal = unWritableStreamDefaultController
  {-# INLINE pToJSVal #-}

instance PFromJSVal WritableStreamDefaultController where
  pFromJSVal = WritableStreamDefaultController
  {-# INLINE pFromJSVal #-}

instance ToJSVal WritableStreamDefaultController where
  toJSVal = return . unWritableStreamDefaultController
  {-# INLINE toJSVal #-}

instance FromJSVal WritableStreamDefaultController where
  fromJSVal = return . fmap WritableStreamDefaultController . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WritableStreamDefaultController
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WritableStreamDefaultController where
  typeGType _ = gTypeWritableStreamDefaultController
  {-# INLINE typeGType #-}

noWritableStreamDefaultController :: Maybe WritableStreamDefaultController
noWritableStreamDefaultController = Nothing
{-# INLINE noWritableStreamDefaultController #-}

foreign import javascript unsafe "(() => globalThis[\"WritableStreamDefaultController\"])" gTypeWritableStreamDefaultController :: GType

-- | Functions for this interface are in "GHCJS.DOM.WritableStreamDefaultWriter" (streams).
newtype WritableStreamDefaultWriter = WritableStreamDefaultWriter { unWritableStreamDefaultWriter :: JSVal }

instance Eq WritableStreamDefaultWriter where
  (WritableStreamDefaultWriter a) == (WritableStreamDefaultWriter b) = js_eq a b

instance PToJSVal WritableStreamDefaultWriter where
  pToJSVal = unWritableStreamDefaultWriter
  {-# INLINE pToJSVal #-}

instance PFromJSVal WritableStreamDefaultWriter where
  pFromJSVal = WritableStreamDefaultWriter
  {-# INLINE pFromJSVal #-}

instance ToJSVal WritableStreamDefaultWriter where
  toJSVal = return . unWritableStreamDefaultWriter
  {-# INLINE toJSVal #-}

instance FromJSVal WritableStreamDefaultWriter where
  fromJSVal = return . fmap WritableStreamDefaultWriter . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WritableStreamDefaultWriter
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsWritableStreamDefaultWriter o
toWritableStreamDefaultWriter :: IsWritableStreamDefaultWriter o => o -> WritableStreamDefaultWriter
toWritableStreamDefaultWriter = WritableStreamDefaultWriter . coerce

instance IsWritableStreamDefaultWriter WritableStreamDefaultWriter

instance IsGObject WritableStreamDefaultWriter where
  typeGType _ = gTypeWritableStreamDefaultWriter
  {-# INLINE typeGType #-}

noWritableStreamDefaultWriter :: Maybe WritableStreamDefaultWriter
noWritableStreamDefaultWriter = Nothing
{-# INLINE noWritableStreamDefaultWriter #-}

foreign import javascript unsafe "(() => globalThis[\"WritableStreamDefaultWriter\"])" gTypeWritableStreamDefaultWriter :: GType

-- | Dictionary WriteParams (fs)
newtype WriteParams = WriteParams { unWriteParams :: JSVal }

instance Eq WriteParams where
  (WriteParams a) == (WriteParams b) = js_eq a b

instance PToJSVal WriteParams where
  pToJSVal = unWriteParams
  {-# INLINE pToJSVal #-}

instance PFromJSVal WriteParams where
  pFromJSVal = WriteParams
  {-# INLINE pFromJSVal #-}

instance ToJSVal WriteParams where
  toJSVal = return . unWriteParams
  {-# INLINE toJSVal #-}

instance FromJSVal WriteParams where
  fromJSVal = return . fmap WriteParams . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . WriteParams
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject WriteParams where
  typeGType _ = gTypeWriteParams
  {-# INLINE typeGType #-}

noWriteParams :: Maybe WriteParams
noWriteParams = Nothing
{-# INLINE noWriteParams #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeWriteParams :: GType

-- | Functions for this interface are in "GHCJS.DOM.XMLDocument" (dom).
newtype XMLDocument = XMLDocument { unXMLDocument :: JSVal }

instance Eq XMLDocument where
  (XMLDocument a) == (XMLDocument b) = js_eq a b

instance PToJSVal XMLDocument where
  pToJSVal = unXMLDocument
  {-# INLINE pToJSVal #-}

instance PFromJSVal XMLDocument where
  pFromJSVal = XMLDocument
  {-# INLINE pFromJSVal #-}

instance ToJSVal XMLDocument where
  toJSVal = return . unXMLDocument
  {-# INLINE toJSVal #-}

instance FromJSVal XMLDocument where
  fromJSVal = return . fmap XMLDocument . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XMLDocument
  {-# INLINE fromJSValUnchecked #-}

instance IsDocument XMLDocument
instance IsARIANotifyMixin XMLDocument
instance IsDocumentOrShadowRoot XMLDocument
instance IsFontFaceSource XMLDocument
instance IsGlobalEventHandlers XMLDocument
instance IsNonElementParentNode XMLDocument
instance IsParentNode XMLDocument
instance IsXPathEvaluatorBase XMLDocument
instance IsNode XMLDocument
instance IsEventTarget XMLDocument

instance IsGObject XMLDocument where
  typeGType _ = gTypeXMLDocument
  {-# INLINE typeGType #-}

noXMLDocument :: Maybe XMLDocument
noXMLDocument = Nothing
{-# INLINE noXMLDocument #-}

foreign import javascript unsafe "(() => globalThis[\"XMLDocument\"])" gTypeXMLDocument :: GType

-- | Functions for this interface are in "GHCJS.DOM.XMLHttpRequest" (xhr).
newtype XMLHttpRequest = XMLHttpRequest { unXMLHttpRequest :: JSVal }

instance Eq XMLHttpRequest where
  (XMLHttpRequest a) == (XMLHttpRequest b) = js_eq a b

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 = return . fmap XMLHttpRequest . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XMLHttpRequest
  {-# INLINE fromJSValUnchecked #-}

instance IsXMLHttpRequestEventTarget XMLHttpRequest
instance IsEventTarget XMLHttpRequest

instance IsGObject XMLHttpRequest where
  typeGType _ = gTypeXMLHttpRequest
  {-# INLINE typeGType #-}

noXMLHttpRequest :: Maybe XMLHttpRequest
noXMLHttpRequest = Nothing
{-# INLINE noXMLHttpRequest #-}

foreign import javascript unsafe "(() => globalThis[\"XMLHttpRequest\"])" gTypeXMLHttpRequest :: GType

-- | Functions for this interface are in "GHCJS.DOM.XMLHttpRequestEventTarget" (xhr).
newtype XMLHttpRequestEventTarget = XMLHttpRequestEventTarget { unXMLHttpRequestEventTarget :: JSVal }

instance Eq XMLHttpRequestEventTarget where
  (XMLHttpRequestEventTarget a) == (XMLHttpRequestEventTarget b) = js_eq a b

instance PToJSVal XMLHttpRequestEventTarget where
  pToJSVal = unXMLHttpRequestEventTarget
  {-# INLINE pToJSVal #-}

instance PFromJSVal XMLHttpRequestEventTarget where
  pFromJSVal = XMLHttpRequestEventTarget
  {-# INLINE pFromJSVal #-}

instance ToJSVal XMLHttpRequestEventTarget where
  toJSVal = return . unXMLHttpRequestEventTarget
  {-# INLINE toJSVal #-}

instance FromJSVal XMLHttpRequestEventTarget where
  fromJSVal = return . fmap XMLHttpRequestEventTarget . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XMLHttpRequestEventTarget
  {-# INLINE fromJSValUnchecked #-}

class (IsEventTarget o, IsGObject o) => IsXMLHttpRequestEventTarget o
toXMLHttpRequestEventTarget :: IsXMLHttpRequestEventTarget o => o -> XMLHttpRequestEventTarget
toXMLHttpRequestEventTarget = XMLHttpRequestEventTarget . coerce

instance IsXMLHttpRequestEventTarget XMLHttpRequestEventTarget
instance IsEventTarget XMLHttpRequestEventTarget

instance IsGObject XMLHttpRequestEventTarget where
  typeGType _ = gTypeXMLHttpRequestEventTarget
  {-# INLINE typeGType #-}

noXMLHttpRequestEventTarget :: Maybe XMLHttpRequestEventTarget
noXMLHttpRequestEventTarget = Nothing
{-# INLINE noXMLHttpRequestEventTarget #-}

foreign import javascript unsafe "(() => globalThis[\"XMLHttpRequestEventTarget\"])" gTypeXMLHttpRequestEventTarget :: GType

-- | Functions for this interface are in "GHCJS.DOM.XMLHttpRequestUpload" (xhr).
newtype XMLHttpRequestUpload = XMLHttpRequestUpload { unXMLHttpRequestUpload :: JSVal }

instance Eq XMLHttpRequestUpload where
  (XMLHttpRequestUpload a) == (XMLHttpRequestUpload b) = js_eq a b

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 = return . fmap XMLHttpRequestUpload . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XMLHttpRequestUpload
  {-# INLINE fromJSValUnchecked #-}

instance IsXMLHttpRequestEventTarget XMLHttpRequestUpload
instance IsEventTarget XMLHttpRequestUpload

instance IsGObject XMLHttpRequestUpload where
  typeGType _ = gTypeXMLHttpRequestUpload
  {-# INLINE typeGType #-}

noXMLHttpRequestUpload :: Maybe XMLHttpRequestUpload
noXMLHttpRequestUpload = Nothing
{-# INLINE noXMLHttpRequestUpload #-}

foreign import javascript unsafe "(() => globalThis[\"XMLHttpRequestUpload\"])" gTypeXMLHttpRequestUpload :: GType

-- | Functions for this interface are in "GHCJS.DOM.XMLSerializer" (html).
newtype XMLSerializer = XMLSerializer { unXMLSerializer :: JSVal }

instance Eq XMLSerializer where
  (XMLSerializer a) == (XMLSerializer b) = js_eq a b

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 = return . fmap XMLSerializer . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XMLSerializer
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject XMLSerializer where
  typeGType _ = gTypeXMLSerializer
  {-# INLINE typeGType #-}

noXMLSerializer :: Maybe XMLSerializer
noXMLSerializer = Nothing
{-# INLINE noXMLSerializer #-}

foreign import javascript unsafe "(() => globalThis[\"XMLSerializer\"])" gTypeXMLSerializer :: GType

-- | Functions for this interface are in "GHCJS.DOM.XPathEvaluator" (dom).
newtype XPathEvaluator = XPathEvaluator { unXPathEvaluator :: JSVal }

instance Eq XPathEvaluator where
  (XPathEvaluator a) == (XPathEvaluator b) = js_eq a b

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 = return . fmap XPathEvaluator . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XPathEvaluator
  {-# INLINE fromJSValUnchecked #-}

instance IsXPathEvaluatorBase XPathEvaluator

instance IsGObject XPathEvaluator where
  typeGType _ = gTypeXPathEvaluator
  {-# INLINE typeGType #-}

noXPathEvaluator :: Maybe XPathEvaluator
noXPathEvaluator = Nothing
{-# INLINE noXPathEvaluator #-}

foreign import javascript unsafe "(() => globalThis[\"XPathEvaluator\"])" gTypeXPathEvaluator :: GType

-- | Functions for this interface are in "GHCJS.DOM.XPathEvaluatorBase" (dom).
newtype XPathEvaluatorBase = XPathEvaluatorBase { unXPathEvaluatorBase :: JSVal }

instance Eq XPathEvaluatorBase where
  (XPathEvaluatorBase a) == (XPathEvaluatorBase b) = js_eq a b

instance PToJSVal XPathEvaluatorBase where
  pToJSVal = unXPathEvaluatorBase
  {-# INLINE pToJSVal #-}

instance PFromJSVal XPathEvaluatorBase where
  pFromJSVal = XPathEvaluatorBase
  {-# INLINE pFromJSVal #-}

instance ToJSVal XPathEvaluatorBase where
  toJSVal = return . unXPathEvaluatorBase
  {-# INLINE toJSVal #-}

instance FromJSVal XPathEvaluatorBase where
  fromJSVal = return . fmap XPathEvaluatorBase . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XPathEvaluatorBase
  {-# INLINE fromJSValUnchecked #-}

class (IsGObject o) => IsXPathEvaluatorBase o
toXPathEvaluatorBase :: IsXPathEvaluatorBase o => o -> XPathEvaluatorBase
toXPathEvaluatorBase = XPathEvaluatorBase . coerce

instance IsXPathEvaluatorBase XPathEvaluatorBase

instance IsGObject XPathEvaluatorBase where
  typeGType _ = gTypeXPathEvaluatorBase
  {-# INLINE typeGType #-}

noXPathEvaluatorBase :: Maybe XPathEvaluatorBase
noXPathEvaluatorBase = Nothing
{-# INLINE noXPathEvaluatorBase #-}

foreign import javascript unsafe "(() => globalThis[\"Object\"])" gTypeXPathEvaluatorBase :: GType

-- | Functions for this interface are in "GHCJS.DOM.XPathExpression" (dom).
newtype XPathExpression = XPathExpression { unXPathExpression :: JSVal }

instance Eq XPathExpression where
  (XPathExpression a) == (XPathExpression b) = js_eq a b

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 = return . fmap XPathExpression . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XPathExpression
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject XPathExpression where
  typeGType _ = gTypeXPathExpression
  {-# INLINE typeGType #-}

noXPathExpression :: Maybe XPathExpression
noXPathExpression = Nothing
{-# INLINE noXPathExpression #-}

foreign import javascript unsafe "(() => globalThis[\"XPathExpression\"])" gTypeXPathExpression :: GType

-- | Functions for this interface are in "GHCJS.DOM.XPathResult" (dom).
newtype XPathResult = XPathResult { unXPathResult :: JSVal }

instance Eq XPathResult where
  (XPathResult a) == (XPathResult b) = js_eq a b

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 = return . fmap XPathResult . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XPathResult
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject XPathResult where
  typeGType _ = gTypeXPathResult
  {-# INLINE typeGType #-}

noXPathResult :: Maybe XPathResult
noXPathResult = Nothing
{-# INLINE noXPathResult #-}

foreign import javascript unsafe "(() => globalThis[\"XPathResult\"])" gTypeXPathResult :: GType

-- | Functions for this interface are in "GHCJS.DOM.XSLTProcessor" (dom).
newtype XSLTProcessor = XSLTProcessor { unXSLTProcessor :: JSVal }

instance Eq XSLTProcessor where
  (XSLTProcessor a) == (XSLTProcessor b) = js_eq a b

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 = return . fmap XSLTProcessor . maybeJSNullOrUndefined
  {-# INLINE fromJSVal #-}
  fromJSValUnchecked = return . XSLTProcessor
  {-# INLINE fromJSValUnchecked #-}


instance IsGObject XSLTProcessor where
  typeGType _ = gTypeXSLTProcessor
  {-# INLINE typeGType #-}

noXSLTProcessor :: Maybe XSLTProcessor
noXSLTProcessor = Nothing
{-# INLINE noXSLTProcessor #-}

foreign import javascript unsafe "(() => globalThis[\"XSLTProcessor\"])" gTypeXSLTProcessor :: GType